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
JkWorkersFile conf/workers.properties #这是一个配置文件,请新建kworkers.properties文件,并且将其与httpd.conf相对的路径或者绝对路径填写到这里
JkLogFile logs/mod_jk.log
JkLogLevel info
新建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 增加虚拟机,代码如下
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
#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修改文件
找到
修改成
这里的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的项目了。