php执行system()函数没有任何反应

引言

最近需要用php调用本地Linux命令,来实现一些功能。
在网上搜了一下发现,PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()
我在Windows上很愉快的用php执行各种命令,结果放到我的Linux服务器上,就什么反应都没有,连错误提示也没有。

<?php
system("ls");
?>

于是在网上各种搜索,大部分人都在说用户权限问题,结果照着搞了半天还是没有解决这个问题:unamused:

主要思路

在 php.ini 这个配置文件中,有个属性叫disable_functions,这个后面就是被禁止的函数,而刚刚那几个函数都被禁止了。所以找到 php.ini 然后把想使用的函数从黑名单中删除就OK了。

具体步骤

找到 php.ini

如果你知道它在哪里,那么跳过这一步。
执行 phpinfo() 函数就会显示 php 的配置信息,在这里就可以找到php.ini 的位置。

<?php
phpinfo("");
?>

编辑 php.ini

打开 php.ini 找到 disable_functions,把想使用的函数从这个名单里删除即可。

重启PHP

保存 php.ini,但是这时候配置文件并没有生效,重启PHP就行了。
现在就可以在php里愉快的调用Linux命令了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部