У меня есть страница, на которой выполняется сценарий командной строки, используя exec() Этот скрипт вносит изменения в конфигурацию Apaches, новые корни документов и виртуальные хосты и т. Д. Этот скрипт работает точно так, как я хочу.Apache Reload - Останавливает скрипт
Мне нужно перезапустить Apache, чтобы изменения вступили в игру. Но если я делаю это из работающего скрипта или через php, он работает, но я не получаю обратной связи с php-страницы, поскольку Apache был перезапущен.
Я попытался использовать перезагрузку, но это делает то же самое и останавливает текущий PHP-скрипт. Есть ли способ объединить изменения конфигурации в Apache, не влияя на любые текущие сценарии?
Я перезагрузки Apache с PHP скрипт, используя:
exec('sudo /Web/apache_reload', $res);
apache_reload содержит:
/sbin/chkconfig apache2 > /dev/null
/etc/init.d/apache2 restart > /dev/null
Благодарности
Спасибо, я попробовал перезагрузить, но у меня была такая же проблема. Использование задания cron - это вариант, но когда он перезапускает Apache, мой скрипт может работать. Если я вызываю скрипт apache_reload с помощью JQUERY и получаю результат возврата, смогу ли я увидеть, что он не сработал (как перезагружен apache)? Если я могу, это может быть причиной этого. – JeffVader
Если вы используете задание cron, вы можете сделать это без использования каких-либо exec() в php. Любая логика должна выполняться в PHP. Если вам действительно нужен сценарий оболочки для этого, просто держите его как можно проще, так что он будет работать всего несколько миллисекунд и, следовательно, вряд ли будет убит вашим заданием cron. Не слишком чистое решение, но может работать для вас. – MrTweek