我如何在浏览器上获得输出?

时间:2017-04-19 12:58:59

标签: php amazon-ec2 apache2 php-7

我正在尝试使用PHP脚本运行shell命令。这是脚本:

<? php
$out = shell_exec('wikitrivia "tony" ');
echo $out;
?>

当我使用命令行运行时,我得到输出但不在浏览器上。我使用的是AWS EC2 使用apache2运行PHP。

我已经使用链接:https://github.com/atbaker/wikipedia-question-generator#installing-with-python-34

中的说明创建了虚拟环境

我想知道如何让我的代码在浏览器上运行?我在控制台上获取输出,但在浏览器上没有。请帮助我提出建议。

1 个答案:

答案 0 :(得分:0)

如果您使用pyvenv执行此操作,则会获得venv/bin/activate,这会为您的用户设置环境变量。当您从shell运行它时,php脚本会继承您的环境,但是当您从Web运行它时则不会。

当您发出http请求时,脚本正在apache用户环境中执行。通常,apache以httpdwww-dataapache用户身份运行,具体取决于您的配置。

您可以安装with docker,并将脚本更改为

$out = shell_exec('docker run atbaker/wikipedia-question-generator "tony" ');
echo $out;

或者,您可以对所需的环境进行反向工程,并从php脚本进行设置。