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执行某个命令时,不报错,也不返回结果,原因是此命令没有在环境变量配置的目录下即/etc/profile文件中,以ifconfig为例,我们可以用whereis ifconfig,找出此命令具体路径,比如路径在/usr/sbin下,两种解决办法:

解决

1 复制命令到/usr/bin下,也就是环境变量下的目录(不太推荐)
2 直接将命令全路径补全exec('/usr/sbin',$output);(推荐)
3 在环境变量中增加目标目录例如增加/usr/sbin到目录

PHP中exec()函数执行系统命令失败相关推荐

  1. shell和php区别,PHP中exec函数和shell_exec函数的区别

    这篇文章主要介绍了PHP中exec函数和shell_exec函数的区别,这两个函数是非常危险的函数,一般情况都是被禁用的,当然特殊情况下也会使用,需要的朋友可以参考下 这两个函数都是执行Linux命令 ...

  2. 【解决】在 IPMONTR.DLL 中初始化函数 INITHELPERDLL 启动失败,错误代码为 10107

    症状: 无法上网 ping 127.0.0.1不通 netsh interface ipv4提示错误"在 IPMONTR.DLL 中初始化函数 INITHELPERDLL 启动失败,错误代码 ...

  3. js中exec()函数的使用

    1.exec()函数作用: exec()函数用于检索字符串中正则表达式的匹配 如果有匹配的值则返回该函数的值,如果没有则返回null. 可以查找正则表达式在字符串中的位置等 2.基本语法: RegEx ...

  4. python 中exec函数的使用

    python中的eval, exec以及compile都可以把字符串作为代码来执行. exec函数原型如下: exec(source, [globals, [locals]]) 在使用exec的时候, ...

  5. python中exec函数_python exec函数怎么用?

    我们在写编程的过程中,会发现,代码会越来越复杂.为了能出现自己想要的内容,程序越写越长,越写越复杂,也越来越难让自己看懂.其实呀,这是不可避免的.但是在python中,有帮助我们执行复杂的python ...

  6. JS中终止函数执行的代码

    1.假如终止一个函数用return即可:例 function testA(){ alert("a"); alert('b'); alert('c'); } testA(); 函数执 ...

  7. SQL中 exec sp_executesql 执行 where in 参数方法

    在公司项目中,需要用到一个方法,就是批量传入记录编号 通过 where jlbh in()的方法查询记录: 平时直接用 select * from  JDZS where Jlbh in('001', ...

  8. Qt中exec函数的作用

    Qt中的exec()方法到处可见,例如: QCoreApplicaton::exec()  QApplication::exec() QDialog::exec() QThread::exec() Q ...

  9. windows下php的exec函数执行不成功的另一种原因

    今天忙活一天了,想用php调用一个exe程序.执行后一直返回1(返回0是成功),也看不到任何输出,$output也看不到东西. 从网上看了, 大部分文章都说是cmd.exe的权限问题.php开启了sa ...

最新文章

  1. 库存管理系统软件测试,药房库存管理系统模块测试用例
  2. MapReduce 详解
  3. 易语言执行linux脚本,初识易语言到编写SHELL生成器
  4. 如何在VB中使用正则表达式
  5. UVA11021 Tribbles
  6. Atitit 单点登录实现几种模式架构图 目录 1. 因此要点也就以下两个:存储信任验证信任 1 1.1. 共享cookie (最简单 1 1.2. 通过 url带token参数跳转 1 1.3.
  7. 乒乓球比赛赛程_2020乒乓球比赛赛程表
  8. JavaEE简易聊天室(Netbeans:Servlet+Cookie+Session)
  9. 苹果系统自带的计算机怎么恢复出厂设置,苹果电脑MacBook如何将系统恢复出厂设置...
  10. 那些曾经被央视拿来跟韩寒作对比的三好学生们,十年之后,再看看(转)
  11. 巨象指纹浏览器可以帮助用户做些什么?
  12. python 课后作业_python 学习笔记 三 课后作业
  13. 【故事】程序员到底是干什么的
  14. jquery ajaxSubmit 异步提交
  15. jsTree插件简介(四)
  16. Unity3d 中 PlayerPrefs 保存数据的总结
  17. 如何测试人工智能软件?
  18. vue-tree-chart 组织架构-树形图-流程图(含鼠标右击事件)
  19. Brocade 300 FC交换机收集诊断日志
  20. WEB页面快捷键的设置小谈

热门文章

  1. 思科模拟器,计算机网络实验三之:静态路由配置
  2. x86汇编-1(第三章—第四章)虚拟硬盘基本信息,虚拟硬盘的写入,bochs调试
  3. 交叉驰豫的影响因素_交叉滚子轴承系列吉林薄壁交叉滚子轴承用途博盈
  4. 使用 Java 配置进行 Spring bean 管理
  5. Apache Tomcat 5.5 Servlet/JSP 容器
  6. windows10 环境下的amqp安装步骤(图文)
  7. 读薄《高性能MySql》(四)查询性能优化
  8. 开发中关于Fragment异常的两个问题
  9. 系统设计4:Web服务和流量限制
  10. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较