【发布时间】:2020-05-12 02:14:15
【问题描述】:
我正在尝试从 php 代码运行 python 脚本。我已经关注其他线程来查看我做错了什么,但我似乎找不到问题。
$out = shell_exec(escapeshellcmd("/path/to/script/here/script.py arg1 arg2"));
echo $out;
您可能会问,是的,脚本:
- 添加了“#!/usr/bin/env python3”
- 有权被组 www-data 读取和执行(来自输出 apachectl -S)
- 可执行
同时,任何其他非脚本命令都可以与shell_exec()一起正常工作
【问题讨论】:
-
你试过在命令前面加上“python3”吗?所以
"python3 '/path/script.py' args" -
我认为
escapeshellcmd正在逃避所有/。你不需要它,除非它来自其他地方。如果 args 是单独使用escapeshellarg,也许。 -
@AbraCadaver 你肯定想要
/转义,因为它们只是作为路径一部分的文本,而不是任何特殊的东西?无论如何,不是\通常是特别的吗? XDead,如果你把 python 文件放在你的 php 文件旁边,这样你就不需要包含任何斜线并且可以通过名称来调用它会发生什么? -
@ch4rl1e97 我刚刚尝试将脚本文件放在与php文件相同的目录中,结果是一样的。也添加 'python3' 或 '/usr/bin/python3' 什么都不做。
标签: python php python-3.x web