问题描述
我想使用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的新手。谁能帮助我解决问题。非常感谢
解决方法
你能尝试
<?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")