fcgi與php的簡單介紹

本文目錄一覽:

PHP-Fcgi下PHP的執行時間設置方法

昨天,一個程序需要導出500條數據,結果發現到150條是,Nginx報出504

Gateway

Timeout錯誤,原來PHP-Fcgi下的設置執行時間與isapi的不同

一般情況下設置PHP腳本執行超時的時間

一、在php.ini裏面設置

max_execution_time

=

1800;

二、通過PHP的ini_set

函數設置

ini_set(“max_execution_time”,

“1800”);

三、通過set_time_limit

函數設置

set_time_limit(1800);

PHP-Fcgi下PHP的執行時間設置方法

昨天,一個程序需要導出500條數據,結果發現到150條是,Nginx報出504

Gateway

Timeout錯誤

經觀察,發現大約30秒時超時,php.ini中執行時間配置已經是300秒:

複製代碼

代碼如下:

max_execution_time

=

300

再查nginx的相關配置,無果。

寫了一個php的測試頁再測

複製代碼

代碼如下:

echo

‘aaa’;

set_time_limit(0);

sleep(40);

echo

‘aa’;

依然超時,可以確定set_time_limit這個函數沒生效。

再查php-fcgi的配置php-fpm.conf,下邊這個設置疑似有問題

複製代碼

代碼如下:

VALUE

name=”request_terminate_timeout”30s/VALUE

查官方文檔:

複製代碼

代碼如下:

request_terminate_timeout

The

timeout

(in

seconds)

for

serving

a

single

request

after

which

the

worker

process

will

be

terminated.

Should

be

used

when

‘max_execution_time’

ini

option

does

not

stop

script

execution

for

some

reason.

Default:

“5s”.

Note:

‘0s’

means

‘off’

大意是php中set_time_limit設置的時間內如果php還沒執行完,則走此處的配置,也就是request_terminate_timeout=30秒。

先把這個參數改的和php中set_time_limit值一樣,都是300秒,還不行,不理解為什麼,如果高手知道請賜教。

最終把request_terminate_timeout關閉,程序可以正常執行了,問題解決

複製代碼

代碼如下:

VALUE

name=”request_terminate_timeout”0s/VALUE

補充:如果前端的nginx服務器使用了upstream負載均衡,那個負載均衡配置中以下幾個參數也需要相應修改

複製代碼

代碼如下:

proxy_connect_timeout

300s;

proxy_send_timeout

300s;

proxy_read_timeout

300s;

使用spawn-fcgi,怎麼增加php的進程數量

spawn-fcgi這個包原來是屬於Lighttpd里的,現在已經可以獨立出來使用。原先我看一些文檔,在VPS上配置nginx時使用spawn-fcgi包作為FastCGI支持模塊(當然還有其他的支持模塊,如php-fpm包),後來因為配置nginx時老出現502錯誤,就暫時使用apache了。把nginx自啟動關閉,把 apache啟動後,打開網頁發現速度比之前快了很多!我開始以為是網絡一時加速而已,後來過了幾天也發現很快。感覺快了最少兩倍以上。(沒有用工具嚴格測試過)後來一想,是apache的運行模式改用了FastCGI模式,速度成倍提高。剛才重新配置測試了一次,果然如此!

方法:系統平台是CentOS 5,前提是LAMP已配置好,運行正常。

1、32位:rpm -ivh entos.alt.ru/repository/centos/5/i386/spawn-fcgi-1.6.3-1.el5.i386.rpm

64位:rpm -ivh htttos.alt.ru/repository/centos/5/x86_64/spawn-fcgi-1.6.3-1.el5.x86_64.rpm

(也可以去官方下載源碼包編譯安裝:h)

2、使用spawn-fcgi來控制php-cgi的FastCGI進程:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u apache -g apache -f /usr/bin/php-cgi

參數含義如下:

-f fcgiapp 指定調用FastCGI的進程的執行程序位置,根據系統上所裝的PHP的情況具體設置。

-a addr 綁定到地址addr。

-p port 綁定到端口port。

-s path 綁定到unix socket的路徑path。

-C childs 指定產生的FastCGI的進程數,默認為5。(僅用於PHP)

-P path 指定產生的進程的PID文件路徑。

-u和-g FastCGI使用什麼身份(-u 用戶 -g 用戶組)運行,CentOS下可以使用apache用戶,其他的根據情況配置,如nobody、www-data等。

4. 將這行代碼加入到/etc/rc.local文件底部,這樣系統啟動的時候就可以同時啟動PHP的FastCGI進程。

php5.4.6 (fpm-fcgi)指的什麼意思?偶是菜鳥~求指點

就個人的使用體驗,如果你迷惑於PHP安裝版本的選擇,可以直接安裝PHP整合安裝包,比如:XAMPP/ WampServer.

以下是相關資料解釋:

PHP-FPM是一個PHP FastCGI管理器,是只用於PHP的,可以在 下載得到。

PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進程管理整合進PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP後才可以使用。

現在我們可以在最新的PHP 5.3.2的源碼樹里下載得到直接整合了PHP-FPM的分支,據說下個版本會融合進PHP的主分支去。相對Spawn-FCGI,PHP-FPM在CPU和內存方面的控制都更勝一籌,而且前者很容易崩潰,必須用crontab進行監控,而PHP-FPM則沒有這種煩惱。

PHP5.3.3已經集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進程管理方式,可以有效控制內存和進程、可以平滑重載PHP配置,比spawn-fcgi具有更多有點,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數即可開啟PHP-FPM。

什麼是CGI,FastCGI,PHP-CGI,PHP-FPM,Spawn-FCGI

您好,很高興為您解答。

CGI(通用網關接口)

CGI全稱是「公共網關接口」(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行「交談」的一種工具,其程序須運行在網絡服務器上。 CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。如php,perl,tcl等。

FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行着,只要激活後,不會每次都要花費時間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。它還支持分佈式的運算, 即 FastCGI 程序可以在網站服務器以外的主機上執行並且接受來自其它網站服務器來的請求。

FastCGI是語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中並因此獲得較高的性能。眾所周知,CGI解釋器的反覆加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中並接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。

PHP-CGI是PHP自帶的FastCGI管理器。

PHP-FPM是一個PHPFastCGI管理器,是只用於PHP的。

spawn-fcgi是一個通用的FastCGI管理服務器

她是lighttpd中的一部份,但目前已經單獨成為一個項目,最新的lighttpd沒有這一塊,但可以在以前版本中找到她,在lighttpd-1.4.15中就有

如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】

希望我的回答對您有所幫助,望採納!

php-fcgi.sock怎麼增加

首先nignx與php-fpm的連接是通過php-fcgi.sock進行的,如果php-fcgi.sock出現問題將出現502BAD GATWAY問題,也就是無法連接通信。

php-fcgi.sock當php啟動時產生,關閉時清除。雖然在php啟動時給php-fcgi.sock 755權限,但是重啟php時還是會變成rw-rw–權限,並且user、group都是root。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/184024.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:51
下一篇 2024-11-25 05:51

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27

發表回復

登錄後才能評論