【问题标题】:shell_exec can not enable on apache servershell_exec 无法在 apache 服务器上启用
【发布时间】: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")

脚本从命令行正确运行,但是当我从浏览器执行它时,它不起作用。我搜索了很多东西,我做了以下项目来解决问题:

  1. 我在 /etc/sudoers 文件中添加了 'www-data ALL=(ALL) NOPASSWD: ALL' 和 'apache ALL=(ALL) NOPASSWD: ALL'。
  2. 我给/var/www/html目录777权限
  3. 我运行 'chown -R www-data:www-data /var/www/html'
  4. 删除 /etc/php/7.0/fpm/php.ini 和 /etc/php/7.0/cli/php.ini 文件中 'disable_functions' 前面的所有函数
  5. home.php和test.py在/var/www/html的同一个目录
  6. 我在命令行中使用 www-data 登录并执行了 test.py,它工作正常

但是当我访问 http://server_ip_address/home.php 时脚本仍然不起作用。我是 php 和 apache 的新手。谁能帮我解决这个问题。非常感谢

【问题讨论】:

  • 嘿@f_y 你让它工作了吗,我也很好奇这个。

标签: python php exec shell-exec


【解决方案1】:

你可以试试

<?php
exec('/usr/bin/python3 /var/www/html/test.py');
?>

#!/usr/bin/env python3
import os

f= open("/var/www/html/result","w")
f.write("ok")

【讨论】:

    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2016-02-13
    相关资源
    最近更新 更多