使用PHP停止和启动Apache(!)

时间:2010-04-30 14:36:39

标签: php apache batch-file wampserver

我有两个相关的问题。

1)我有一个包含以下内容的批处理文件:

net stop wampapache
net start wampapache

试图停止并启动我的wamp服务器。当我双击上面的stop.bat文件时,它成功运行。当我尝试从我的PHP脚本运行它时,它会停止服务器,但不会完全启动它,我猜是因为Apache正在等待PHP进程退出?

function php_kill(){

    exec('stop.bat', $output = array(), $return);

    return $return;

}

2)有没有办法重新启动我的网络服务器(apache),同时保留PHP需要的会话变​​量?

全部谢谢

2 个答案:

答案 0 :(得分:4)

PHP进程正在杀死一个进程,反过来又杀死了PHP进程。这就像回到过去并在生下你的父母之前谋杀你的父母。我不知道它是如何起作用的。

人们不得不问为什么这个功能是必要的。如果您必须这样做,您应该考虑从脚本安排服务重启。我不知道这是否可以通过PHP和Windows实现。

答案 1 :(得分:1)

问题与exec等待进程结束这一事实有关,但该进程实际上会杀死PHP,因此整个事情都会被卡住。

运行stop.bat作为后台进程应该解决它。 (这里how to run a background process on Windows