返回信息流☆─────────────────────────────────────☆
zhuang (海之子) 于 (Mon May 12 17:18:46 2008) 提到:
用system函数执行外部命令需要哪些前提条件呢〉
比如说权限,安全模式等
高手能留下个例子吗〉
先谢谢了
☆─────────────────────────────────────☆
Earth (★严守一殿下★♂) 于 (Mon May 12 17:23:22 2008) 提到:
我不用system命令,习惯了exec();没有什么条件吧?因为我总是以管理员身份运行的
还有就是有时候常用的系统命令都有特定的函数,更好用,而且与OS无关
☆─────────────────────────────────────☆
jiayi (游哉优哉) 于 (Mon May 12 17:40:08 2008) 提到:
chown wwwrun:www /服务器DocumentRoot
不然外部脚本运行会受限制,包括root登录。
php进程的所有者是wwwrun
☆─────────────────────────────────────☆
zhuang (海之子) 于 (Mon May 12 17:56:41 2008) 提到:
【 在 Earth 的大作中提到: 】
: 我不用system命令,习惯了exec();没有什么条件吧?因为我总是以管理员身份运行的
: 还有就是有时候常用的系统命令都有特定的函数,更好用,而且与OS无关
apache的用户是apache,别的程序的用户需要相应的用户或者root才能运行吧?
现在的问题是不知道怎样才能以root的身份去执行这个外部的命令
知道的能留个详细点的例子吗??我是新手。。。
谢谢了
☆─────────────────────────────────────☆
zhuang (海之子) 于 (Mon May 12 17:58:09 2008) 提到:
【 在 jiayi 的大作中提到: 】
: chown wwwrun:www /服务器DocumentRoot
: 不然外部脚本运行会受限制,包括root登录。
: php进程的所有者是wwwrun
这个不是很懂,能说清楚点吗??
谢谢
☆─────────────────────────────────────☆
BookMoth (书中蠹鱼) 于 (Mon May 12 22:47:31 2008) 提到:
好像php.ini中有个开关,不知道是不是safemode=off?
需要运行的命令需要给apache执行权限。
手册里应该有关于system的说明,去翻翻吧。
☆─────────────────────────────────────☆
zhuang (海之子) 于 (Tue May 13 10:51:13 2008) 提到:
passthru("/etc/rc.d/init.d/mysqld start");
这个命令我执行不了,但是下面这个却可以执行
passthru("ls /etc/rc.d/init.d/");
是不是权限的问题呢?
怎么把利用root来执行这个程序呢?
☆─────────────────────────────────────☆
Earth (★严守一殿下★♂) 于 (Tue May 13 14:46:59 2008) 提到:
你把运行结果echo出来啊
☆─────────────────────────────────────☆
jiayi (游哉优哉) 于 (Tue May 13 16:22:42 2008) 提到:
php执行系统命令,相当于wwwrun用户开启一个shell,然后执行。
/etc/rc.d/init.d/mysqld 的用户是root,wwwrun有可能不能执行(具体看权限位怎么设的)
让wwwrun运行mysql,chmod o+x /etc/rc.d/init.d/mysqld
觉得不安全的话,直接chown wwwrun:www /etc/rc.d/init.d/mysqld
☆─────────────────────────────────────☆
zhuang (海之子) 于 (Wed May 14 09:52:40 2008) 提到:
谢谢各位
已经解决了
用的是sudo,8楼的方法我也试过,不可行
最后是通过visudo修改sudoers文件来达到给apache分配root的权限的
☆─────────────────────────────────────☆
jiayi (游哉优哉) 于 (Wed May 14 19:11:14 2008) 提到:
jiayi-suse:/etc/init.d # ll mysql
-rwxr-xr-x 1 root root 9363 2007-09-22 mysql
jiayi-suse:/etc/init.d # chown wwwrun:www mysql
jiayi-suse:/etc/init.d # ll mysql
-rwxr-xr-x 1 wwwrun www 9363 2007-09-22 mysql
jiayi-suse:/etc/init.d # chmod o-x mysql
jiayi-suse:/etc/init.d # ll mysql
-rwxr-xr-- 1 wwwrun www 9363 2007-09-22 mysql
jiayi-suse:/etc/init.d # chmod g-x mysql
jiayi-suse:/etc/init.d # ll mysql
-rwxr--r-- 1 wwwrun www 9363 2007-09-22 mysql (运行成功)
jiayi-suse:/etc/init.d # chown sanding mysql
jiayi-suse:/etc/init.d # ll mysql
-rwxr--r-- 1 sanding www 9363 2007-09-22 mysql (运行失败)
楼主说我的办法不可行,奇怪...
楼主非要root执行,建议用expect
这是一条镜像帖。来源:北邮人论坛 / www-technology / #3328同步于 2008/5/28
WWWTechnology机器人发帖
[合集] php 执行外部命令的问题
tntzwz
2008/5/28镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。