您好,登錄后才能下訂單哦!
本人對于fastcgi/cgi的理解:
什么是CGI
CGI全稱是“公共網關接口”(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上。
CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。如php,perl,tcl等.
什么是FastCGI
FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活后,不會每次都要花費時間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。它還支持分布式的運算, 即 FastCGI 程序可以在網站服務器以外的主機上執行并且接受來自其它網站服務器來的請求。
FastCGI是語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中并接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。
FastCGI的工作原理
1、Web Server啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Module)
2、FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程(可見多個php-cgi)并等待來自Web Server的連接。
3、當客戶端請求到達Web Server時,FastCGI進程管理器選擇并連接到一個CGI解釋器。Web server將CGI環境變量和標準輸入發送到FastCGI子進程php-cgi。
4、FastCGI子進程完成處理后將標準輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接著等待并處理來自FastCGI進程管理器(運行在Web Server中)的下一個連接。 在CGI模式中,php-cgi在此便退出了。
在上述情況中,你可以想象CGI通常有多慢。每一個Web請求PHP都必須重新解析php.ini、重新載入全部擴展并重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發生一次。一個額外的好處是,持續數據庫連接(Persistent database connection)可以工作。
注意: 第一部分的第二部分的基礎,所以有什么不懂得請點擊:
Web Service之LAMP- 1 基于模塊化編譯安裝以及 Xcache實現PHP的加速:
http://xiaomazi.blog.51cto.com/5891742/1383122
第二部分: 配置apache-2.4.9與fpm方式的php-5.4.26
一、Apache、MySQL的安裝與前一部分相同;請根據其前面進行安裝;
這里省略了...
請點擊: http://xiaomazi.blog.51cto.com/5891742/1383122
二、編譯安裝php-5.4.26:
1.解決依賴關系:
1).我接上面的環境做的,所以要先刪除:
[root@station76 ~]# rm -rf php-5.4.26 |
2).解壓、編譯、安裝:
[root@www ~]# tar xf php-5.4.26.tar.bz2 [root@www php-5.4.26]# cd php-5.4.26 [root@www php-5.4.26]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 [root@www php-5.4.26]# make && make install 注意:這里面將路徑改為了php5了,因為之前安裝過.在上產環境下直接刪除/卸載就可以.
2.提供配置文件:
[root@www php-5.4.26]# mkdir /etc/php5 [root@www php-5.4.26]# cp php.ini-production /etc/php5/php.ini |
3.配置php-fpm:
1).為php-fpm提供SysV init腳本,并將其添加至服務列表:
2).為php-fpm提供配置文件:
三、配置httpd-2.4.9及Xcache為php加速;
1.提供配置文件:httpd.conf
2.編輯配置文件httpd.conf:
3.配置httpd-vhosts.conf文件,使得虛擬主機生效:
1).配置虛擬主機:
2).創建所需目錄、測試語法、啟動服務、端口:
3).添加本地hosts文件(注意在生產環境下不用添加):
4)本地測試訪問(訪問是不會成功的因為沒有權限的):
5).修改文件并添加相應權限:
6).啟動并訪問:
4.測試修改改后的index.php:
1).修改網頁文件:
2).訪問:http:// www.xiaoma1.com(www.xiaoma2.com)
5.配置轉發功能:
1).重啟服務:
2).查看端口、模塊:
3).測試訪問:http:// www.xiaoma1.com(www.xiaoma2.com)這里就是php解析的了.
6.安裝phpMyAdmin:
1).刪除index.php文件:
2).解壓phpMyAdmin且復制文件至htdocs中(xiaoma2也是同樣的操作):
3).測試訪問: http://www.xiaoma1.com/pma/
4).壓力測試-->ab(壓力測試進行中試網頁還是能快速打開的):
7.安裝xcache位php加速:
1).刪除之前的文件、解壓、phpize(用本地的解釋器探測模塊所依賴的版本號、擴展API等,生成序列號標記,而后才能編譯)、編譯、安裝:
2).創建所需目錄、cpoy配置文件、并且修改配置文件、啟動服務:
3).創建index.php文件且:
4).測試訪問:http://www.xiaoma1.com/ -->http://www.xiaoma1.com/pma/
5).ab測試前:
6).壓力測試:
7).壓力測試后打開的速度很快:
A smile is the most beautiful language!!!
以本人的理解而寫出博客,如若有錯誤,歡迎指出.
---->小馬子
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。