Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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在Windows XP中重新启动Apache2_Php_Apache - Fatal编程技术网

使用PHP在Windows XP中重新启动Apache2

使用PHP在Windows XP中重新启动Apache2,php,apache,Php,Apache,我有一个PHP文件,执行时必须重新启动Apache。我做了如下尝试: 我在最后一行写上: exec('C:\apache2restart.bat'); 还有文件。球棒 net stop apache2 && net start apache2 但它只是停止Apache,不会重新启动。我做错了什么?将文件更改为 net stop apache2 net start apache2 尝试执行执行重新启动脚本的单独批处理文件 如果只包含start命令的文件有效,那么我建议您键入此

我有一个PHP文件,执行时必须重新启动Apache。我做了如下尝试: 我在最后一行写上:

exec('C:\apache2restart.bat');
还有文件。球棒

net stop apache2 && net start apache2
但它只是停止Apache,不会重新启动。我做错了什么?

将文件更改为

net stop apache2
net start apache2

尝试执行执行重新启动脚本的单独批处理文件

如果只包含start命令的文件有效,那么我建议您键入此命令

    sleep 10
在这两个命令中(或超过10个命令!只需检查停止需要多长时间,然后进行调整),以使批处理等待10秒。
让我知道,我很好奇。

我假设PHP进程在批处理命令期间被终止,因为Web服务器刚刚关闭。这似乎是一个非常非常糟糕的主意,但是…@slugonamission PHP进程只是启动了另一个进程,不应该用它杀死它。我想。。。这取决于php文件的调用方式。PHP可以从命令行调用,在这种情况下Apache与之无关。bat不知何故与PHP绑定,PHP以Apache终止,exec()或另一个函数中没有参数创建独立发起的进程?如果它是服务器插件,则没有。此外,即使作为CGI运行,Apache进程也不应该退出,直到任何子PHP进程也被杀死。实际上,这个脚本是在中途终止的。如果PHP是通过Apache调用的,那么脚本可能在重启Apache之前终止。但是,如果您从te命令行调用它,它应该可以工作:
PHP.exe yourscript.PHP
@deizel-work,但是当apache处于活动状态时,它就不工作了。在DOS中也是如此。我认为您需要等到Apache停止后再发出第二个命令。我认为
netstop
会等到服务停止。