中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FastCGI怎么安裝PHP

發布時間:2022-01-21 12:02:17 來源:億速云 閱讀:217 作者:清風 欄目:編程語言

這篇文章主要為大家展示了FastCGI怎么安裝PHP,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“FastCGI怎么安裝PHP”這篇文章吧。

FastCGI安裝PHP的方法:1、下載php和php-fpm包;2、配置安裝環境;3、編譯安裝php和php-fpm;4、通過“/usr/local/php/sbin/php-fpm start”啟動FastCGI進程即可。

FastCGI怎么安裝PHP

本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦

FastCGI怎么安裝PHP?Nginx與PHP(FastCGI)的安裝、配置和優化

什么是FastCGI

FastCGI是一種可伸縮的、高速的在HTTP server和動態腳本語言間通信的接口。FastCGI也被眾多腳本語言支持,包括PHP。

FastCGI是從CGI發展而來的。FastCGI接口方式采用C/S結構,可以將HTTP服務器和腳本解析服務器分離開,同時在腳本解析服務器上啟動一個或多個腳本解析守護進程。

當HTTP服務器每次遇到動態城區時,直接交付給FastCGI進程執行,然后返回結果給瀏覽器,提高了系統的整體性能。


Nginx+FastCGI運行原理

Nginx并不支持對外部程序的直接調用或解析,所有外部程序都要通過FastCGI接口來調用。為了調用CGI程序,還需要一個FastCGI的wrapper,可以理解為用于啟動另一個程序的程序。

這個wrapper綁定在某個固定的socket上,如端口或文件socket。當Nginx將CGI請求發送給socket時,通過FastCGI接口,wrapper接收到請求,派生一個新的線程,此線程調用解釋器或外部程序處理腳本并讀取返回數據,接著wrapper將返回數據通過FastCGI接口傳給Nginx,最后Nginx再返回給客戶端。


spawn-fcgi與PHP-FPM

FastCGI接口在腳本解析服務器上啟動一個或多個守護進程動態解析腳本,這也成為FastCGI進程管理器,spawn-fcgi與PHP-FPM就是兩個進程管理器。

spawn-fcgi:是HTTP服務器lighttpd的一部分,目前已是獨立成為一個項目,一般與lighttpd配合使用來支持PHP。但是spawn-fcgi在高并發的時候會出現內存泄漏甚至自動重啟FastCGI。

PHP-FPM:第三方的FastCGI進程管理器,它是作為PHP的一個補丁來開發的。在安裝過程中也需要和PHP源碼一起編譯,也就是說PHP-FPM被編譯到PHP內核,因此性能方面更加優秀。同時其處理高并發方面能力也好很多。

因為FastCGI的優點是把動態語言和HTTP server分離開,所以Nginx與PHP/PHP-FPM經常被部署到不通的服務器上,以分擔Nginx前端的壓力,使Nginx專注處理靜態請求,PHP/PHP-FPM解析PHP動態請求。


PHP與PHP-FPM安裝與優化

下載安裝包

下載php包:www.php.net,這里使用php-5.2.13.tar.gz

下載php-fpm包:php-fpm.org,這里使用php-5.2.13-fpm-0.5.13.diff.gz

注意:最好php和php-fpm版本一致,否則可能會出現兼容性問題。

配置安裝環境

需要的依賴包包括:

gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel等

根據系統版本的不同,可能依賴的包也不同。

編譯安裝php和php-fpm

解壓縮php的源碼包并將php-fpm當做補丁打入php源碼中。

tar zxf php-5.2.13.tar.gzgzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1

編譯安裝,同時啟動對FastCGI的支持,激活對FastCGI模式的fpm的支持。

cd php-5.2.13./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpmmake && make install
cp php-ini-dist /usr/local/php/lib/php.ini

配置與優化php-fpm

php的主配置文件為php.ini;

php-fpm的主配置文件為php-fpm.conf,位于/usr/local/php/etc/下,是一個xml格式的文件,下面介紹幾個常用的標簽:

<value name="listen_address">127.0.0.1:9000</value>:表示配置FastCGI進程監聽的IP地址和端口,默認為本地的9000;
<value name="display_errors">0</value>:表示是否顯示php錯誤信息,默認為0表示不顯示,設置為1表示顯示錯誤信息;
<value name="user">nobody</value>:表示設置運行FastCGI進程的用戶,需要和nginx配置文件中的用戶一致;
<value name="group">nobody</value>:表示設置運行FastCGI進程的用戶組,需要和nginx配置文件中的用戶組一致;
<value name="max_children">5</value>:設置FastCGI的進程數,官方建議小于2G內存,可以只開啟64個進程;4G以上可以開啟200個進程;
<value name="request_terminate_timeout">0s</value>:設置FastCGI執行腳本的時間,默認0s,意味著無限執行下去;
<value name="rlimit_files">1024</value>:設置php-fpm打開文件描述符的限制,默認1024,這個值最好要和內核打開的文件數一致;
<value name="max_requests">500</value>:設置每一個進程最多處理多少個請求后會被關閉,默認500;
<value name="allowed_clients">127.0.0.1</value>:設置允許訪問FastCGI進程解析器的IP地址,如果不設置IP地址,則無法接受nginx傳來的php解析請求;

管理FastCGI進程

啟動FastCGI進程的方法如下:

/usr/local/php/sbin/php-fpm start

參數的含義如下:

start:啟動php的fastcgi進程;
stop:強制停止php的fastcgi進程;
quit:平滑終止php的fastcgi進程;
restart:重啟php的fastcgi進程;
reload:重新加載php的fastcgi進程,使進程不中斷地加載配置文件;
logrotate:重新啟用log文件;

查看FastCGI進程

FastCGI進程啟動后,可以通過命令“ps”或者“netstat”查看到相關進程信息,默認監聽9000端口;

netstat -antlp | grep 9000ps -ef | grep php-cgi

配置Nginx來支持PHP

Nginx本身不會對PHP進行解析,要想讓Nginx解析PHP請求,需要將PHP頁面的請求交給FastCGI進程監聽的IP地址和端口。Nginx通過反向代理的功能實現對PHP的解析。下面對Nginx解析PHP進行配置實例。

配置實例

      server {
        server_name www.ixdba.net ixdba.net;

        location / {
            index index.html index.php;
            root /web/www/www.ixdba.net;
        }

        location ~ \.php$ {
            root                html;
            fastcgi_pass        127.0.0.1:9000;
            fastcgi_index       index.php;
            fastcgi_param       SCRIPT_FILENAME  html$fastcgi_script_name;
            include             fastcgi_params;
        }
      }

location指令,將以“.php”結尾的文件都交給“127.0.0.1:9000”來處理,這里的IP和端口就是FastCGI進程監聽的IP和端口。

fastcgi_param指令,指定放置php動態程序的主目錄,也就是$fastcgi_script_name前的路徑,這里是/usr/local/nginx/html。

fastcgi_params文件是FastCGI進程的一個參數配置文件,安裝Nginx后默認生成,這里將它包含進來。

啟動nginx

/usr/local/nginx/sbin/nginx

測試Nginx對PHP的解析功能

在/usr/local/nginx/html,也就是上面的php動態程序主目錄下,創建一個phpinfo.php文件,內容如下:

<?php phpinfo(); ?>

然后通過瀏覽器訪問http://www.ixdba.net/index.html,將會顯示Nginx歡迎頁;
瀏覽器訪問http://www.ixdba.net/phpinfo.php,會出現php安裝及功能列表信息;


優化Nginx中FastCGI

添加一些優化指令可以讓php環境高效穩定的運行,下面給出一些實例,添加到nginx配置文件的http層級:

為fastcgi緩存指定文件路徑,目錄結構等級、關鍵字區域存儲時間和非活動刪除時間;

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=Test:10m inactive=5m;

連接到后端fastcgi的超時時間;

fastcgi_connect_timeout 300;

向fastcgi傳送請求的超時時間,是已經完成兩次握手后向fastcgi傳送請求的超時時間;

fastcgi_send_timeout 300;

接收fastcgi應答的超時時間,是已經完成兩次握手后接收fastcgi應答的超時時間;

fastcgi_read_timeout 300;

讀取fastcgi應答第一部分需要緩沖區的大小;

fastcgi_buffer_size 64k;

本地需要多少和多大的緩沖區來緩沖fastcgi的應答請求;

fastcgi_buffers 4 64k;

默認值為fastcgi_buffers的兩倍;

fastcgi_busy_buffers_size 128k;

寫入緩存文件時使用多大的數據塊,默認為fastcgi_buffers的兩倍;

fastcgi_temp_file_write_size 128k;

開啟fastcgi緩存并為其指定一個名稱,可以有效降低cpu負載,防止502錯誤。

fastcgi_cache TEST;

fastcgi_cache_valid指定應答代碼的緩存時間。
將200, 302的應答時間緩存1小時;

fastcgi_cache_valid 200 302 1h;

將301應答緩存一天;

fastcgi_cache_valid 301 1d;

其余應答緩存1分鐘;

fastcgi_cache_valid any 1m;

PHP開發環境搭建工具有哪些

一、phpStudy,是一個新手入門最常用的開發環境。二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡單對小白比較友好。三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建站集成軟件包;四、MAMP,MAMP分為兩種MAMP和MAMP Pro for Mac。五、寶塔面板,寶塔面板是一款服務器管理軟件,支持windows和linux系統。六、UPUPW,UPUPW是目前Windows平臺下最具特色的Web服務器PHP套件。

以上就是關于“FastCGI怎么安裝PHP”的內容,如果該文章對您有所幫助并覺得寫得不錯,勞請分享給您的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中方县| 彩票| 吉林省| 攀枝花市| 海口市| 西峡县| 岳阳市| 合肥市| 宜兴市| 达孜县| 金寨县| 特克斯县| 凤庆县| 安远县| 兴海县| 汝南县| 丁青县| 崇义县| 汨罗市| 大埔县| 山丹县| 通道| 杭州市| 永泰县| 北碚区| 鹤峰县| 佛冈县| 沅江市| 长沙县| 敖汉旗| 宁陕县| 册亨县| 清流县| 股票| 太湖县| 乌鲁木齐县| 盐津县| 淄博市| 建昌县| 太康县| 通海县|