您的位置:首页 > 新闻动态 > 技术文章
2019-03-22

Linux系统apache使用mod_jk整合tomcat 让php和java项目在同一个服务器运行

安装apache、httpd、mysql不在本文范畴。

Apache+Tomcat+mod_jk配置,是在apache中加载mod_jk并对其进行配置转发到tomcat,然后在tomcat中修改配置以使其能接受mod_jk的转发。

一、编译生成mod_jk模块

yum install httpd-devel -y    #编译生成apache扩展依赖apxs,如未安装先安装

下载tomcat-connectors  官方网站https://tomcat.apache.org/download-connectors.cgi

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz

tar -zxf tomcat-connectors-1.2.42-src.tar.gz

cd tomcat-connectors-1.2.42-src/native/

./buildconf.sh

 #如果报错:autoconf not found.
You need autoconf version 2.59 ornewer installed
to build mod_jk from SVN.
原因是没有安装autoconf (有博客说是要安装libtool)
索性就两个都安装,命令行:

yum install autoconf

yum install libtool

然后在执行./buildconf.sh。

接着配置和生成mod_jk.so文件:

./configure --with-apxs=/usr/sbin/apxs
#如果这里报错,请检查你的apache安装在哪里,找到apxs
make
#此步骤正常运行就会生产mod_jk.so文件了
 
然后复制到httpd的modules下面
cp ./apache-2.0/mod_jk.so /etc/httpd/modules/
#如果你的httpd路径不是这个,请自行更换。

到这里,就到得mod_jk.so 放到了httpd的modules/目录了。

二、修改httpd.conf

httpd.conf 加入加载代码

LoadModule jk_module modules/mod_jk.so

<IfModule jk_module>

       JkWorkersFile conf/workers.properties  #这是一个配置文件,请新建kworkers.properties文件,并且将其与httpd.conf相对的路径或者绝对路径填写到这里

       JkLogFile logs/mod_jk.log

       JkLogLevel info

</IfModule>

新建kworkers.properties文件

 workers.properties是连接tomcat的配置,文件内容如下:

worker.list=tomcat1

worker.tomcat1.port=8009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.status.type=status

 httpd.conf 增加虚拟机,代码如下

 <VirtualHost *:80>

ServerName www.yourdomainname.com #这里是你

DocumentRoot /a/apps/apache-tomcat-9.0.17/webapps/  #这里是java项目的路径

RewriteEngine On 

RewriteOptions Inherit  

DirectoryIndex index.html index.jsp

JkMount /servlet/* tomcat1

JkMount /*WEB-INF  tomcat1   

JkMount /*.jsp tomcat1

JkMount /servlet/* tomcat1

JkMount /*.do tomcat1

JkMount /*.action tomcat1

JkMount /yngd/* tomcat1

</VirtualHost> 

#JkMount是配置调到tomcat处理的文件的规则,如果整个项目跳转直接JkMount /* tomcat1,更多规则可以自己搜索相关文章

 三、下载jdk和tomcat

建立一个你放jdk的目录,例如在/usr/local/java。

官方下载网址https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

wget https://download.oracle.com/otn-pub/java/jdk/12+33/312335d836a34c7c8bba9d963e26dc23/jdk-12_linux-x64_bin.tar.gz

tar -zxvf jdk-12_linux-x64_bin.tar.gz

vim /etc/profile #布局全局变量。进入编辑文件,按a键盘进入编辑,在文件尾部加入

         JAVA_HOME=/a/apps/jdk1.8.0_201

        JRE_HOME=/a/apps/jdk1.8.0_201/jre

        CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

        PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

        export JAVA_HOME JRE_HOME CLASS_PATH PATH

#输入之后就按esc键盘,然后输入wq再按回车保存退出。

source /etc/profile  #让刚才的变量生效

这时使用java -V可以查看安装成功没有。

如果报错-bash: ./xx.sh: Permission denied 就去相应的文件给777权限。chmod 777 xx.sh

 建立一个你放tomcat的目录,例如在/usr/local/tomcat

下载tomcat。官方网站https://tomcat.apache.org/download-90.cgi

wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz

tar -zxvf apache-tomcat-9.0.17.tar.gz

解压完成后,进入apache-tomcat-9.0.17/conf/,找到server.xml修改文件

找到 <Engine name="Catalina" defaultHost="localhost">

修改成 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

这里的tomcat1就是上面httpd.conf和workers.properties文件下的tomcat1

完后以上步骤之后,启动tomcat

apache-tomcat-9.0.17/bin/shutdown.sh  #停止

apache-tomcat-9.0.17/bin/startup.sh  #启动

如果报错-bash: ./xx.sh: Permission denied 就去想应的文件给777权限。chmod 777 xx.sh

这时访问你的ip地址:8080应该能看到tomcat的欢迎页。如果不能打开,请检查防火墙的设置开放8080端口

然后。将你的域名解析到IP,就能访问你的java项目了。

apache安装php的不做教程了,网上太多教程。

然后使用虚拟主机方式添加项目,就可以实现同一服务器运行php和java的项目了。

 


下一篇:服务器升级mysql后php无法运行的小坑
上一篇:[javascript]对象原型prototype用法大杂烩

© 2010-2020 Beasure本硕科技. All Right Reserved. 备案号:粤ICP备14074318号