1

我遇到了以下问题:我尝试使用 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 解释器。

我希望有一个人可以帮助我。

4

0 回答 0