问题现象:
环境:Ubuntu 12.04、PHP 5.5.9、python3.5。
php使用exec()、system()等调用python脚本时,shell命令在服务器执行成功,而放在浏览器运行却失败。
解决方法:
1、使用print判断脚本有没有被成功调用;
发现可以打印出一部分,没有打印的部分应该是程序有问题。
若是所有print没有打印,则可能是apache执行用户的权限不够,可新建用户并添加在root权限组里,在php.ini修改apache执行用户,重启apache即可。(因为博主不是这个问题,所以没有测试可行性。。。)
2、在shell命令下程序运行完全正常,没有报错,这个时候就只能去找apache错误日志了!!!
一般系统范围的Apache错误日志默认位置是/var/log/apache2/error.log。默认位置可以通过编辑Apache的配置文件进行修改。
如果是自定义的错误日志,用文本编辑器打开 /etc/apache2/apache2.conf,然后查找以 ErrorLog 开头的行,该行指定了自定义的 Apache 错误日志文件的位置。例如,在未经修改的 Apache 配置文件中可以找到以下行:
ErrorLog ${APACHE_LOG_DIR}/error.log
错误日志里完美的记录着所有你作死的记录,果然我的python是因为编码问题才在浏览器运行失败的!