PHP中exec()函数执行系统命令失败

栏目: PHP · 发布时间: 6年前

内容简介:在php中,我们可以使用正常来说执行结果会跟在服务器上直接执行问题

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.baidu.com", $output);

正常来说执行结果会跟在服务器上直接执行 ping 没区别,但是由于某些原因会导致意外情况,下边针对两种情况作出说明,以及解决办法

2.1 权限问题

问题

当我们在服务器上直接执行 linux 系统命令时(此处以ping为例),执行权限取决于我们登陆用户的权限,如果我们登陆用户为 root ,则执行 ping 的时候是用root来执行。但当我们在网站上访问的时候,我们此时的用户为 www ,如果不修改ping的执行权限的话,是无法执行成功的。

解决

修改ping或者对应命令的执行权限

2.2 命令路径问题

问题

还有一种情况,当我们用exec执行某个命令时,不报错,也不返回结果,原因是此命令没有在 /usr/bin 目录下,以 ifconfig 为例,我们可以用`whereis

ifconfig ,找出此命令具体路径,比如路径在 /usr/sbin`下,两种解决办法:

解决

1 复制命令到 /usr/bin 下(不太推荐)

2 直接将命令全路径补全 exec('/usr/sbin',$output); (推荐)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

如何构建敏捷项目管理团队

如何构建敏捷项目管理团队

丽萨·阿金斯 / 徐蓓蓓、白云峰、刘江华 / 电子工业出版社 / 2012-6 / 49.00元

《敏捷项目管理系列丛书•PMI-ACPSM考试指定教材•如何构建敏捷项目管理团队:ScrumMaster、敏捷教练与项目经理的实用指南》结合作者的亲身经历告诉读者如何建立一个高性能的敏捷项目管理团队,以及最终成为一名优秀的敏捷教练。作者将敏捷教练定义为导师、协助者、老师、问题解决者、冲突领航员、协作指挥者,正是这种不同角色之间的细微区别才使敏捷教练的工作富有深度。《敏捷项目管理系列丛书•PMI-A......一起来看看 《如何构建敏捷项目管理团队》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具