问个问题了...现有nginx.php脚本来操控nginx。
如有启动、停止、重启、等。php与nginx都不是root权限。
用exec system函数,
基本的一些 ls cp 命令是没问题。kill -INT `cat /usr/local/nginx/logs/nginx.pid`;
怎么测试都执行不了。
cat /usr/local/nginx/logs/nginx.pid是没问题,就是kill命令执行不了,
估计kill权限问题,不知要怎么搞。
还有假设能把nginx停止了。那nginx.php自己都不能运行了,是得上服务器来启动nginx了。
要保证nginx.php能正常运行,这个要怎么处理好些? 是要新开端口、进程什么的么?
有这方面经验的朋友指点下啊。
或大牛们给些资料来学习学习。
如有启动、停止、重启、等。php与nginx都不是root权限。
用exec system函数,
基本的一些 ls cp 命令是没问题。kill -INT `cat /usr/local/nginx/logs/nginx.pid`;
怎么测试都执行不了。
cat /usr/local/nginx/logs/nginx.pid是没问题,就是kill命令执行不了,
估计kill权限问题,不知要怎么搞。
还有假设能把nginx停止了。那nginx.php自己都不能运行了,是得上服务器来启动nginx了。
要保证nginx.php能正常运行,这个要怎么处理好些? 是要新开端口、进程什么的么?
有这方面经验的朋友指点下啊。
或大牛们给些资料来学习学习。
找来的文章 希望有所帮助
http://cn.php.net/ssh2,服务器sshd服务打开。这样的话,权限将与你的ssh user相关,用适当的用户ssh执行command即可。SYNOPSIS
#include <signal.h> int kill(pid_t pid, int sig); For a process to have permission to send a signal to a process designated by pid, unless the sending process has appropriate privileges, the real or
effective user ID of the sending process shall match the real or saved set-user-ID of the receiving process.这是Kill的权限问题,要么你是root,要么你和nginx进程的真实用户ID一样,要么和nginx进程的保存设置用户ID一样,你应该都可以实现。
其它命令与kill都一起执行。
其它命令可以执行返回数据,就kill不行。
我是写给别人用的要别人提供root密码好像有些不太妥啊。以root身份ssh,那就要root密码了也就要用你上面提到的ssh2?
nginx与php我是以建立www用户以www身份安装的,所以才有这问题了,如果用root身份又不安全。还是纠结啊。
ll 看nginx二进制程序的用户是谁, 用那个用户执行Kill.
chown把nginx改成www就行,写PHP脚本用www用户ssh上去操作。
还是用www的,通过c来切换root执行。剩下最后那个问题了。
nginx 与其他提供持续服务的软件一样,都需要由管理员级别用户启动,否则一旦用户注销了,服务也就停止了你说用 nginx.php 脚本来操控 nginx
从 nginx.php 文件名上看,应该是以 web 方式运行的
但 nginx 一旦停止,nginx.php 如何运行?如果是通过 shell,那有何必多此一举
可以把某些虚拟主机网站php什么的都停止运行。
而面板自己本身不受影响的。
面板也是php语言,用的是apache,不是nginx。要找资料学习都不知怎么找。