我遇到了以下问题:我尝试使用 php 执行 sh 脚本。
我的尝试:我可以运行其他命令。例如,我可以运行“cat”程序来显示我想要执行的脚本:<?php echo exec("cat /srv/web/scripts/start_server.sh"); ?>
以下代码段不起作用:
<?php echo `/srv/web/scripts/start_server.sh`; ?>
<?php echo `sh /srv/web/scripts/start_server.sh`; ?>
<?php exec("sh /srv/web/scripts/start_server.sh"); ?>
<?php exec("/srv/web/scripts/start_server.sh"); ?>
The same with: system(), popen(), proc_open(), passthru(), shell_exec()
我尝试了脚本的各种文件权限。甚至 rwxrwxrwx 和 rwsrwxrwx。PHP 在执行后继续执行,就像它工作一样。不会产生 PHP 错误。当我在控制台上启动脚本时(例如:sh /srv/web/scripts/start_server.sh)它可以工作。我用一个简单的脚本进行了测试,它可以在控制台上运行,但当我尝试用 php 执行它时却不行:
#!/bin/sh
echo hallo > /srv/web/scripts/file.txt
没有启用安全模式。exec 功能没有被禁用。
作为一个环境,我在 alix 板上使用 ipfire core 71。Apache 作为 httpd 和 php5 作为 php 解释器。
我希望有一个人可以帮助我。