
У меня есть apache 2.4 на Debian Jessie, и я размещаю несколько сайтов как виртуальные хосты. Один из этих сайтов работает на jsp, поэтому я установил tomcat 8 и использую mod_jk.
Мой файл конфигурации виртуального хоста для Apache:
<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 [email protected]
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>
В файле server.xml tomcat у меня есть следующая запись хоста:
<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" />
Сайт работает здесьhttp://www.dimitros-apartments.gr
Я получаю сообщение об ошибке «Отказано в доступе» при доступеhttp://www.dimitros-apartments.gr.
Я использую ispconfig, и для каждого домена у меня должен быть свой каталог, где находятся каталоги доменов apache, независимо от того, обслуживается ли этот домен из apache или, в моем случае, из tomcat. Поэтому для этого домена у меня есть соответствующий каталог и на apache, и на tomcat. У меня также есть index.jsp и в корневом каталоге домена tomcat, и в корневом каталоге домена apache.
Когда я получаю доступhttp://www.dimitros-apartments.gr/index.jspЯ получаю нескомпилированную страницу jsp (я вижу исходный код) в своем браузере. Странно, что эта нескомпилированная страница не из каталога tomcat, а из каталога домена apache.
Любая помощь приветствуется.
Спасибо заранее, Христофорос
решение1
Кажется, я смотрел старую документацию. У всех может быть та же проблема, строки
JkMount /dimitros-apartments.gr/* ajp13_worker
JkMount /dimitros-apartments.gr ajp13_worker
необходимо изменить на
JkMount /* ajp13_worker