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(点此进群)
版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值