Resin server 是處理 JSP 要求的 Server, Apache http Server 主要是處理靜態網頁以及 php 要求的 Server。
目前 Resin server 雖然已有提供靜態網頁以及處理 php 要求的功能,但習慣上,仍以 Apache http Server 來處理這些要求。
所以,該如何將兩個 Server 整合起來,當需要執行 jsp 需求時,就轉給 Resin Server。當有靜態網頁以及執行 php 需求的工作時,就由 Apache http Server 來處理的配置方法,就是本文底下要介紹的。
由圖中可以得知,我們可以利用「mod_caucho(C)」模組方塊居中處理協調。
若網站是處於重新部署狀態,那麼建議:
- 安裝 Apache httpd
- 下載 resin server 原始碼,解壓縮,編譯,安裝
- mod_caochu.so 會被編譯出來
sudo apt -y install apache2 apache2-dev
./configure --prefix=(resin安裝目錄) \ --with-apxs=/usr/bin/apxs make sudo make install
在 resin 編譯完成後,mod_caochu.so 會被編譯出來,並且放入 /usr/lib/apache2/modules 目錄下。
若 Apache http server 與 Resin Server 都已在執行,不需要重新部署。
- 若系統找不到 apxs 者
- 下載 resin server 原始碼,解壓縮,編譯
- 將 mod_caucho.so 放到 apache 相關的 module 的目錄下
若 Server 的作業系統是 Debian/Ubuntu 系列,可能只是安裝 apache2 套件,此時則需要加裝 apache2-dev 套件,apxs 就在 apache2-dev 套件內,安裝完成後,預設會被放入 /usr/bin 這個目錄下,所以完整路徑為:/usr/bin/apxs 。
cd (resin原始碼目錄)/ ./configure --prefix=(resin安裝目錄) \ --with-apxs=/usr/bin/apxs make
sudo cp (resin原始碼目錄)/modules/c/src/apache2/.libs/mod_caucho.so \ /usr/lib/apache2/modules/
解決 cauchu.so 問題後,接下來…
- 將以下設定放入 apache server 設定中
- 在 apache server 設定中,設置文件處理順序,添加或修改以下內容:
- 關閉 Resin Server 的 php 功能
- 重新啟動網站服務
LoadModule caucho_module \ /usr/lib/apache2/modules/mod_caucho.so # mod_caucho <IfModule mod_caucho.c> ResinConfigServer localhost 6800 <Location /webapp> SetHandler caucho-request </Location> </IfModule>
<IfModule mod_dir.c> DirectoryIndex index.jsp index.php index.html index.xhtml index.htm </IfModule>
在 Resin 的配置文件 app-default.xml 中尋找與 PHP 相關的配置。可能會有類似這樣的內容,找到後請刪掉,或是註解起來:
<servlet servlet-name="resin-php" servlet-class="com.caucho.quercus.servlet.QuercusServlet"> </servlet>
<resin:if test="${! quercus_disable}"> <servlet-mapping url-pattern="*.php" servlet-name="resin-php" default="true"/> </resin:if>
<welcome-file>index.php</welcome-file>
最後重新啟動 Apache http Server 和 Resin Server 服務,讓設定值可以生效。