Я использую команду exec
как exec
ниже в PHP:
exec("/usr/bin/php /path/to/Notification.php >> /path/to/log_file.log 2>&1 &");
В моей локальной среде (MAMP) я знаю путь установки PHP, поэтому я могу заменить /usr/bin/php
на /Applications/MAMP/bin/php/php5.4.10/bin/php
. Но я не знаю, где PHP-установка (PHP-двоичная) находится на рабочем сервере.
Обычно это /usr/bin/php
но вы можете попытаться захватить и проанализировать вывод команды « whereis php
» или « which php'
».
Или еще лучше, используйте константу PHP_BINARY
если она доступна. Посмотрите здесь .
В большинстве PHP_BINARY
предопределенная константа PHP_BINARY
должна выполнять эту работу.
Если вам нужно что-то более развитое, вы можете использовать компонент процесса Symfony, используя его класс PhpExecutableFinder :
// composer require symfony/process use Symfony\Component\Process\PhpExecutableFinder; (new PhpExecutableFinder)->find();