exec命令在我的服务器上不起作用,它什么也不做,我已经关闭了safe_mode,并验证了所有控制台命令都在工作,我已经尝试了绝对路径。我已经检查了应用程序的权限,并且我需要的所有应用程序都具有执行权限。我不知道该怎么办,这是我尝试过的代码的摘要。
echo exec('/usr/bin/whoami'); echo exec('whoami'); exec('whoami 2>&1',$output,$return_val); if($return_val !== 0) { echo 'Error<br>'; print_r($output); } exec('/usr/bin/whoami 2>&1',$output,$return_val); if($return_val !== 0) { echo 'Error<br>'; print_r($output); }
最后两个代码显示:
Error Array ( )
我已经联系了服务器服务,他们无法帮助我,他们不知道exec命令为什么不起作用。
看看/etc/php.ini,在下面:
/etc/php.ini
; This directive allows you to disable certain functions for security reasons. ; It receives a comma-delimited list of function names. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. ; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.disable-functions disable_functions =
确保exec没有像这样列出:
disable_functions=exec
如果是这样,请将其删除并重新启动apache。
为了便于调试,我通常喜欢手动执行php文件(可以在不将其设置为主要ini的情况下请求更多错误)。为此,添加标题:
#!/usr/bin/php ini_set("display_errors", 1); ini_set("track_errors", 1); ini_set("html_errors", 1); error_reporting(E_ALL);
到文件的开头,请使用授予其权限chmod +x myscript.php并执行./myscript.php。这非常注意,尤其是在繁忙的服务器上,该服务器向日志文件写入了大量内容。
chmod +x myscript.php
./myscript.php
编辑
听起来像是 权限 问题。创建一个简单的bash脚本,echo "helo world"然后尝试运行它。确保您对该文件 以及包含该文件的文件夹 具有权限。您应该只做chmod 755测试。
echo "helo world"
chmod 755