php 执行 shell 脚本环境变量设置

未设置环境变量问题

当使用php的脚本执行命令(如:shell_exec())时,若脚本需要系统环境变量PATH支持(如:python使用import等),则会出现找不到的错误。并且查看系统PATH,如下:

echo(shell_exec('echo $PATH'));

/usr/sbin:/usr/bin:/sbin:/bin

可以看出,系统和用户PATH均未被设置,这是由于Apache配置文件临时屏蔽了环境变量。

解决方案

对于Ubuntu系统,找到环境变量配置文件,通常在/etc/apache2/envvars或者/usr/local/apache/bin/envvars(lamp.sh安装)中。

打开envvars文件,在文件末尾export系统和用户环境变量,一般:
* 系统变量在/etc/environment
* 所有用户的环境变量在/etc/profile
* 单个用户的环境变量在~/.bashrc

export PATH=/home/XXXXXX/soft/anaconda2/bin:/usr/local/cuda-8.0/......
export PYTHONPATH=.......
......

重启Apache服务,运行如下php代码:

print_r(shell_exec('env'));

发现环境变量生效。


更多机器学习干货、最新论文解读、AI资讯热点等欢迎关注“AI学院(FAICULTY)”,内容持续更新中……
欢迎加入faiculty机器学习交流qq群:451429116(点此进群)
版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息。


相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页