我正在尝试使用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
中的说明创建了虚拟环境我想知道如何让我的代码在浏览器上运行?我在控制台上获取输出,但在浏览器上没有。请帮助我提出建议。
答案 0 :(得分:0)
如果您使用pyvenv
执行此操作,则会获得venv/bin/activate
,这会为您的用户设置环境变量。当您从shell运行它时,php脚本会继承您的环境,但是当您从Web运行它时则不会。
当您发出http请求时,脚本正在apache用户环境中执行。通常,apache以httpd
,www-data
或apache
用户身份运行,具体取决于您的配置。
您可以安装with docker,并将脚本更改为
$out = shell_exec('docker run atbaker/wikipedia-question-generator "tony" ');
echo $out;
或者,您可以对所需的环境进行反向工程,并从php脚本进行设置。