Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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_Service - Fatal编程技术网

是否可以从PHP启动/停止apache服务?

是否可以从PHP启动/停止apache服务?,php,apache,service,Php,Apache,Service,我已经创建了一个简单的网站,将帮助我在我的许多项目,通过创建一个子域名为每个新的网站项目,我承担 我一直回到我创建的旧网站,所以我决定将它们作为localhost上的子域保留 我的PHP代码可以很好地将信息添加到相关文件中 但是我需要重新启动Apache才能使更改生效。 我知道PHP是从Apache服务运行的。因此,是否可以从PHP代码停止和启动甚至重新启动Apache服务?是,使用exec() 您可能希望允许程序在关闭服务器之前自行关闭,因此我建议: exec("apachectl grace

我已经创建了一个简单的网站,将帮助我在我的许多项目,通过创建一个子域名为每个新的网站项目,我承担

我一直回到我创建的旧网站,所以我决定将它们作为localhost上的子域保留

我的PHP代码可以很好地将信息添加到相关文件中

但是我需要重新启动Apache才能使更改生效。 我知道PHP是从Apache服务运行的。因此,是否可以从PHP代码停止和启动甚至重新启动Apache服务?

是,使用
exec()

您可能希望允许程序在关闭服务器之前自行关闭,因此我建议:

exec("apachectl graceful");

确保PHP没有在中运行(是的,我想您可以使用
exec()
shell\u exec()
,注意您需要根访问权限。可以使用外部命令重新启动,如(在Slackware Linux中:
/etc/rc.d/rc.httpd restart
).Mind-如果您通过服务器执行,它可能也会停止您的PHP脚本。Apache还有一个
reload
命令,只告诉它在不停止/启动的情况下重新加载配置。这可能适用于大多数情况。
服务apache2 reload
。此外,如果这是关于托管子域的,请查看模块。It允许您按模式将主机名映射到目录。我以前使用通配符dns条目设置主机名(所有子项都指向同一IP)然后将
whater.test.com
映射到
/var/www/whater
以便将任何子域映射到它自己的文件夹。添加一个子域就像创建一个文件夹一样简单。非常感谢!
apachectl优雅的stop
正是我所需要的:D
exec("apachectl graceful");