从PHP管理Debian服务
我正在申请入学,但我需要能够管理Debian 7机器上运行的一些服务。我正在运行从PHP管理Debian服务,php,nginx,Php,Nginx,我正在申请入学,但我需要能够管理Debian 7机器上运行的一些服务。我正在运行“nginx”和“PHP5-FPM”soPHP5.4。但是如何从我的PHP文件中重新启动或停止例如“nginx”?我试过了 exec("/etc/init.d/nginx stop"); 我也试过了 shell_exec("/etc/init.d/nginx stop"); 但是没有结果php返回我: Stopping nginx: nginx 提前感谢您需要成为root用户才能重新启动这些服务,除非您的web
“nginx”
和“PHP5-FPM”
soPHP5.4
。但是如何从我的PHP文件中重新启动或停止例如“nginx”
?我试过了
exec("/etc/init.d/nginx stop");
我也试过了
shell_exec("/etc/init.d/nginx stop");
但是没有结果php返回我:
Stopping nginx: nginx
提前感谢您需要成为root用户才能重新启动这些服务,除非您的web服务(如Apache)以root用户身份作为站点运行,否则这是行不通的。有两种选择可供您选择,最佳选择可能取决于您的情况
- 您可以创建一个两层方法,其中前端(由web服务器运行)发出命令,后端是一个以root用户身份运行并执行这些命令的服务。这还可以增加一层安全性,因为后端可以在命令执行之前对其进行清理。前端和后端之间的通信可以是任意数量的内容,例如前端每隔几秒钟写入一个文件,后端每隔几秒钟读取一次,或者您可以使用WebSocket使其实时
- 您可以以root用户身份运行web服务器的其他实例,该实例只处理此任务。您肯定希望通过SSL运行此操作,这有点冒险,因为如果有人可以将代码注入到您的某个页面中,他们的代码将作为root用户在您的服务器上运行
nginx\u stop
会使cronjob停止nginx服务器并删除触摸到的文件