How to run PHP and Tomcat on same server environment?

Asked this on AskUbuntu a while ago:
https://askubuntu.com/questions/630897/apache-httpd-backed-by-both-tomcat-and-php
but no answers there so I decided to ask here.

Once again – let’s say I have server accessible by some domain name e.g. http://mywebapp.com/

Read More

I would like to setup the following on that server:

  • all requests like http://mywebapp.com/blog* are handled by PHP server (WordPress blog engine to be specific)
  • all other requests http://mywebapp.com/* are handled by Apache Tomcat

I thought that this could be achievable by putting Apache HTTPD server in front of both Tomcat and PHP servers but couldn’t find configurations to achieve this.

Could someone please provide any hint on how to achieve this?

Related posts

1 comment

  1. You can do that with mod_jk:

    1) Enable module “mod_jk” in your Apache web servers httpd.conf. Uncomment this line, by removing the leading hash:

    LoadModule jk_module modules/mod_jk.so
    

    If you are on Linux type:

    sudo apt-get install libapache2-mod-jk
    sudo a2enmod jk
    

    2) Edit [TOMCAT_DIR]/conf/server.xml. Add a “jvmRoute” attribute to the “engine” element:

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat">
    

    Uncomment the AJP connector (the http connector may be disabled):

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    

    3) Create a file “workers.properties”, next to “httpd.conf”. Add this content and set right ip/port:

    worker.list=tomcat
    
    worker.tomcat.type=ajp13
    worker.tomcat.host=127.0.0.1
    #This is the port from the AJP connector, not HTTP!
    worker.tomcat.port=8009
    worker.tomcat.lbfactor=10
    

    4) Add this mapping at the end of httpd.conf and replace [PATH_TO_DIR] by the absolute path:

    <IfModule jk_module>
    
      JkWorkersFile [PATH_TO_DIR]workers.properties
      JkLogFile [PATH_TO_DIR]mod_jk.log 
      JkLogLevel INFO 
      JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 
    
      SetEnvIf Request_URI "/error/*" no-jk
      SetEnvIf Request_URI "/blog*"   no-jk
    
      JkMount    /                    tomcat
      JkMount    /*                   tomcat
    
    </IfModule>
    

    5) Start Tomcat and restart Httpd.

Comments are closed.