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.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()函数执行系统命令失败相关推荐
- shell和php区别,PHP中exec函数和shell_exec函数的区别
这篇文章主要介绍了PHP中exec函数和shell_exec函数的区别,这两个函数是非常危险的函数,一般情况都是被禁用的,当然特殊情况下也会使用,需要的朋友可以参考下 这两个函数都是执行Linux命令 ...
- 【解决】在 IPMONTR.DLL 中初始化函数 INITHELPERDLL 启动失败,错误代码为 10107
症状: 无法上网 ping 127.0.0.1不通 netsh interface ipv4提示错误"在 IPMONTR.DLL 中初始化函数 INITHELPERDLL 启动失败,错误代码 ...
- js中exec()函数的使用
1.exec()函数作用: exec()函数用于检索字符串中正则表达式的匹配 如果有匹配的值则返回该函数的值,如果没有则返回null. 可以查找正则表达式在字符串中的位置等 2.基本语法: RegEx ...
- python 中exec函数的使用
python中的eval, exec以及compile都可以把字符串作为代码来执行. exec函数原型如下: exec(source, [globals, [locals]]) 在使用exec的时候, ...
- python中exec函数_python exec函数怎么用?
我们在写编程的过程中,会发现,代码会越来越复杂.为了能出现自己想要的内容,程序越写越长,越写越复杂,也越来越难让自己看懂.其实呀,这是不可避免的.但是在python中,有帮助我们执行复杂的python ...
- JS中终止函数执行的代码
1.假如终止一个函数用return即可:例 function testA(){ alert("a"); alert('b'); alert('c'); } testA(); 函数执 ...
- SQL中 exec sp_executesql 执行 where in 参数方法
在公司项目中,需要用到一个方法,就是批量传入记录编号 通过 where jlbh in()的方法查询记录: 平时直接用 select * from JDZS where Jlbh in('001', ...
- Qt中exec函数的作用
Qt中的exec()方法到处可见,例如: QCoreApplicaton::exec() QApplication::exec() QDialog::exec() QThread::exec() Q ...
- windows下php的exec函数执行不成功的另一种原因
今天忙活一天了,想用php调用一个exe程序.执行后一直返回1(返回0是成功),也看不到任何输出,$output也看不到东西. 从网上看了, 大部分文章都说是cmd.exe的权限问题.php开启了sa ...
最新文章
- 库存管理系统软件测试,药房库存管理系统模块测试用例
- MapReduce 详解
- 易语言执行linux脚本,初识易语言到编写SHELL生成器
- 如何在VB中使用正则表达式
- UVA11021 Tribbles
- Atitit 单点登录实现几种模式架构图 目录 1. 因此要点也就以下两个:存储信任验证信任	1 1.1. 共享cookie (最简单	1 1.2. 通过 url带token参数跳转	1 1.3.
- 乒乓球比赛赛程_2020乒乓球比赛赛程表
- JavaEE简易聊天室(Netbeans:Servlet+Cookie+Session)
- 苹果系统自带的计算机怎么恢复出厂设置,苹果电脑MacBook如何将系统恢复出厂设置...
- 那些曾经被央视拿来跟韩寒作对比的三好学生们,十年之后,再看看(转)
- 巨象指纹浏览器可以帮助用户做些什么?
- python 课后作业_python 学习笔记 三 课后作业
- 【故事】程序员到底是干什么的
- jquery ajaxSubmit 异步提交
- jsTree插件简介(四)
- Unity3d 中 PlayerPrefs 保存数据的总结
- 如何测试人工智能软件?
- vue-tree-chart 组织架构-树形图-流程图(含鼠标右击事件)
- Brocade 300 FC交换机收集诊断日志
- WEB页面快捷键的设置小谈
热门文章
- 思科模拟器,计算机网络实验三之:静态路由配置
- x86汇编-1(第三章—第四章)虚拟硬盘基本信息,虚拟硬盘的写入,bochs调试
- 交叉驰豫的影响因素_交叉滚子轴承系列吉林薄壁交叉滚子轴承用途博盈
- 使用 Java 配置进行 Spring bean 管理
- Apache Tomcat 5.5 Servlet/JSP 容器
- windows10 环境下的amqp安装步骤(图文)
- 读薄《高性能MySql》(四)查询性能优化
- 开发中关于Fragment异常的两个问题
- 系统设计4:Web服务和流量限制
- RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较