change lock file at ROOT_PATH

This commit is contained in:
xiaomlove
2022-04-25 02:30:15 +08:00
parent a47b33a983
commit da2f19b88f
4 changed files with 14 additions and 8 deletions
+10 -4
View File
@@ -37,11 +37,14 @@ class Install
['name' => 'swoole', 'desc' => "If use swoole for Octane, make sure 'current' shows 1"], ['name' => 'swoole', 'desc' => "If use swoole for Octane, make sure 'current' shows 1"],
]; ];
protected string $lockFile = 'install.lock';
public function __construct() public function __construct()
{ {
if (!session_id()) { if (!session_id()) {
session_start(); session_start();
} }
$this->checkLock();
$this->currentStep = min(intval($_REQUEST['step'] ?? 1) ?: 1, count($this->steps) + 1); $this->currentStep = min(intval($_REQUEST['step'] ?? 1) ?: 1, count($this->steps) + 1);
} }
@@ -639,16 +642,19 @@ class Install
return compact('version', 'match'); return compact('version', 'match');
} }
public function checkLock($path) public function checkLock()
{ {
if (file_exists("$path/.lock")) { $fullFilename = ROOT_PATH . $this->lockFile;
if (file_exists($fullFilename)) {
die("Locked! Delete .lock file first"); die("Locked! Delete .lock file first");
} }
} }
public function setLock($path) public function setLock()
{ {
file_put_contents("$path/.lock", "Lock at: " . date('Y-m-d H:i:s')); $fullFilename = ROOT_PATH . $this->lockFile;
$res = file_put_contents($fullFilename, "Lock at: " . date('Y-m-d H:i:s'));
$this->doLog("set lock at: $fullFilename, result: " . var_export($res, true));
} }
} }
+2
View File
@@ -29,6 +29,8 @@ class Update extends Install
protected $steps = ['Env check', 'Get files', 'Update .env', 'Perform updates']; protected $steps = ['Env check', 'Get files', 'Update .env', 'Perform updates'];
protected string $lockFile = 'update.lock';
public function getLogFile() public function getLogFile()
{ {
+1 -2
View File
@@ -5,7 +5,6 @@ require ROOT_PATH . 'nexus/Install/install_update_start.php';
$isPost = $_SERVER['REQUEST_METHOD'] == 'POST'; $isPost = $_SERVER['REQUEST_METHOD'] == 'POST';
$install = new \Nexus\Install\Install(); $install = new \Nexus\Install\Install();
$install->checkLock(__DIR__);
$currentStep = $install->currentStep(); $currentStep = $install->currentStep();
$maxStep = $install->maxStep(); $maxStep = $install->maxStep();
if (!$install->canAccessStep($currentStep)) { if (!$install->canAccessStep($currentStep)) {
@@ -192,7 +191,7 @@ if (!empty($error) || (isset($mysqlInfo) && !$mysqlInfo['match'])) {
echo '<div class="mb-6">For questions, consult the installation log at: <code>' . $install->getLogFile() . '</code></div>'; echo '<div class="mb-6">For questions, consult the installation log at: <code>' . $install->getLogFile() . '</code></div>';
echo '<div class="text-red-500">For security reasons, please delete the following directories</div>'; echo '<div class="text-red-500">For security reasons, please delete the following directories</div>';
echo '<div class="text-red-500"><code>' . $install->getInsallDirectory() . '</code></div>'; echo '<div class="text-red-500"><code>' . $install->getInsallDirectory() . '</code></div>';
$install->setLock(__DIR__); $install->setLock();
} }
echo'</div>'; echo'</div>';
+1 -2
View File
@@ -5,7 +5,6 @@ require ROOT_PATH . 'nexus/Install/install_update_start.php';
$isPost = $_SERVER['REQUEST_METHOD'] == 'POST'; $isPost = $_SERVER['REQUEST_METHOD'] == 'POST';
$update = new \Nexus\Install\Update(); $update = new \Nexus\Install\Update();
$update->checkLock(__DIR__);
$currentStep = $update->currentStep(); $currentStep = $update->currentStep();
$maxStep = $update->maxStep(); $maxStep = $update->maxStep();
if (!$update->canAccessStep($currentStep)) { if (!$update->canAccessStep($currentStep)) {
@@ -230,7 +229,7 @@ if (!empty($error) || (isset($mysqlInfo) && !$mysqlInfo['match'])) {
echo '<div class="mb-6">For questions, consult the upgrade log at: <code>' . $update->getLogFile() . '</code></div>'; echo '<div class="mb-6">For questions, consult the upgrade log at: <code>' . $update->getLogFile() . '</code></div>';
echo '<div class="text-red-500">For security reasons, please delete the following directories</div>'; echo '<div class="text-red-500">For security reasons, please delete the following directories</div>';
echo '<div class="text-red-500"><code>' . $update->getUpdateDirectory() . '</code></div>'; echo '<div class="text-red-500"><code>' . $update->getUpdateDirectory() . '</code></div>';
$update->setLock(__DIR__); $update->setLock();
} }
echo'</div>'; echo'</div>';