最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本實現(xiàn)啟動PHP內(nèi)置FastCGI Server

 更新時間:2015年04月03日 09:56:49   投稿:junjie  
這篇文章主要介紹了Shell腳本實現(xiàn)啟動PHP內(nèi)置FastCGI Server,本文講解了一些需求過程,并給出了實現(xiàn)需求的shell腳本,需要的朋友可以參考下

前幾天把工作平臺從 Ubuntu 9.10 Karmic 更新到了 10.04 Lucid,由于 Lucid 官方源自帶了 PHP5.3.2,以前使用的 dotdeb 的源就沒法用了,一直很喜歡這個源的,不但提供了 PHP5.3 而且還有 php5-fpm 這個很實用的 fcgi 進程管理器,這個在官方源里面是沒有的。強行上了 dotdeb 雖然也可以,不過必然有很多包會出現(xiàn)依賴問題,處理這些依賴關(guān)系是件很煩心的事情。哥啥都不怕,就怕麻煩~ :!:

對于 PHP 來說,php-fpm 還是最合適的,spawn-fcgi 這類東西就不用考慮了,我寧愿用 PHP5 內(nèi)置的 FastCGI Server。

通過下面的命令啟動服務(wù)器,監(jiān)聽 9000 端口:

復(fù)制代碼 代碼如下:

php-cgi -q -b 127.0.0.1:9000 &

好了,配合 nginx,可以繼續(xù)開始工作了,但是你會發(fā)現(xiàn)每隔一段時間就會出現(xiàn) 502 Bad Gateway 錯誤,因為 php-cgi 進程處理的請求數(shù)達到最大(默認500)自動退出了。

你需要設(shè)置兩個環(huán)境變量:

PHP_FCGI_CHILDREN – 派生子進程的數(shù)量
PHP_FCGI_MAX_REQUESTS – 每個子進程所能處理的最大請求數(shù)

配合這兩個環(huán)境變量,啟動內(nèi)置的 FastCGI Server,保證 PHP 能夠派生出子進程來負責(zé)處理請求,而不是由主進程來做。否則就會出現(xiàn)上面說的情況,達到 500 以后,自動退出。

下面是一個簡單的腳本:

復(fù)制代碼 代碼如下:

#!/bin/bash
 
## 參考:
##
##   http://php.net/manual/en/install.unix.lighttpd-14.php
##   http://kovyrin.net/2006/05/30/nginx-php-fastcgi-howto
##
 
## php-cgi 的文件路徑
PHPFCGI=`which php-cgi`
 
## PID 文件路徑
PHP_PID="/tmp/php.pid"
 
## 綁定 TCP 地址
FCGI_BIND_ADDRESS="127.0.0.1:9000"
 
## 綁定到 Unix domain socket
#FCGI_BIND_ADDRESS="/tmp/php.sock"
 
## 派生出多少個 PHP 子進程
## 其中不包括主進程
PHP_FCGI_CHILDREN=16
 
## 每個 PHP 進程處理的最大請求數(shù)
PHP_FCGI_MAX_REQUESTS=4096
 
## 用戶
USERID=verdana
 
################## no config below this line
 
# 根據(jù)用戶不同,切換啟動命令
if test x$UID = x0; then
  CMD="/bin/su -m -c \"$PHPFCGI -q -b $FCGI_BIND_ADDRESS\" $USERID"
else
  CMD="$PHPFCGI -b $FCGI_BIND_ADDRESS"
fi
 
echo $CMD
 
# 相關(guān)的環(huán)境變量
E="PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS"
 
# 忽略其他的環(huán)境變量,以一個干凈的環(huán)境啟動
nohup env - $E sh -c "$CMD" &> /dev/null &
 
# 記錄 PHP 主進程的 PID
# $! 返回的是 sh 的 PID
# 找到所有 php-cgi 進程中最小的 PID,就是主進程的 PID
MASTER_PID=`ps -e | grep 'php-cgi' | sed -n '1p' | awk '{print $1}'`
echo $MASTER_PID > "$PHP_PID"

如何關(guān)閉呢?
可以一次性殺滅所有的 php-cgi 進程:

復(fù)制代碼 代碼如下:

ps -e | grep php-cgi | awk '{print $1}' | xargs kill

只弄死主進程也可以達到相同的效果,所有子進程也會隨之消失:
復(fù)制代碼 代碼如下:

cat /tmp/php.pid | xargs kill

相關(guān)文章

  • Linux下使用tcpdump抓包的實現(xiàn)方法

    Linux下使用tcpdump抓包的實現(xiàn)方法

    tcpdump是Linux下面的一個開源的抓包工具,和Windows下面的wireshark抓包工具一樣, 支持抓取指定網(wǎng)口、指定目的地址、指定源地址、指定端口、指定協(xié)議的數(shù)據(jù)。這篇文章主要介紹了Linux下使用tcpdump抓包的實現(xiàn)方法,需要的朋友可以參考下
    2015-10-10
  • Linux查看端口占用的幾種常用命令

    Linux查看端口占用的幾種常用命令

    這篇文章主要介紹了Linux查端口占用的幾個常用命令,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-09-09
  • Linux 進程替換(exec函數(shù))實現(xiàn)代碼

    Linux 進程替換(exec函數(shù))實現(xiàn)代碼

    這篇文章主要介紹了Linux 進程替換(exec函數(shù))實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • rm -rf之后磁盤空間沒有釋放的解決方法

    rm -rf之后磁盤空間沒有釋放的解決方法

    本文主要介紹了rm -rf之后磁盤空間沒有釋放的解決方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Linux nohup 命令用法詳解

    Linux nohup 命令用法詳解

    nohup命令是Linux/Unix系統(tǒng)中非常有用的命令之一,它允許您在后臺運行命令或腳本,并且在退出終端會話后仍然保持運行,這篇文章主要介紹了Linux nohup 命令詳解,需要的朋友可以參考下
    2023-08-08
  • 程序中獲取linux系統(tǒng)啟動時間方法

    程序中獲取linux系統(tǒng)啟動時間方法

    需要在應(yīng)用程序獲取系統(tǒng)的啟動時間,通過sysinfo中的uptime可以計算出系統(tǒng)的啟動時間,下面介紹一下獲取方法,大家參考使用吧
    2014-01-01
  • shell結(jié)構(gòu)化命令if-then-else語句

    shell結(jié)構(gòu)化命令if-then-else語句

    在Shell腳本編程中,if-then-else語句提供了基于條件執(zhí)行不同命令的能力,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Shell腳本實現(xiàn)的猜數(shù)字小游戲

    Shell腳本實現(xiàn)的猜數(shù)字小游戲

    這篇文章主要介紹了Shell腳本實現(xiàn)的猜數(shù)字小游戲,本文的猜數(shù)字規(guī)則相對一般規(guī)則的猜數(shù)字可能難度要大不少,需要的朋友可以參考下
    2014-12-12
  • linux 中l(wèi)s命令詳解

    linux 中l(wèi)s命令詳解

    ls命令是linux下最常用的命令。ls命令就是list的縮寫。下面通過本文給大家分享linux 中l(wèi)s命令詳解,感興趣的朋友一起看看吧
    2017-09-09
  • shell中if條件判斷的實現(xiàn)

    shell中if條件判斷的實現(xiàn)

    本文主要介紹了shell中if條件判斷的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論

鹤庆县| 渭源县| 定陶县| 肥西县| 张家界市| 马山县| 吉林省| 宁南县| 天津市| 广州市| 婺源县| 富源县| 贵州省| 舞钢市| 威宁| 沁阳市| 嘉善县| 佛坪县| 卓尼县| 阳高县| 阳城县| 宁武县| 华安县| 广州市| 隆尧县| 库伦旗| 英德市| 修水县| 大宁县| 巴东县| 阿巴嘎旗| 旺苍县| 杭州市| 肇东市| 邢台县| 通城县| 法库县| 都兰县| 饶河县| 鹤庆县| 松桃|