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

编程知识 更新时间:2023-04-06 15:44:37

问题

项目中用到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命令,成功执行。

更多推荐

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

本文发布于:2023-04-06 15:44:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/4a96fd9b50cf593a2f131457990364e0.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:脚本   命令   用户   Apache   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 49766文章数
  • 14阅读数
  • 0评论数