从php执行webroot之外的shell脚本

时间:2015-02-11 02:47:25

标签: php shell ubuntu exec

我在以下目录中有一个shell脚本,它位于webroot之外:

 /usr/share/myshellscript.sh

我希望能够从位于以下位置的php文件中调用它来运行它:

 /var/www/html/myphpscript.php

如何将php脚本导航到可以运行shell脚本的正确目录?

我试过了:

 exec('/usr/share/myshellscript.sh');

但什么都没发生?

我已经在服务器上测试了.sh脚本并且它工作正常,只是无法让php执行它。

系统:Ubunutu 14.04 webserver / php 5.5.9-1

1 个答案:

答案 0 :(得分:1)

最有可能的是,您无权执行.sh脚本。要确保脚本可读且可执行,请运行:

$scriptPath = '/usr/share/myshellscript.sh';
var_dump(array(
    'file' => is_file($scriptPath),
    'readable' => is_readable($scriptPath),
    'executable' => is_executable($scriptPath)
));

另一个可能的原因是PHP中禁用了exec()函数。 请参阅“Check if "exec" is disabled