首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法从PHP运行Python脚本并将输出打印到浏览器

无法从PHP运行Python脚本并将输出打印到浏览器
EN

Stack Overflow用户
提问于 2018-08-25 06:15:50
回答 1查看 3K关注 0票数 2

我见过很多其他人遇到类似的问题,他们无法从PHP运行Python脚本。我遇到了同样的情况,但我已经尝试了人们推荐的所有解决方案,但仍然没有成功。我也有一个新的系统安装,并已使我的脚本尽可能简单。无论我做什么,shell_exec()都会返回NULL。

因此,这里是如何复制我的问题:

  1. 在Amazon上启动t2.micro EC2服务器
  2. 将其配置为web服务器,并使用以下代码将index.php文件配置到/var/

/html:

代码语言:javascript
复制
<?php 
$command = escapeshellcmd('sudo /usr/bin/python '.__DIR__.'/script.py');
$output = shell_exec($command);
exit(var_dump($output));

  1. 使用以下代码将script.py文件上传到同一目录:

代码语言:javascript
复制
#!/usr/bin/python

print('Hello!')

  1. 转到亚马逊网络服务的公共网址。您将得到的响应是"NULL"

因此,为了解决这个问题,我还将.py文件的用户组更改为"apache“,并对.py文件运行chmod +x。我确认ec2-user和apache在sudo组中。还是不走运!那么我还有什么没试过的呢?我遗漏了什么,或者我可以去哪里查找错误日志?

EN

回答 1

Stack Overflow用户

发布于 2018-08-25 06:39:19

使用文件常量__FILE__来确定pyhton脚本的路径只有在你对它应用dirname函数的情况下才有效-否则你会得到类似/var/www/html/script.php/script.py的东西,但实际上你只想要/var/www/html/script.py

有两个简单的解决方案。使用dirname或直接使用__DIR__常量。

代码语言:javascript
复制
$command = escapeshellcmd('sudo /usr/bin/python ' . __DIR__ . '/script.py');

代码语言:javascript
复制
$command = escapeshellcmd('sudo /usr/bin/python ' . dirname(__FILE__) . '/script.py');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52012338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档