於Windows中佈署Apache Server 及 JBoss並不困難,但要將JBoss掛載於Apache之下運作便有些複雜,以下分別記錄;
準備檔案:
Apache 2.4 httpd-2.4.12-win64-VC11.zip
https://www.apachelounge.com/download/
Apache最新及次新的版本都尚未發布.msi封裝程式,因此需要下載原始檔後手動安裝,此次安裝64位元版本
JBoss 7.1.1 Final
http://jbossas.jboss.org/downloads.html
這裡使用的是7.1.1 Final版本,使用方法跟tomcat一樣簡單,只要解壓縮之後做些設定就可以開始運作
tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
這是Apache與其底下App server如tomcat之類的連結器,也可以使用在Jboss上
手動安裝Apache
解壓縮下載回來的 Apache,其中 Apache24 資料夾 (24 代表 2.4.x 版) 為 Apache 根目錄,將該目錄重新命名為 Apache 並放在 D:\Apache。
用文字編輯器開啟位於Apache根目錄\conf\httpd.conf
的設定檔,httpd.conf 有很多設定,用搜尋的方式找到要更改的設定。
# Apache 根目錄
ServerRoot "D:/Apache"
# 監聽 port(這裡可以修改為我們自己指定的port)
Listen 80
# 伺服器用來識別自己,如果沒有網域名稱可以使用 IP(ex: localhost:8080)
ServerName 網域名稱或IP:80
# DocumentRoot : 網站根目錄
# <Directory "目錄"></Directory> : 目錄設定
# 正式環境中建議將 Options 的 Indexes 移除,避免列出網站的目錄及檔案
DocumentRoot "D:/Apache/htdocs"
<Directory "D:/Apache/htdocs">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 錯誤記錄檔的路徑,預設會將所有記錄寫入到同一個檔案,時間久了檔案會變很大
# 調用 rotatelogs.exe 將記錄檔以天為單位做分割
# 路徑若有空格用8.3檔名處理
ErrorLog "|bin/rotatelogs.exe D:/Apache/logs/error_%Y%m%d.log 86400"
# 網站存取記錄檔的路徑,預設會將所有記錄寫入到同一個檔案,時間久了檔案會變很大
# 調用 rotatelogs.exe 將記錄檔以天為單位來分割
# 路徑若有空格用8.3檔名處理
# 預設有 common 及 combined 兩種格式,這邊使用 combined 記錄較詳細的資訊
# httpd.conf 中 CustomLog 有兩列,其中一列未生效,請確保只有一列生效
CustomLog "|bin/rotatelogs.exe D:/Apache/logs/access_%Y%m%d.log 86400" combined
# ScriptAlias : CGI script 路徑
# <Directory "CGI script 路徑"></Directory> : CGI script 路徑設定
ScriptAlias /cgi-bin/ "D:/Apache/cgi-bin/"
<Directory "D:/Apache/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
設定好之後就可以運行Apache來試試看;
1. 開啟命令提示字元cmd,並且切換至Apache根目錄\Apache\bin。
2. 輸入 httpd 便可以啟動 Apache。
3. 寫一個測試用的.html檔案放到D:\ApacheServer\Apache\htdocs底下。
4. 開啟localhost:8080測試看看有沒有成功的字樣顯示,再測試.html。
我們也可以把Apache安裝成服務,這樣就可以不用每次都要用cmd去啟動;
1. 開啟命令提示字元cmd,並且切換至Apache根目錄\Apache\bin。
2. 輸入httpd -k install -n "Apache 2.4" (-k install表示安裝服務,"Apache 2.4"表示要安裝的服務名稱)。
3. 之後便可從控制台 -> 系統管理工具 ->服務 去開啟Apache。
手動安裝 JBoss
JBoss的安裝很簡單,只要下載完後解壓縮便完成安裝,跟Tomcat的使用方法很像;
1. 解壓縮後的路徑要記得避免空格,如果有空格可能會發生一些未知的錯誤,這邊是放到 D:\JBoss\jboss-as-7.1.1.Final 底下。
2. 於環境變數新增一個新path變數,name為JBOSS_HOME,路徑為Jboss目錄,這邊是D:\JBoss\jboss-as-7.1.1.Final。
3. 接著需要做一些基本設置,先至D:\JBoss\jboss-as-7.1.1.Final\standalone\configuration底下編輯standalone.xml。
4. 在subsystem xmlns="urn:jboss:domain:web:1.1"裡面加入一行<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>
這是為了要讓connect連結用的。
5. <deployment-scanner>標籤中加入auto-deploy-zipped="true" auto-deploy-exploded="false" 可讓JBoss自動deploy war檔案。
6. 其他基本配置可參考 http://squall75726.pixnet.net/blog/post/255673702 此篇記錄。
設定connector將Jboss掛載於Apache之下
在這裡要確定使用的connector有跟目前的Apache Server版本有對應,如這邊使用的是Apache 2.4.11版,我所使用的connector就必須是windows-x86_64-httpd-2.4.x <=表示支援2.4.X以內的版本才行。
1. 將tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x 解壓的mod_jk.so放到D:\ApacheServer\Apache\modules底下
2. 在 %APACHE_HOME%/conf 目錄底下建立一個 workers.properties 文件,內容如下;
LoadModule jk_module modules/mod_jk.so (so檔的檔名)
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /* jboss (指定jboss,需與mod-jk.conf內的worker.list對應)
3. 在 %APACHE_HOME%/conf 目錄下建立mod_jk.conf 文件,內容如下;
worker.list=jboss
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
4. 最後在httpd.conf檔的後面加上: Include conf/mod_jk.conf 將該設定檔匯入。
(記得在jboss的standalone.xml中的subsystem xmlns="urn:jboss:domain:web:1.1"裡面加入一行<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> 這是為了要讓connect連結用的)
5. 重新開啟Apache和JBoss,例如這邊Apache設定8080port而JBoss設定8090port,如果localhost:8080開啟後可以看到JBoss的歡迎頁面,則表示掛載成功!
參考資料來源:
http://codeplanet.me/archives/2014/11/install-apache-and-php-on-windows/
http://www.jaysonjc.com/programming/configuring-apache-in-front-of-jboss-application-server-using-mod_jk.html
http://blog.csdn.net/myliveisend/article/details/7945672