如何設定nginx的php fastcgi程序數

  • 作者:由 匿名使用者 發表于 動漫
  • 2021-09-14

如何設定nginx的php fastcgi程序數 匿名使用者 1級 2015-09-05 回答

原始碼包可以在官方主頁上下載。Ubuntu 7。10可以直接透過apt安裝,也可以從這裡下載最新的deb包:

sudo apt-get install nginx

如果要自己編譯的話,需要確保自己已經有編譯器和PCRE的庫(用於Nginx的rewrite模組,如果不需要這個模組可以在configure時使用。/configure –without-rewrite),編譯方法如下:

wget http:// sysoev。ru/nginx/nginx-0。5。34。tar。gz

tar zxvf nginx-0。5。34。tar。gz

cd nginx-0。5。34

。/configure #預設配置安裝路徑為/usr/local/nginx 可以追加——prefix=/usr設定到/usr

make && make install # install要求有root許可權

Ubuntu安裝之後的檔案結構大致為:

所有的配置檔案都在/etc/nginx下,並且每個虛擬主機已經安排在了/etc/nginx/sites-available下

程式檔案在/usr/sbin/nginx

日誌放在了/var/log/nginx中

並已經在/etc/init。d/下建立了啟動指令碼nginx

預設的虛擬主機的目錄設定在了/var/www/nginx-default

而自己利用預設配置編譯的,則放在/usr/local/nginx下,以下是目錄結構:

/usr/local/nginx/conf 配置目錄

/usr/local/nginx/html 預設的網站根目錄

/usr/local/nginx/logs 日誌和pid檔案目錄

/usr/local/nginx/sbin 執行檔案目錄

下面可以啟動nginx來看看效果(請確保80埠沒有其他服務在使用):

Ubuntu請執行:

sudo /etc/init。d/nginx start

其他請執行:

/usr/local/nginx/sbin/nginx

然後就可以透過http:// localhost/來看看效果了。

要配置nginx的自動執行,可以將/usr/local/nginx/sbin/nginx新增到/etc/rc。local中,Ubuntu可以執行

update-rc。d nginx defaults

安裝PHP5

至於如何在Linux上安裝PHP,有很多文章,甚至很多平臺上都有現成的軟體包,無需自己編譯。

PHP5的CGI方式的一大優勢是內建了FastCGI的支援,只需指明繫結的地址和埠引數便可以以FastCGI的方式執行,如下:

php-cgi -b 127。0。0。1:9000

如何配置其與nginx一起執行呢?

配置Nginx的PHP FastCGI

請將以下內容儲存為fastcgi_params檔案,保存於/usr/local/nginx/conf下(Ubuntu可保存於/etc/nginx下),他為我們的FastCGI模組設定了基本的環境變數:

#fastcgi_params

fastcgi_param GATEWAY_INTERFACE CGI/1。1;

fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with ——enable-force-cgi-redirect

fastcgi_param REDIRECT_STATUS 200;

請特別注意”fastcgi_script_name”一行,PHP-CGI特別需要此行資訊來確定PHP檔案的位置。

另外需要在PHP-CGI的配置檔案(Ubuntu 上此配置檔案位於/etc/php5/cgi/php。ini)中,開啟cgi。fix_pathinfo選項:

cgi。fix_pathinfo=1;

這樣php-cgi方能正常使用SCRIPT_FILENAME這個變數。

接下來在nginx的配置中針對php檔案配置其利用FastCGI程序來執行:

server {

index index。php;

root /usr/local/nginx/html;

location ~ 。*。php$ {

include /usr/local/nginx/conf/fastcgi_params; #請根據自己儲存的路徑進行設定

fastcgi_index index。php;

fastcgi_pass 127。0。0。1:9000; #請根據自己的FastCGI繫結的地址和埠進行配置

}

}

通知Nginx重新載入配置:

kill -HUP `cat /usr/local/nginx/logs/nginx。pid`

Ubuntu使用者可以使用init指令碼:sudo /etc/init。d/nginx reload

然後啟動php-cgi -b 127。0。0。1:9000

假設你在文件根目錄放了index。php,幷包含”phpinfo();”的內容,現在再看http:// localhost/index。php便應該能看到php的除錯資訊了。

配置php程序

直接使用php-cgi的FastCGI執行方式有兩個問題(貌似應該有解決方案,如果知道的話可以教教我):

1。如果程序崩潰,難以配置重新啟動

2。單程序的效率低

如何設定nginx的php fastcgi程序數 匿名使用者 1級 2015-09-05 回答

NMP環境現在還是比較多人用的,下面介紹一個修改php-cgi程序數的方法: 一、修改php-cgi: vi /usr/local/nginx/conf/nginx。conf 二、其中worker_processes 1;可以修改成2或3個,nginx本身就很強大,不需要像apache那樣,開啟過多的程序來保證其穩定執行。 vi /usr/local/php/etc/php-fpm。conf 三、找到,按你的記憶體容量修改PHP程序的數量,一般128記憶體開啟6個,256記憶體開啟16個。這樣能保證,在PHP大併發的情況下不會502錯誤,注:PHP5。3系列不需要修改。 四、最佳化後,重啟lnmp /root/lnmp restart

Top