在amazonec2上通过php编写Python脚本

2024-06-24 13:03:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试通过一个简单的python脚本在Amazon上运行EC2实例。在

文件在终端上运行良好,即正在获取输出。但是当我在浏览器中尝试同样的方法时,我得到的是一个空白页。在

我做了一些尝试,比如在etc文件夹的sudoers文件中添加www-data ALL=(ALL) ALLetc/sudoers。在

我还尝试禁用SELINIX。在

我检查了php的安全模式和其他一些我在这里发现的东西。在

我遵循了这个AWS TUTORIAL。我做的每件事都和上面写的一样。我认为有一些许可问题。在

任何人都可以看看。我坚持了两天。。在

编辑 Python脚本

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
print "Hello  world"
cgitb.enable()

Php文件:

^{pr2}$

Tags: 文件实例方法脚本文件夹终端amazonenable
2条回答

我想首先应该查看的是apache错误日志。您不想启用sudo。请考虑查看apache的错误日志,以了解以下位置的根本问题:

/var/log/apache 或类似目录

请查看这些帖子,以获得更好的解决方案和问题回顾:

How to execute shell_exec on EC2 Linux

https://forums.aws.amazon.com/thread.jspa?messageID=692394

php shell_exec() command is not working

经过一番“挠头”,我终于明白了。在

首先,你需要找出执行php的当前用户。一个可以退房php.info文件归档或使用

$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];

这将为您提供执行代码的用户。在我的例子中,它是apache,而不是www-data(我一开始就不应该这样假设)。在

之后,您需要编辑sudoers文件(etc/sudoers)

加上那边的线。在

^{pr2}$

或者你可以简单地加上

apache ALL=(ALL)        NOPASSWD:ALL

(您可能应该只指定路径)。在

然后通过php执行脚本。在

相关问题 更多 >