shell_exec无法在apache服务器上启用

问题描述

我想使用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-datawww-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. 中的同一目录中
  7. 我在命令行中使用www-data登录并执行了test.py,它可以正常工作

但是当我访问http://server_ip_address/home.PHP时,脚本仍然无法正常工作。我是PHP和apache的新手。谁能帮助我解决问题。非常感谢

解决方法

你能尝试

<?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")