讀完本章節你江學到 Unix 平臺下如何 Lighttpd 1.4 下安裝 PHP 的說明和提示。
推薦閱讀 ? Lighttpd trac 了解一下正確安裝 Lighttpd 然后繼續。
推薦使用 Fastcgi 作為 SAPI 模塊來連接 PHP 和 Lighttpd。在 PHP 5.3 中自動激活了 Fastcgi,對于舊版本則在配置時使用 --enable-fastcgi。要確認 PHP 已激活 Fastcgi 可以使用命令 php -v,應該顯示 PHP 5.2.5 (cgi-fcgi)。在 PHP 5.2.3 之前,Fastcgi 是包含在 php 可執行文件中(沒有 php-cgi 文件)。
>使 Lighttpd 產生 php 進程
要配置 Lighttpd 連接到 php 并產生 fastcgi 進程,編輯 lighttpd.conf。推薦使用套接字在本機連接 fastcgi 進程。
** Partial lighttpd.conf**
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
((
"socket" => "/tmp/php.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"min-procs" => 1,
"max-procs" => 1,
"idle-timeout" => 20
))
)
bin-path 指令允許 lighttpd 動態產生 fastcgi 進程。PHP 會根據 PHP_FCGI_CHILDREN 環境變量產生子進程。“bin-environment”指令設定了所產生的進行的環境。PHP 會在達到 PHP_FCGI_MAX_REQUESTS 所指定的請求數目之后殺死一個子進程。在 PHP 中通常應避免“min-procs”和“max-procs”指令。PHP 自己管理其子進程,并且例如 APC 之類的 opcode 緩存僅在 PHP 管理下的子進程之間共享。如果“min-procs”被設定成某個大于 1 的值,則 PHP 應答器的總數目為該值乘以 PHP_FCGI_CHILDREN(如 min-procs 為 2,PHP_FCGI_CHILDREN 為 16 則會產生 32 個應答器)。
通過 spawn-fcgi 產生進程
Lighttpd 提供一個名為 spawn-fcgi 的程序來簡化產生 fastcgi 進程的手續。
產生 php-cgi
有可能不通過 spawn-fcgi 來產生進程,但需要做些工作。設定 PHP_FCGI_CHILDREN 環境變量控制了 PHP 產生多少個子進程來處理請求。設定 PHP_FCGI_MAX_REQUESTS 將決定每個子進程存活多久(以請求數目決定)。以下為一個簡單的 bash 腳本來幫助產生 php 應答器。
>** 產生 FastCGI 應答器**
~~~
#!/bin/sh
# Location of the php-cgi binary
PHP=/usr/local/bin/php-cgi
# PID File location
PHP_PID=/tmp/php.pid
# Binding to an address
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Binding to a domain socket
FCGI_BIND_ADDRESS=/tmp/php.sock
PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000
env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
$PHP -b $FCGI_BIND_ADDRESS &
echo $! > "$PHP_PID"
~~~
連接遠程 FCGI 實例
Fastcgi 實例可被產生于多個遠程機器以分散應用程序。
**連接遠程 php-fastcgi 實例**
fastcgi.server = ( ".php" =>
(( "host" => "10.0.0.2", "port" => 1030 ),
( "host" => "10.0.0.3", "port" => 1030 ))
)
- 入門指引
- 簡介
- PHP是什么
- PHP能做什么
- 簡明教程
- 學PHP需要什么
- 我的第一個PHP頁面
- 實用的PHP腳步
- PHP是如何處理表單的
- 在新版本的PHP如何實用舊的PHP代碼
- 下一步需要做什么
- PHP語言參考
- PHP基本語法
- PHP標記
- PHP多進程管理-pcntl_fork
- PHP文件上傳易犯錯誤
- PHP從HTML中分離
- PHP的指令分隔符
- PHP序列化serialize
- PHP類常量
- PHP Traits
- 從 HTML 中分離
- 注釋
- PHP數據類型
- PHP支持的類型簡介
- 布爾類型(Boolean)就是易經知識
- 整型(integer)即整數
- 浮點型(float)
- 字符串(string)
- 數組(Array)
- 對象(object)一定要搞
- 資源類型(resource)
- PHP安裝與環境配置
- 安裝前需要考慮的事項
- Unix系統下安裝PHP
- Unix 系統下安裝 Apache 1.3.x
- Unix 系統下安裝 Apache 2.x
- Unix 系統下安裝 Nginx 1.4.x
- Unix 平臺安裝 Lighttpd 1.4
- Sun Solaris 上的 Sun、iPlanet 和 Netscape 服務器
- CGI 命令行設置
- 針對 HP-UX 平臺的安裝提示
- 在 OpenBSD 系統下的安裝PHP
- Debian GNU/Linux 安裝說明
- 在Mac OS X 系統下安裝PHP
- 使用軟件包
- 使用內置的 PHP
- Windows 系統下的安裝
- 云計算平臺上的安裝
- Microsoft Azure
- 在亞馬遜(Amazon EC2)安裝PHP
- PHP語法參考
- 類型
- NULL
- Callback 回調類型
- 本文檔中使用的偽類型與變量
- 類型轉換的判別
- PHP 類型比較表
- 常量和變量
- 語法基礎
- 預定義變量
- 變量范圍
- 可變變量
- 外部變量
- 常量
- 語法
- 魔術常量
- PHP表達式&運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- continue
- switch
- declare
- return
- require
- include
- require_once