2014-10-27 47 views
1

我正在一台运行MariaDB,Apache,Java和PHP的Linux机器上设置一个小型实验......并且在这个主题上搜索并搜索这个主题后,我需要进一步澄清一些权限和位置。但让我第一帧:apache上php exec的权限和jar文件位置

在我的网页目录:/ var/www/html我有一个小测试程序:test.php。它基本上做到这一点:

<?php 
    exec("java -jar MyApp.jar", $output); 
    print_r($output); 
?> 

的MyApp.jar是连接到本地MariaDB的,并返回从DB中检索一些有用的信息的简单Java应用程序。我的主要问题是:我的.jar文件应该在哪里,以及如何确保我执行正确的jar从PHP(如何引用它?完整路径?)以及如何/在哪里/我还需要什么修改....

编辑: 目前我打算把文件:

/usr/share/httpd/ 

在PHP代码,我要参考的完整路径:即

exec("java -jar /usr/share/httpd/MyApp.jar", $output); 

在帮助别人的兴趣 - 我也是偶然到一个权限被拒绝的问题和需要也做到以下几点:

setsebool -P httpd_can_network_connect_db=1 

我很想在评论/在具有在jar文件的安全问题答案/ usr/share/httpd目录。有更好的位置吗?我需要确保这些.jar文件无法从外部访问。我也为一些jar库使用相同的目录。

回答

0

安装JDK

假设在这个例子中,你想开发Java程序除了安装了JDK。进一步假定当前版本的JDK是v1.7.0,并且您想要自动为安装程序提出的所有问题回答“是”。在CentOS的命令行中输入如下命令:$ 须藤荫安装java-1.7.0-的OpenJDK-devel的-y

JAVA_HOME环境变量

设置JAVA_HOME设置为JDK的位置,这是/ usr/lib/jvm/java-1.7.0-openjdk默认情况下。 $ sudo sh -c'echo export JAVA_HOME =/usr/lib/jvm/java-1.7.0 -openjdk> /etc/profile.d/java.sh' $ source /etc/profile.d/java.sh

下载Apache Tomcat

下载Tomcat二进制文件。以下命令假定当前版本的Tomcat为v7.0.56: $ wget http://apache.mirrors.tds.net/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz

注意:请务必检查以确保您正在下载最新版本。版本7.0.56在撰写本文时是最新的。

拆开包装并配置

拆开使用tar命令的二进制文件: $ sudo的焦油xvzf的apache-tomcat的-7.0.56.tar。gz -C/opt

使解压缩文件为只读; $ sudo的搭配chmod + R /opt/apache-tomcat-7.0.56/conf/*

设置CATALINA_HOME为Tomcat的文件 $ sudo的SH -c“回声出口CATALINA_HOME = /选择/ Apache的Tomcat的目录-7.0.56> /etc/profile.d/tomcat.sh” $源/etc/profile.d/tomcat.sh

启动Tomcat

运行Tomcat的启动脚本。 $ sudo $ CATALINA_HOME/bin/startup.sh

+0

包装的代码总是欢迎在这里。 – hina10531 2015-08-12 07:55:36

+0

^^如果您正确设置答案格式,我同意读取答案要容易得多 – Eoin 2015-08-12 08:00:54