PHP脚本Apache用户下执行Java命令报exec: java: not found

问题

项目中用到PHP脚本执行Java命令。

<?php
exec('java -version');

在本地Terminal执行的好好的,传到服务器上用网页访问无反应。

查看Apache的error_log:

#vi /var/log/httpd/error_log

发现exec: java: not found

解决

查看Java的环境变量是否已经配上去,在命令行输入:

#echo $PATH

输出:

#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/src/jdk1.8.0_91/bin

可以确定系统的Java环境变量没有问题。

查看在Apache用户下Java环境变量有没有配置。在index.php写上:

<?php
$path = exec('echo $PATH');
echo($path);

访问index.php,输出:

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

并没有看到Java的环境变量。
所以得出结论就是在Apache下找不到Java路径。

查找google,发现一篇文章,关于Apache下环境变量的配置
按照文章中的提示:

#vi /etc/sysconfig/httpd

在末尾添加:

#java
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/src/jdk1.8.0_91/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

:wq保存
重启Apache

#systemctl restart httpd.service

再次访问index.php

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/src/jdk1.8.0_91/bin

现在Java的环境变量已经加进去了。

再次尝试Apache下,PHP调用Java命令,成功执行。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值