【问题标题】:Execute python script with output from php使用 php 的输出执行 python 脚本
【发布时间】:2016-09-19 18:18:49
【问题描述】:

是否有任何特殊权限或设置来执行创建新文件或图像的 python 脚本? 这是我的代码:

<?
function py(){
    exec( 'python my_script.py');
    echo "ok";
}

py();
?>

这是我的python脚本(一个例子):

#!/usr/bin/python
import sys

f = open('out.txt', 'w')
print >> f, 'thats all'
f.close()

运行 php 我得到“ok”消息,但没有创建文件。我做错了什么?

【问题讨论】:

  • PHP 应该由用户www-user 执行。所以 Python 脚本会被同一个用户盯着。 www-user 是否具有执行 Python 脚本和访问文件系统以创建文件所需的权限?
  • 如何检查? @阿尔伯特
  • 我从来没有这样做过,因为我不是 PHP 用户,所以我所说的一切都是基于思维的。首先,您应该找出哪个用户是文件夹的所有者以及您要访问的脚本。如果这不是www-user,您可以将用户更改为www-user 或将所需的用户名传递给exec 命令,如here 所示
  • 以root权限运行你的php脚本。须藤脚本.php

标签: php python


【解决方案1】:

为文件和文件夹设置正确的权限就可以了。

在 Mac OS 上:Alt + 单击“+”,然后搜索 _www 并将万维网服务器添加到授予读写权限的用户。根文件夹也一样。

【讨论】:

    【解决方案2】:

    如果您希望能够捕获输出,则需要调用 shell_exec() 而不是 exec()

    Refernce: PHP Manual

    【讨论】:

    • 这更像是一种调试方式,所以如果我理解正确的话,它应该是一个注释。
    • 我不需要捕获输出,我希望 python 脚本执行和创建文件。实际上使用 shell_exec() 没有效果
    猜你喜欢
    • 1970-01-01
    • 2018-01-29
    • 2016-11-29
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2015-10-26
    相关资源
    最近更新 更多