FastCGI作為一種Web服務(wù)器與PHP解釋器通信的協(xié)議,是PHP默認(rèn)的一種工作模式。相較于其他模式,F(xiàn)astCGI擁有更高的性能和更穩(wěn)定的運(yùn)行狀態(tài),因此被廣泛應(yīng)用于Web服務(wù)器和PHP解釋器之間的通信。
相較于CGI模式,F(xiàn)astCGI模式可以極大地提升服務(wù)器的運(yùn)行效率和穩(wěn)定性。一個快速的例子就是,一個WordPress網(wǎng)站被訪問時,如果使用CGI模式,每次WordPress需要重新解釋和執(zhí)行PHP腳本,這樣會消耗更多的時間和系統(tǒng)資源。而使用FastCGI模式,WordPress只需要從PHP解釋器池中選擇一個空閑的解釋器來處理請求即可,這將會極大地減輕服務(wù)器的處理壓力。
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/local/php/bin/php-cgi
FastCgiExternalServer /usr/local/php/bin/php-cgi -host 127.0.0.1:9000 -pass-header Authorization
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
</IfModule>
</VirtualHost>
在Apache服務(wù)器中,可以通過mod_fastcgi模塊來支持FastCGI模式,為您的網(wǎng)站提供更快速和更穩(wěn)定的服務(wù)。在上文中,我們?yōu)橹鳈C(jī)www.example.com配置了一個FastCGI服務(wù)器,使用的PHP版本為/usr/local/php/bin/php-cgi,可以在CGI-FastCGI界面中找到。注意,我們通過FastCgiExternalServer指令來指定一個FastCGI服務(wù)器,并且通過Alias指令來把php5-fcgi映射到指定路徑,這樣我們就可以使用PHP解釋器了。
FastCGI默認(rèn)與PHP解釋器一起工作。您不需要按以下方式來安裝FastCGI,因為它已經(jīng)默認(rèn)集成到PHP解釋器中:
sudo apt-get install libapache2-mod-fastcgi
在Windows服務(wù)器中,必須安裝PHP的非線程安全(NTS)版本才能使用FastCGI模式。此外,在php.ini文件中,必須啟用以下擴(kuò)展名:
extension=php_cgi.dll
cgi.force_redirect=0
簡而言之,F(xiàn)astCGI是一種高效和穩(wěn)定的協(xié)議,可用于Web服務(wù)器和PHP解釋器之間的通信。它很容易配置和使用,同時也提供了更好的性能和可靠性。FastCGI被廣泛地應(yīng)用于網(wǎng)站和Web應(yīng)用程序,并且默認(rèn)集成在PHP解釋器中,您可以不經(jīng)過繁瑣的設(shè)置即可高效地使用。