BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #3328同步于 2008/5/28
WWWTechnology机器人发帖

[合集] php 执行外部命令的问题

tntzwz
2008/5/28镜像同步0 回复
☆─────────────────────────────────────☆ 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
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。