Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP停止和启动Apache(!)_Php_Apache_Batch File_Wampserver - Fatal编程技术网

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

使用PHP停止和启动Apache(!),php,apache,batch-file,wampserver,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);

我有两个相关的问题

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有没有一种方法可以重新启动我的Web服务器apache,同时保持PHP需要的会话变量可用


谢谢大家,PHP进程正在杀死一个进程,而这个进程又反过来杀死了PHP进程。这就像回到过去,在你父母生你之前谋杀他们。我看不出它是怎么工作的


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

PHP进程正在杀死一个进程,而这个进程反过来又杀死了PHP进程。这就像回到过去,在你父母生你之前谋杀他们。我看不出它是怎么工作的


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

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


运行stop.bat作为后台进程应该可以修复它。这里

问题与exec等待进程结束这一事实有关,但该进程实际上杀死了PHP,因此整个过程都陷入了困境


运行stop.bat作为后台进程应该可以修复它。此处

不确定,但猜测:如果等待结束,您能否在函数结束时退出$return?或者将变量存储在数据库中,只要您需要它们在索引中进行检查以查看特定条目是否存在。我也不确定,但我认为这是因为“exec”等待进程结束,但该进程实际上会杀死PHP,所以整个过程都会卡住!想法:将“stop.bat”作为后台进程运行?Davide-这是一个好主意,也许我可以在执行Apache.Abs的停止/启动之前添加两秒钟的暂停。我不知道在Windows上运行后台进程的方法,但我发现这个链接希望有帮助。Davide-我正在使用您的解决方案。你认为你可以概述它,然后添加链接,这样我就可以选择正确的答案,这样其他人就可以受益。谢谢。不确定但猜测:如果等待结束,您能否在函数结束时退出$return?或者将变量存储在数据库中,只要您需要它们在索引中进行检查以查看特定条目是否存在。我也不确定,但我认为这是因为“exec”等待进程结束,但该进程实际上会杀死PHP,所以整个过程都会卡住!想法:将“stop.bat”作为后台进程运行?Davide-这是一个好主意,也许我可以在执行Apache.Abs的停止/启动之前添加两秒钟的暂停。我不知道在Windows上运行后台进程的方法,但我发现这个链接希望有帮助。Davide-我正在使用您的解决方案。你认为你可以概述它,然后添加链接,这样我就可以选择正确的答案,这样其他人就可以受益。谢谢。我认为批处理脚本将执行并停止并启动apache。我只需要PHP脚本在尝试停止时立即停止。对于一个进程,是否存在与忽略用户中止相反的情况?!?我认为批处理脚本将执行并停止和启动apache。我只需要PHP脚本在尝试停止时立即停止。对于一个进程,是否存在与忽略用户中止相反的情况?!?谢谢你,大卫。我使用了WScript.Shell-这只是一个windows解决方案,也是我所需要的。谢谢Davide。我使用了WScript.Shell—这只是一个windows解决方案,也是我所需要的。