寫在前面的話 之前的版本有很多地方的錯誤 現在終於弄好了 把這個坑填上吧
注 tomcat下有個wrapper的文檔 這個文檔也是下面的文件路徑指向的地方 這個文檔的作用就是將web項目正式的部署到服務器上的路徑 我記得在測試的時候 如果不是這個目錄下的web項目是不可以啓動的 所以爲了簡潔 所有項目都部署到該目錄下 當然爲了減少對tomcat的滲透 最好的辦法就是重新新建一個目錄然後在將路徑指向該文件 至於我爲什麼不做 因爲懶啊
==========
首先確認下版本 tomcat7 apache2.4
因爲apache2.4和apache2.2有不小的改變 所以網上很多東西 你丫的寫博客說一半玩蛋呢!—–依舊是廢話的小尾巴
apache主要修改的就是這個文件C:\Apache24\conf\httpd.conf 因爲我自己做環境的時候用了ssl加密的設置 所以某些端口可能不一樣 自己注意
DocumentRoot "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps"
//首先是這個項 這裏的作用是將你放置在該目錄的項目生效成web項目
<Directory "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps">//這裏的配置文件主要是配
//置項目的請求權防止出現403的請求錯誤 如果配置錯誤 也會出現
//404錯誤 同時要注意這裏的配置必須和下面tomcat的解析目錄一致!
// 這個最重要 否則會出現apache地址無法解析jsp頁面的錯誤
//同時這裏有一個小bug
Options FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
//上述四個選項是2.2 版本的 2.4版本發生了下面的變化
//Order allow,deny Allow from all 被整合成Require all granted
//所以修改成
Options Indexes FollowSymLinks//我還是忘了 去查百度
AllowOverride all//忘記了 去查百度吧 其實修改的是這裏 以前默認的是none
Require all granted//所有的請求都可以訪問
//這裏還有安全的配置 用#註釋掉Options FollowSymLinks indexes就好了 如果找不到 可能是版本的原因 反正我沒管
//現在是關鍵的配置
LoadModule jk_module modules/mod_jk.so//載入模塊
JKWorkersFile conf/workers.properties//載入模塊式的配置文件
JkLogFile logs/mod_jk.log//日誌輸出
//上述的很簡單 主要是下面的
//這裏創建了一個虛擬的host 或許可能不理解啥意思 我的理解就
//是創建了一個tomcat的虛擬主機 地址就是當前機子的IP和端口
// 這裏說明一下我的沒有改IP和端口 都是默認的地址 80 8080
// 8009 這些沒有改動過 自己注意下自己的端口
<VirtualHost *>
ServerName localhost
DocumentRoot "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps"//這個和上面那
//個DocumentRoot 要一致 否則會有各種奇怪的羞羞的小bug出現
DirectoryIndex index.html index.htm index.jsp index.action//這裏有點小問題 其實我也不是很懂 反正是這麼設
//置的 有問題以後再說吧
// 很多情況下,URL中並沒有指定文檔的名字,而只是給出了一個
//目錄名(不一定是根目錄,有可能是欄目的目錄)。那麼Apache服
//務器就自動返回這個目錄下由DirectoryIndex定義的文件,當然
//可以指定多個文件名字,系統會這個目錄下順序搜索。當所有由
//DirectoryIndex指定的文件都不存在時,Apache服務器可以根據
//系統設置,生成這個目錄下的所有文件列表,提供用戶選擇。此時該
//目錄的訪問控制選項中的Indexes選項(Options Indexes )必
//須打開,以使得服務器能夠生成目錄列表,否則Apache將拒絕訪問。
//注意的一點是,Apache的配置選項DirectoryIndex不止針對根目
//錄,也針對二級目錄,就是說如果URL是一個網站下面的一個目錄,
//但沒有指定是訪問這個網站的哪個文件時,Apache服務器也會按照
//DirectoryIndex指定的順序搜索,打開存在的頁面。
//#下面的一行是有關虛擬主機默認起始頁配置的,各起始頁之間以空
//格分隔,建議指定,否則採用全局設置
//DirectoryIndex index.html index.htm index.php
//注意的是,DirectoryIndex不止針對主服務器做全局配置,也可
//以對某個虛擬主機單獨配置,使用的語法一樣。
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /*WEB-INF tomcat//注意這裏的tomcat要和works.properties中的worklist名字一樣一致 其實都是自定義的
//名字但是要一致 否則各種小bug等着你哦
JkMount /*j_spring_security_check tomcat
JkMount /*.action tomcat
JkMount /servlet/* tomcat
JkMount /*.jsp tomcat
JkMount /*.do tomcat
JkMount /*.action tomcat
</VirtualHost>
//其實這裏也可以再vhost文件中設置 同時解除這個文件vhost
//model的註釋 但是我覺得那個步驟很煩人 同樣的你也可以把那些
//交給tomcat解析的配置單獨作成一個配置文件然後在httpd.conf
//中加載 就是include那個命令 具體的百度吧
//這個works.properties的配置 這個是新建的文件
workers.tomcat_home=C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0 //註釋tomcat的位置
workers.java_home=C:\Program Files (x86)\Java\jre7
ps=/ //文檔隔開符 沒有打錯 就是這個!
worker.list=tomcat //自定義 記得和httpd.conf中的tomcat一致
worker.tomcat.type=ajp13 //ajp13 是個協議
worker.tomcat.host=localhost
worker.tomcat.port=8009 //監聽的端口
worker.tomcat.socket_keepalive=1 //忘記了
worker.tomcat.socket_timeout=300 //多少秒之後斷開
worker.tomcat.lbfactor=1 //負載平衡級別
//同時在tomcat的server.xml中添入下列語句
//指向apache 如果不加這一句
//就會解析tomcat的root下的默認目錄 但是apache不解析動態數據
//所以只會是一些數字字母而沒有圖片
<Context docBase="C:\Apache24\htdocs" crossContext="true" path="" reloadable="true" />
//其實後面3個配置感覺沒多大用 如果只是很小的量來測試的話
//然後就是測試了 首先在localhost下訪問apache 和8080端口的
//指向是一致的 然後就是在localhost/testfile/index.jsp能
//夠成功訪問就是成功了 當然這個也是自己創建的測試頁面
//因爲有ssl協議 我在host下稍微修改了下地址 就是
本機IP www.ccav.com
--------------
附錄
//修改tomcat默認啓動的工程,我們知道,tomcat默認輸入
//http://localhost:8080/會進入到默認的tomcat歡迎頁面,也就是存放在
//$tomcat/webapps/ROOT,想改變默認工程路徑,就要修改
//$tomcat/conf/server.xml文件
//1、直接將web工程放在tomcat的webapps文件夾下面,前提是你的工程裏面都是已經編譯好的,例如自己的工程的文件夾爲myapp;
//2、在config文件夾下修改server.xml,在裏面的<host ...>....</host>元素中添加
<Context path="" debug="0" docBase="myapp" reloadable="true"/>
//3,重新啓動tomcat,輸入http://localhost:8080/ 就會進入到myapp的工程路徑下!
//更改端口:若想外網通過地址就能訪問,則在80端口開放的同事,將port改成80
<Connector port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
//當然也可以這麼做
//創建此文件:
${CATALINA_BASE}/conf/catalina/localhost/ROOT.xml
ROOT.xml
{code="xml"}
<Context docBase="your_webapp_path" />
{code}
CATALINA_BASE 就是tomcat的安裝路徑 具體的修改看前篇