【发布时间】:2021-01-07 21:46:59
【问题描述】:
我正在尝试使用 python 运行时在 aws lambda 中运行 php 脚本。我尝试使用 python os.system 模块调用 php 页面来执行脚本。代码如下
import os
def lambda_handler(event, context):
os.system("php /home/admin/web/####/###.php")
在运行上述代码时,它显示错误:“sh: php: command not found”。我在 python 脚本或 shell 脚本方面都没有太多知识。因此,我们将不胜感激。
更新: 新代码
def lambda_handler(event, context):
stream = os.popen("/usr/bin/php /home/admin/web/path/")
output = stream.read()
print(output)
使用了新代码,但现在显示此错误: /bin/sh: /usr/bin/php74: 没有这样的文件或目录。
我不明白,因为系统安装了php,但它却告诉不存在这样的文件。
【问题讨论】:
-
这可能意味着你的运行环境中没有安装 PHP
-
它安装在我的ec2环境中
-
未安装
php时会出现该错误。您是否尝试过在不使用 python 脚本的情况下运行php文件? -
我无法在 aws lambda 中运行 php 脚本,因为没有 php 运行时,我试图通过使用 python 子进程或 os.system 绕过它。关于 php 文件,是的,我已经在浏览器上运行它并运行它。
-
这似乎与您的other question 非常相似(以至于它可能被认为是重复的)。我们已经在那里取得了一些进展,请考虑在那里跟进,而不是创建一个非常相似的问题。问题的核心似乎是您想要调用 AWS Lambda 中不存在的可执行文件。您无法使用 Python 解决这个问题 - 您需要使用 PHP 和 Python 提供自定义运行时,或者从 Docker 映像构建您的 Lambda。
标签: python php aws-lambda