php中exec()函数执行系统命令失败问题解决方法
发布:smiling 来源: PHP粉丝网 添加日期:2019-12-25 09:35:07 浏览: 评论:0
本篇文章给大家带来的内容是关于php中exec()函数执行系统命令失败问题解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
0.说明
在php中,我们可以使用exec()来执行系统命令,但有时我们会遇到exec()命令执行不成功,或者无返回的情况,下面来说明一下:
1.函数
exec ( string $command [, array &$output [, int &$return_var ]] ) : string
参数说明:
1.$command 要执行的命令
2.$output 执行结果
3.$return_var 若同时设置 $output 和此变量,命令执行后的返回状态会被写入到此变量
2.例子
exec("ping www.phpfensi.com", $output);
正常来说执行结果会跟在服务器上直接执行ping没区别,但是由于某些原因会导致意外情况,下边针对两种情况作出说明,以及解决办法
2.1 权限问题
问题
当我们在服务器上直接执行linux系统命令时(此处以ping为例),执行权限取决于我们登陆用户的权限,如果我们登陆用户为root ,则执行ping的时候是用root来执行。但当我们在网站上访问的时候,我们此时的用户为www,如果不修改ping的执行权限的话,是无法执行成功的。
解决
修改ping或者对应命令的执行权限
2.2 命令路径问题
问题
还有一种情况,当我们用exec执行某个命令时,不报错,也不返回结果,原因是此命令没有在环境变量配置的目录下即/etc/profile文件,以ifconfig为例,我们可以用`whereis
ifconfig,找出此命令具体路径,比如路径在/usr/sbin`下,两种解决办法:
解决
1 复制命令到/usr/bin下(不太推荐)
2 直接将命令全路径补全exec('/usr/sbin',$output);(推荐)
Tags: php中exec()函数
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)