У меня довольно длинный сценарий php, и всякий раз, когда мое интернет-соединение пропускается на секунду, браузер, похоже, останавливает скрипт. Я не могу сидеть в течение 8 часов, чтобы мой сценарий работал, поэтому я решил, что могу запустить его через ssh и вернуться на следующий день и получить свой выходной файл. Однако простой ввод имени скрипта в ssh не работает. есть ли специальная команда для запуска php-скриптов через ssh?
Если ваше интернет-соединение выйдет из строя, то это, вероятно, будет проблемой и для SSH, и хорошо, что открыть окно SSH не всегда лучше всего (что произойдет, если вы случайно закроете окно ssh? )
Я бы предложил SSHing на сервере, а затем запустить программу под названием « экран », которая будет продолжать работать независимо от того, что вы запускаете внутри нее, даже если ваше соединение падает.
Для этого сначала введите ssh на сервер и введите
screen
Это приведет к загрузке экрана, нажмите enter, чтобы обойти экран приветствия
Теперь запустите PHP-скрипт
php /path/to/your/php/script.php
это запустит запуск PHP,
Теперь вы можете закрыть окно, если хотите, и скрипт будет продолжать работать
Чтобы вернуться на сеанс экрана, подключитесь к серверу и запустите команду
screen -raAD
который снова подключит вас к вашей сессии, как если бы вы все время открывали окно.
Это действительно неплохо для запуска длинных скриптов или даже для запуска IRC-сессии на консоли: D
В общем, вы должны иметь возможность запускать скрипт из командной строки, как это
php myscript.php
Выполнение этого на удаленном хосте через ssh можно сделать следующим образом:
ssh phpnewb@myhost.com "php myscript.php"
В дополнение к тому, что все остальные сказали, вы, вероятно, захотите также использовать nohup
.
ssh user@host "nohup php script.php"
Таким образом, он будет продолжать работать, даже если ваше соединение ssh падает. Вы также можете использовать screen
вместо nohup
если хотите.
пытаться
php script.php.
Если это не сработает, вам нужно будет найти исполняемый файл php, а затем выполнить его.
Кстати, вы можете использовать экран, поэтому, если соединение с компьютером потеряно, сценарий все еще работает.
Кроме того, вы можете просто вызвать ignore_user_abort()
и закрыть браузер после того, как вы нажмете на страницу.
nohup php -q /path-to-script/file.php & exit
выполнит файл php и закроет консоль без завершения процесса.