Sun Solaris 上的 Sun、iPlanet 和 Netscape 伺服器本節包括了在 Sun Solaris 平台的 Sun Java System web Server、Sun ONE web Server、iPlanet 和 Netscape 下安裝 PHP 的說明和提示。 從 PHP 4.3.3 起,可以使用基於 NSAPI 模組 PHP 腳本來建立自訂目錄清單和錯誤頁面。更多與 Apache 相容的功能也可以使用。要瞭解如何在現用的的 web 伺服器中支援此功能,請閱讀關於子請求(subrequests)的注解。 可以在下面的連結中瞭解更多關於在 Netscape Enterprise Server(NES)中設定 PHP 的訊息:http://benoit.noss.free.fr/php/install-php4.html。 要在 Sun JSWS/Sun ONE WS/iPlanet/Netscape web 伺服器中編譯 PHP,請為 --with-nsapi=[DIR] 輸入合適的安裝目錄。預設的目錄通常是 /opt/netscape/suitespot/。還可以閱讀 /php-xxx-version/sapi/nsapi/nsapi-readme.txt。
在執行了基礎的安裝並閱讀相應的 Readme 檔案後,還需要執行一些額外的配置步驟。 Sun/iPlanet/Netscape 的配置說明. 首先需要為 LD_LIBRARY_PATH 環境變量增加一些路徑,以便伺服器找到所需的共享庫。可以使用 web 伺服器的啟動腳本很好的完成這一工作。啟動腳本通常位於:/path/to/server/https-servername/start。或許需要編輯其配置檔,它位於:/path/to/server/https-servername/config/。
CGI 環境和對 php.ini 推薦的修改當編寫 PHP 腳本時,應特別注意 Sun JSWS/Sun ONE WS/iPlanet/Netscape 是一個多執行緒 web 伺服器。因此,所有請求都運行在相同的程式空間(Web 伺服器自己的空間),該空間僅有一套環境變量。若果想獲得 CGI 變量,例如 PATH_INFO、HTTP_HOST 等,使用原有的 PHP 3.x 的模式(getenv()),或使用類似的模式(註冊全局變量到環境變量, $_ENV),都是不可行的。只能獲得運行中的 web 伺服器的環境變量,而不能獲得任何有效的 CGI 變量!
要在 PHP 4.x 中正確獲得 CGI 變量,僅需修改腳本使用超級全局變量 $_SERVER。若果老腳本中使用了 $HTTP_HOST 等變量,應該在 php.ini 中開啟 register_globals,並且要修改變量順序(注意:從中移除 "E",因為不需要這裡的環境變量):
錯誤頁面及自造目錄清單的特別使用 (PHP >= 4.3.3)可以使用 PHP 為 "404 Not Found" 或類似的錯誤代碼建立錯誤頁面。將下面幾行新增到 obj.conf 中以覆蓋預設的錯誤頁面:
另一種可能是建立自造目錄清單。只要建立一個 PHP 腳本,來顯示目錄清單 並在 obj.conf 中為 type="magnus-internal/directory" 將相應的預設 Service 行置換為:
關於 nsapi_virtual() 和子請求的注意事項(PHP >= 4.3.3)NSAPI 模組現在支援 nsapi_virtual() 函數(別名:virtual()),用來在 web 伺服器上建立子請求(subrequests)和在 web 頁面插入請求的結果。此函數使用了一些 NSAPI 中還沒有文件說明的函數。在 Unix 下,該模組自動尋找需要的函數,若它們存在則使用它們。若不存在,函數 nsapi_virtual() 被禁用。
| |||||||||||||||||||||||