从php在webroot之外执行shell脚本

从php在webroot之外执行shell脚本,php,shell,ubuntu,exec,Php,Shell,Ubuntu,Exec,我在webroot之外的以下目录中有一个shell脚本: /usr/share/myshellscript.sh 我希望能够在从位于以下位置的php文件调用时运行它: /var/www/html/myphpscript.php 如何将php脚本导航到可以运行shell脚本的正确目录 我试过: exec('/usr/share/myshellscript.sh'); 但什么都没有发生 我已经在服务器上测试了.sh脚本,它运行良好,只是无法让php执行它 系统:Ubunutu 14.04

我在webroot之外的以下目录中有一个shell脚本:

 /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

很可能,您没有执行.sh脚本的权限。要确保脚本可读且可执行,请运行:

$scriptPath = '/usr/share/myshellscript.sh';
var_dump(array(
    'file' => is_file($scriptPath),
    'readable' => is_readable($scriptPath),
    'executable' => is_executable($scriptPath)
));
另一个可能的原因是PHP中禁用了
exec()
函数。
请参见“”

是否需要添加命令?即exec('sh/usr/share/myshellscript.sh');不,我只需要执行脚本。sh只是一个基本的将一些文本回显到一个.txt文件脚本,看看我是否能让它工作。你能从终端运行确切的命令吗,你能运行“/usr/share/myshellscript.sh”吗?或者你需要运行“sh/usr/share/myshellscript.sh”吗?是的,我可以用/usr/share/myshellscript.sh从终端运行它,它可以工作。我也尝试了这个线程的所有可能的方法,但没有任何效果?好的,我已经取得了一些进展。这似乎是权限错误。如果.sh脚本只是回显一些文本“我的文本”,那么它工作得很好,但一旦我尝试执行任何其他操作(例如将“我的文本”回显到新的txt文件),它就会抛出权限错误。我已经确定了.sh脚本所在的目录,.sh脚本本身和webroot中的php文件都属于同一个用户和用户组—www数据,但仍然没有乐趣。。我知道这是一种非常不安全的方法,所以如果有人能建议一种更安全的方法,我将不胜感激。