由于竞赛的原因,我和同学需要在Linux(Ubuntu)系统下搭建一个Web访问控制器,我负责前端php,同学负责后台shell脚本和控制器的编写。在这个过程中,需要利用php调用并执行shell脚本,查阅了相关资料,终于调通了,总结一下写在这里,方便以后阅读。
首先,推荐几篇博客,很感谢他们的回答解决了我的问题:
http://blog.youkuaiyun.com/wuhengwudi/article/details/7454094
http://blog.youkuaiyun.com/xundh/article/details/46233817
http://my.oschina.net/junn/blog/142986?fromerr=AiRfZrkp
我遇到的问题是,通过php调用shell脚本没有反应没有输出也没有报错,单纯地无法调用。查阅了资料后发现,应该是配置文档以及用户权限的问题,所以解决如下:
第一,应该查阅php.ini配置文档(我的配置文档位置是/etc/php5/php.ini
),关闭安全模式 safe_mode=Off
。
第二,给予php运行的用户和本机用户权限。php运行的用户名可以通过在localhost运行以下的php文件查到:
<?php
echo shell_exec(<