
我在 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 網域目錄所在的目錄,無論該網域是由 apache 提供的,還是由 tomcat 提供的。所以對於這個網域我在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