运行shell脚本,然后显示来自PHP的文件内容

运行shell脚本,然后显示来自PHP的文件内容,php,linux,shell,ubuntu,Php,Linux,Shell,Ubuntu,我有一个PHP页面(位于:/var/www/)必须运行shell脚本(位于:/home/anas/kaldi/egs/voxforge/s5/new_run.sh)和文本文件(位于:/home/anas/kaldi/egs/voxforge/s5/results/text.txt),脚本运行大约10到15秒后将生成该脚本 我只想单击PHP中的按钮,它运行脚本,当在相应目录中创建文本文件时,它应该显示在PHP页面上 我遇到的问题是文本文件没有被更新。它和我手动执行shell脚本时创建的相同。(输出

我有一个PHP页面(位于:/var/www/)必须运行shell脚本(位于:/home/anas/kaldi/egs/voxforge/s5/new_run.sh)和文本文件(位于:/home/anas/kaldi/egs/voxforge/s5/results/text.txt),脚本运行大约10到15秒后将生成该脚本

我只想单击PHP中的按钮,它运行脚本,当在相应目录中创建文本文件时,它应该显示在PHP页面上

我遇到的问题是文本文件没有被更新。它和我手动执行shell脚本时创建的相同。(输出必须更改。)

脚本未运行或未创建文本文件。我不知道现在该怎么办

到目前为止,我一直在这样做:

final.php

<?php
echo shell_exec("sh /path/to/stackoverflow/example.sh");
echo "done";

根据我的实验结果,这是由于权限问题。

我创建了两个文件:

示例。sh

#!/bin/bash
echo 123
index.php

<?php
echo shell_exec("sh /path/to/stackoverflow/example.sh");
echo "done";

new\u run.sh
是否应该回显任何内容?当
shell\u exec()
调用运行时,您是否在网页上看到该输出?是的,它应该会回显。这是一个很长的剧本。不,当shell_exec()调用运行时,我没有看到任何类型的输出。这意味着脚本无法执行(
shell_exec()
如果出现错误或脚本没有生成任何输出,则返回
null
,在这种情况下,很可能是前者)。PHP运行的系统用户是什么(
echo shell_exec('whoami');
),如果该用户不是“anas”,那么
/home/anas
有哪些文件夹权限?
echo shell_exec('whoami')
返回
www-data
这似乎不正确。实际上,它是正确的。这是大多数Web服务器(Apache、nginx)运行时的默认用户。该用户可能不允许访问/home/anas。如果将脚本移到该文件夹之外,脚本是否工作?对于测试,您可以尝试将脚本移动到/tmp,每个人都可以访问该脚本。将权限更改为777,但仍然不起作用。
echo shell_exec()
既没有回显任何内容,也没有更新
text.txt