• 首页 Home
  • 简介 About
  • 项目 Service
  • 案例 Cases
  • 新闻 News
  • 技术文章 本硕新闻 行业资讯

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

    发表时间:2019-03-22  热度:

    安装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的项目了。

     

    文章怎么样?
    相关资讯