• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中exec()函数执行系统命令失败问题解决方法

php 搞代码 3年前 (2022-01-21) 22次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于php中exec()函数执行系统命令失败问题解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

0.说明

@本文来源gaodai$ma#com搞$代*码6网搞代gaodaima码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.baidu.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);(推荐)

以上就是php中exec()函数执行系统命令失败问题解决方法的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中exec()函数执行系统命令失败问题解决方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址