Php 如何在浏览器上获得输出?
我正在尝试使用PHP脚本运行shell命令。以下是脚本:Php 如何在浏览器上获得输出?,php,amazon-ec2,apache2,php-7,Php,Amazon Ec2,Apache2,Php 7,我正在尝试使用PHP脚本运行shell命令。以下是脚本: <? php $out = shell_exec('wikitrivia "tony" '); echo $out; ?> 如果您使用pyvenv进行此操作,您将获得venv/bin/activate,它将为您的用户设置环境变量。当您从shell运行php脚本时,它会继承您的环境,但当您从web运行它时,它不会继承 当您发出http请求时,脚本将在apache用户环境中执行。根据您的配置,apache通常以httpd、www
<? php
$out = shell_exec('wikitrivia "tony" ');
echo $out;
?>
如果您使用pyvenv
进行此操作,您将获得venv/bin/activate
,它将为您的用户设置环境变量。当您从shell运行php脚本时,它会继承您的环境,但当您从web运行它时,它不会继承
当您发出http请求时,脚本将在apache用户环境中执行。根据您的配置,apache通常以httpd
、www-data
或apache
用户的身份运行
您可以安装它,并将脚本更改为
$out = shell_exec('docker run atbaker/wikipedia-question-generator "tony" ');
echo $out;
或者,您可以对所需的环境进行反向工程,并从php脚本进行设置。查看如何使用函数ob|u start()
ob|u flush()
ob|u end()
我的屏幕上仍然看不到任何内容,即使使用了您的应答器,请确保docker已启动并运行,例如使用ps aux;grep docker
,或者只是从shell运行命令。确保您的apache用户属于docker组。如果您的apache用户是www-data
,则将其添加为usermod-aG docker www-data
。出于调试目的,您可能希望捕获stderr输出:$out=shell_exec('docker在baker/wikipedia问题生成器“tony”2>&1上运行)代码>。我认为它应该涵盖最明显的问题。如果没有帮助,请检查apache错误日志,或使用ini\u集('display\u errors',1)启用错误报告。