【发布时间】:2020-09-20 13:14:42
【问题描述】:
我想使用 exec 或 shell_exec 从 php 代码运行 python 脚本。这是php代码:
<?php
exec('/usr/bin/python /var/www/html/test.py');
?>
这也是我想从浏览器执行的python脚本,名称为test.py:
#!/usr/bin/env python
import os
f= open("/var/www/html/result","w")
f.write("ok")
脚本从命令行正确运行,但是当我从浏览器执行它时,它不起作用。我搜索了很多东西,我做了以下项目来解决问题:
- 我在 /etc/sudoers 文件中添加了 'www-data ALL=(ALL) NOPASSWD: ALL' 和 'apache ALL=(ALL) NOPASSWD: ALL'。
- 我给/var/www/html目录777权限
- 我运行 'chown -R www-data:www-data /var/www/html'
- 删除 /etc/php/7.0/fpm/php.ini 和 /etc/php/7.0/cli/php.ini 文件中 'disable_functions' 前面的所有函数
- home.php和test.py在/var/www/html的同一个目录
- 我在命令行中使用 www-data 登录并执行了 test.py,它工作正常
但是当我访问 http://server_ip_address/home.php 时脚本仍然不起作用。我是 php 和 apache 的新手。谁能帮我解决这个问题。非常感谢
【问题讨论】:
-
嘿@f_y 你让它工作了吗,我也很好奇这个。
标签: python php exec shell-exec