將 Resin Server 和 Apache http Server 整合在一起

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)」模組方塊居中處理協調。

 

若網站是處於重新部署狀態,那麼建議:
  1. 安裝 Apache httpd
  2. sudo apt -y install apache2 apache2-dev

  3. 下載 resin server 原始碼,解壓縮,編譯,安裝
  4.  ./configure  --prefix=(resin安裝目錄) \
                  --with-apxs=/usr/bin/apxs  
      make  
      sudo make install  
     
  5. mod_caochu.so 會被編譯出來
  6. 在 resin 編譯完成後,mod_caochu.so 會被編譯出來,並且放入 /usr/lib/apache2/modules 目錄下。

 

若 Apache http server 與 Resin Server 都已在執行,不需要重新部署。
  1. 若系統找不到 apxs 者
  2. 若 Server 的作業系統是 Debian/Ubuntu 系列,可能只是安裝 apache2 套件,此時則需要加裝 apache2-dev 套件,apxs 就在 apache2-dev 套件內,安裝完成後,預設會被放入 /usr/bin 這個目錄下,所以完整路徑為:/usr/bin/apxs

  3. 下載 resin server 原始碼,解壓縮,編譯
  4.  cd (resin原始碼目錄)/
     ./configure  --prefix=(resin安裝目錄) \
                  --with-apxs=/usr/bin/apxs  
     make  
     
  5. 將 mod_caucho.so 放到 apache 相關的 module 的目錄下
  6.  sudo cp (resin原始碼目錄)/modules/c/src/apache2/.libs/mod_caucho.so \
              /usr/lib/apache2/modules/
     

 

解決 cauchu.so 問題後,接下來…
  1. 將以下設定放入 apache server 設定中
  2. 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>
    
  3. 在 apache server 設定中,設置文件處理順序,添加或修改以下內容:
  4. <IfModule mod_dir.c>
       DirectoryIndex index.jsp index.php index.html index.xhtml index.htm  
    </IfModule>
    
  5. 關閉 Resin Server 的 php 功能
  6. 在 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>
  7. 重新啟動網站服務
  8. 最後重新啟動 Apache http Server 和 Resin Server 服務,讓設定值可以生效。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*