
Debian Jessie에 Apache 2.4가 있고 여러 사이트를 가상 호스트로 호스팅합니다. 이 사이트 중 하나는 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>
Tomcat의 server.xml에는 다음과 같은 호스트 레코드가 있습니다.
<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에서 제공되는지 또는 내 경우 tomcat에서 제공되는지에 관계없이 apache의 도메인 디렉토리가 있는 디렉토리가 있어야 합니다. 따라서 이 도메인의 경우 Apache와 Tomcat 모두에 해당 디렉토리가 있습니다. 또한 Tomcat 도메인 루트 디렉터리와 Apache의 도메인 루트 디렉터리 모두에 index.jsp가 있습니다.
내가 접속할 때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