您的位置:首页 > 运维架构 > Apache

apahce2执行外部命令

2015-12-22 13:28 405 查看
在linux环境下,一般来讲只有root用户才能调用iptables等外部命令,但利用命令ps -ef发现apache是以www-data用户运行的。所以在命令中要加上sudo这条命令。

但是直接使用sudo的话,是不可行的,没有权限

在/etc/sudoers配置文件中输入以下

%www-data ALL=(ALL)NOPASSWD :/sbin/iptables

修改/etc/passwd配置文件中的

www-data:x:33:33:www-data:/var/www:/bin/sh为

www-data:x:33:33:www-data:/var/www:/bin/bash

重启ubuntu系统,apache服务。

在浏览器中访问php文件。

php中直接用system('sudo iptables -L', $ret1);

还是system('sh iptables.sh -L',$ret4);

都能成功。

其实有关apache中运行外部命令,我查了好多网上的文章。但是都没有一篇就能解决我的问题的。但是在一番修改后我发现能成功调用了。觉得应该是这两步起了作用。总之多试试吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux apache