内容简介:在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);
(推荐)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用函数式实现命令模式
- 关于如何处理面向对象、函数式、命令式、声明式编程
- JavaScript中的函数与命令模式,Java也有参考价值
- CVE-2018-19518:PHP imap_open函数任意命令执行漏洞复现
- 【巨杉数据库Sequoiadb】【咨询】【内置SQL】执行exec命令查询substr函数时报错-195
- Flask 偏函数、g对象、flask-session、数据库连接池、信号、自制命令、flask-admin
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法技术手册
[美]海涅曼 (Heineman.G.T.)、[美]波利切 (Pollice.G.)、[美]塞克欧 (Selkow.S.) / 东南大学出版社 / 2009-4 / 58.00元
创造稳定的软件需要有效的算法,但是程序设计者们很少能在问题出现之前就想到。《算法技术手册(影印版)》描述了现有的可以解决多种问题的算法,并且能够帮助你根据需求选择并实现正确的算法——只需要一定的数学知识即可理解并分析算法执行。相对于理论来说,本书更注重实际运用,书中提供了多种程序语言中可用的有效代码解决方案,可轻而易举地适合一个特定的项目。有了这本书,你可以: 解决特定编码问题或改进现有解决......一起来看看 《算法技术手册》 这本书的介绍吧!