Discussion:
Apache 2.4 tomcat 8 setup problem
Χριστόφορος Κορυφίδης
2018-08-27 09:03:24 UTC
Permalink
I have an apache 2.4 on Debian Jessie and I host several sites as virtual hosts.
On of these sites is running on jsp so I hav installed tomcat 8 and I
use mod_jk.

My virtual host configuration file for apache is:

<Directory /var/www/dimitros-apartments.gr>
AllowOverride None
Require all denied
</Directory>

<VirtualHost *:80>
ServerName dimitros-apartments.gr
ServerAlias www.dimitros-apartments.gr
#<Location "/">
# JkUriSet worker ajp13:localhost:8009
#</Location>
JkMount /dimitros-apartments.gr/* ajp13_worker
JkMount /dimitros-apartments.gr ajp13_worker

DocumentRoot /var/www/dimitros-apartments.gr/web
# DocumentRoot /var/lib/tomcat8/webapps/dimitros-apartments.gr
# ApJServMount /servlet /ROOT
# <Directory
"/var/lib/tomcat8/webapps/dimitros-apartments.gr/WEB-INF">
# Options None
# Deny from all
# </Directory>
ServerAdmin ***@dimitros-apartments.gr
ErrorLog /var/log/ispconfig/httpd/dimitros-apartments.gr/error.log
Alias /error/ "/var/www/dimitros-apartments.gr/web/error/"
ErrorDocument 400 /error/400.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 405 /error/405.html
ErrorDocument 500 /error/500.html
ErrorDocument 502 /error/502.html
ErrorDocument 503 /error/503.html

<IfModule mod_ssl.c>
</IfModule>

<Directory /var/www/dimitros-apartments.gr/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks +Indexes
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/clients/client1/web12/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks +Indexes
AllowOverride None
Require all granted
</Directory>




# suexec enabled
<IfModule mod_suexec.c>
SuexecUserGroup web12 client1
</IfModule>
# php as fast-cgi enabled
# For config options see:
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
<IfModule mod_fcgid.c>
FcgidIdleTimeout 300
FcgidProcessLifeTime 3600
# FcgidMaxProcesses 1000
FcgidMaxRequestsPerProcess 5000
FcgidMinProcessesPerClass 0
FcgidMaxProcessesPerClass 10
FcgidConnectTimeout 3
FcgidIOTimeout 600
FcgidBusyTimeout 3600
FcgidMaxRequestLen 1073741824
</IfModule>
#<Directory /var/www/dimitros-apartments.gr/web>
# <FilesMatch "\.php[345]?$">
# SetHandler fcgid-script
# </FilesMatch>
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php3
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php4
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php5
# Options +ExecCGI
# AllowOverride All
#
Require all granted
# </Directory>
#<Directory /var/www/clients/client1/web12/web>
# <FilesMatch "\.php[345]?$">
# SetHandler fcgid-script
# </FilesMatch>
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php3
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php4
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php5
# Options +ExecCGI
# AllowOverride All
# Require all granted
# </Directory>
# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web12 client1
</IfModule>

<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client1/web12/webdav>
<ifModule mod_security2.c>
SecRuleRemoveById 960015
SecRuleRemoveById 960032
</ifModule>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
DavLockDB /var/www/clients/client1/web12/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>



</VirtualHost>

On tomcat's server.xml I have a host record as:

<Host name="www.dimitros-apartments.gr" appBase="/var/lib/tomcat8/webapps" >
<Alias>dimitros-apartments.gr</Alias>
<Context path=""
docBase="/var/lib/tomcat8/webapps/dimitros-apartments.gr" />
</Host>


Site is running here http://www.dimitros-apartments.gr

I get a permission denied error where I access
http://www.dimitros-apartments.gr.

I use ispconfig and for each domain I must have it's directory where
apache's domains directories resides, regardless if this domain is
served from apache or in my case from tomcat. So for this domain I
have a corresponding directory on both apache and tomcat. I also have
an index.jsp on both tomcat domain root directory and apache's domain
root directory.

When I access http://www.dimitros-apartments.gr/index.jsp I get an
uncompiled jsp page ( I see the source code ) on my browser.
A strange think is that this uncompiled page, is not from tomcat's
directory but from apache's domain directory.

any help is appreciated.

Thanks in advance,
Christoforos

---------------------------------------------------------------------
To unsubscribe, e-mail: users-***@tomcat.apache.org
For additional commands, e-mail: users-***@tomcat.apache.org
André Warnier (tomcat)
2018-08-27 10:29:17 UTC
Permalink
Hi.
.. hmm, where to begin ? ...

Maybe first :
In your case, it looks like you may be more familiar with the configuration of Apache
httpd, than with the configuration of mod_jk and of tomcat.
So just as a possible tip : there is an alternative, at the Apache httpd level, to mod_jk.
See here : http://httpd.apache.org/docs/2.4/mod/mod_proxy_ajp.html
The advantage is
a) that the configuration of the mod_proxy_ajp module is entirely in the httpd.conf
configuration file, and requires no additional mod_jk specific files
b) that it avoids the usage of all these "Jk*" commands, which are often a bit less easy
to use, in terms of how they combine with the other Apache httpd configuration directives.
c) that the mod_proxy_ajp configuration is much the same as for any other Apache httpd
proxy module
d) that the mod_proxy_ajp is a part of the standard Apache httpd package, so you do not
need to install anything extra. (mod_jk can be more difficult to get under some Linux
versions).

Second, and only if you still prefer to use mod_jk :

1) from the configuration that you show below (and particularly the commented-out bits),
it looks like you may have copied (or referred to) some pretty old documentation about how
to do this, and that this documentation referred to very old (and probably outdated)
versions of tomcat and/or mod_jk.

The correct and up-to-date documentation about mod_jk should be consulted here :
top : https://tomcat.apache.org/connectors-doc/
and in particular for you : https://tomcat.apache.org/connectors-doc/reference/apache.html
Post by Χριστόφορος Κορυφίδης
JkMount /dimitros-apartments.gr/* ajp13_worker
JkMount /dimitros-apartments.gr ajp13_worker
The "dimitros-apartments.gr" part is the hostname, and should not be a part of the URIs
which you proxy to tomcat via JkMount.
So if you really want, under Apache httpd, to proxy "everything" to the back-end tomcat,
Post by Χριστόφορος Κορυφίδης
JkMount /* ajp13_worker
(assuming that "ajp13_worker" is correctly defined and configured in a
"workers.properties" file.)

3) it becomes a bit more complicated if you want to have some things delegated to tomcat,
but you also want tome other things to be served directly by your front-end Apache httpd.

But maybe let's start with the beginning, and make the appropriate choice for you between
mod_jk and mod_proxy_ajp.

In any case, when you post your configuration again, make it easier for the people here,
and remove the commented-out configuration lines. It is a bit difficult to read now, with
all the comments.
(But thank you for posting the versions of Apache httpd and tomcat, and explaining the
context and what you want to achieve; that really helps).
Post by Χριστόφορος Κορυφίδης
I have an apache 2.4 on Debian Jessie and I host several sites as virtual hosts.
On of these sites is running on jsp so I hav installed tomcat 8 and I
use mod_jk.
<Directory /var/www/dimitros-apartments.gr>
AllowOverride None
Require all denied
</Directory>
<VirtualHost *:80>
ServerName dimitros-apartments.gr
ServerAlias www.dimitros-apartments.gr
#<Location "/">
# JkUriSet worker ajp13:localhost:8009
#</Location>
JkMount /dimitros-apartments.gr/* ajp13_worker
JkMount /dimitros-apartments.gr ajp13_worker
DocumentRoot /var/www/dimitros-apartments.gr/web
# DocumentRoot /var/lib/tomcat8/webapps/dimitros-apartments.gr
# ApJServMount /servlet /ROOT
# <Directory
"/var/lib/tomcat8/webapps/dimitros-apartments.gr/WEB-INF">
# Options None
# Deny from all
# </Directory>
ErrorLog /var/log/ispconfig/httpd/dimitros-apartments.gr/error.log
Alias /error/ "/var/www/dimitros-apartments.gr/web/error/"
ErrorDocument 400 /error/400.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 405 /error/405.html
ErrorDocument 500 /error/500.html
ErrorDocument 502 /error/502.html
ErrorDocument 503 /error/503.html
<IfModule mod_ssl.c>
</IfModule>
<Directory /var/www/dimitros-apartments.gr/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks +Indexes
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/clients/client1/web12/web>
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler None
</FilesMatch>
Options +FollowSymLinks +Indexes
AllowOverride None
Require all granted
</Directory>
# suexec enabled
<IfModule mod_suexec.c>
SuexecUserGroup web12 client1
</IfModule>
# php as fast-cgi enabled
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
<IfModule mod_fcgid.c>
FcgidIdleTimeout 300
FcgidProcessLifeTime 3600
# FcgidMaxProcesses 1000
FcgidMaxRequestsPerProcess 5000
FcgidMinProcessesPerClass 0
FcgidMaxProcessesPerClass 10
FcgidConnectTimeout 3
FcgidIOTimeout 600
FcgidBusyTimeout 3600
FcgidMaxRequestLen 1073741824
</IfModule>
#<Directory /var/www/dimitros-apartments.gr/web>
# <FilesMatch "\.php[345]?$">
# SetHandler fcgid-script
# </FilesMatch>
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php3
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php4
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php5
# Options +ExecCGI
# AllowOverride All
#
Require all granted
# </Directory>
#<Directory /var/www/clients/client1/web12/web>
# <FilesMatch "\.php[345]?$">
# SetHandler fcgid-script
# </FilesMatch>
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php3
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php4
# FCGIWrapper
/var/www/php-fcgi-scripts/web12/.php-fcgi-starter .php5
# Options +ExecCGI
# AllowOverride All
# Require all granted
# </Directory>
# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web12 client1
</IfModule>
<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client1/web12/webdav>
<ifModule mod_security2.c>
SecRuleRemoveById 960015
SecRuleRemoveById 960032
</ifModule>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
DavLockDB /var/www/clients/client1/web12/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>
</VirtualHost>
<Host name="www.dimitros-apartments.gr" appBase="/var/lib/tomcat8/webapps" >
<Alias>dimitros-apartments.gr</Alias>
<Context path=""
docBase="/var/lib/tomcat8/webapps/dimitros-apartments.gr" />
</Host>
Site is running here http://www.dimitros-apartments.gr
I get a permission denied error where I access
http://www.dimitros-apartments.gr.
I use ispconfig and for each domain I must have it's directory where
apache's domains directories resides, regardless if this domain is
served from apache or in my case from tomcat. So for this domain I
have a corresponding directory on both apache and tomcat. I also have
an index.jsp on both tomcat domain root directory and apache's domain
root directory.
When I access http://www.dimitros-apartments.gr/index.jsp I get an
uncompiled jsp page ( I see the source code ) on my browser.
A strange think is that this uncompiled page, is not from tomcat's
directory but from apache's domain directory.
any help is appreciated.
Thanks in advance,
Christoforos
---------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: users-***@tomcat.apache.org
For additional commands, e-mail: users-***@tomcat.apache.org

Continue reading on narkive:
Loading...