Apache Reload - 停止运行脚本

时间:2014-01-20 08:44:00

标签: php configuration apache2 reload

我有一个使用exec()运行命令行脚本的页面 此脚本对Apaches配置进行更改,添加新文档根和虚拟主机等。此脚本完全按照我的意愿工作。

我需要重新启动Apache以使更改生效。但是,如果我从正在运行的脚本或通过php执行此操作,它可以工作,但是当Apache重新启动时,我从php页面得不到反馈。

我尝试过使用重新加载但是这样做会停止当前运行的PHP脚本。 无论如何将配置更改合并到Apache而不影响任何当前运行的脚本?

我正在使用以下命令从PHP脚本重新加载Apache:

exec('sudo /Web/apache_reload', $res);

apache_reload包含:

/sbin/chkconfig apache2 > /dev/null
/etc/init.d/apache2 restart > /dev/null

由于

1 个答案:

答案 0 :(得分:2)

您可以尝试使用/etc/init.d/apache2 reload,它会重新加载配置文件而不会删除apache。

但是,有更清洁的解决方案。

您可以创建一个空文件,即/tmp/reload_apache,而不是实际重新启动apache。 然后你有一个脚本每分钟通过cron运行,检查这个文件是否存在,如果是,它将重启apache并删除文件。

唯一的缺点是你可能需要等待60秒直到apache重启。