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

CentOS下與Apache連接的PHP多版本共存方案實現(xiàn)詳解

 更新時間:2015年12月19日 15:31:51   作者:fengyqf  
這篇文章主要介紹了CentOS下與Apache連接的PHP多版本共存方案實現(xiàn),針對mod_fcgi模塊的配置作了一些說明,需要的朋友可以參考下

在apache下整合fastCGI模式運行的php-fpm,似乎網(wǎng)上很少相關(guān)材料,就連英文版材料也少。只要是php-fpm,基本上都是與nginx搭配。查了一大批相關(guān)資料,寫本文總結(jié)一下。

apache下有多個fastCGI的支持方案:至少有mod_fcgi、mod_fastcgi(git)、mod_proxy_fcgi等。這兩個模塊都有點老,尤其mod_fastcgi自從2007年以來就沒有更新,略掉不談,事實上沒用過用。mod_proxy_fcgi模塊是httpd 2.4+的版本正式引入,通過簡潔的一行 ProxyPassMatch 指令即可。

mod_fcgi

mod_fcgi模塊本身是做fastCGI進(jìn)程管理的,使用它就不需要使用php-fpm管理進(jìn)程了。核心配置參數(shù)

LoadModule fcgid_module modules/mod_fcgid.so
<VirtualHost *:80>
  DocumentRoot "/var/www/html/site_1"
  ServerName "www.yourhost.com"
  DirectoryIndex index.html index.php
  #php.ini的存放目錄,Linux下通常不需要
  #FcgidInitialEnv PHPRC "D:/php"
  # 設(shè)置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi進(jìn)程在處理完所有請求前退出
  FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
  #php-cgi每個進(jìn)程的最大請求數(shù)
  FcgidMaxRequestsPerProcess 1000
  #php-cgi最大的進(jìn)程數(shù)
  FcgidMaxProcesses 3
  #最大執(zhí)行時間
  FcgidIOTimeout 600
  FcgidIdleTimeout 600
  #php-cgi的路徑
  FcgidWrapper /usr/local/php7/bin/php-cgi .php
  AddHandler fcgid-script .php
  FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
  <Directory "/var/www/html/site_1">
    Options +ExecCGI
  </Directory>
</VirtualHost>

幾個Fcgid*指令,是優(yōu)化之用,這里僅示例,要按實際情況調(diào)整數(shù)值。具體參看mod_fcgi官方文檔

使用mod_fcgid的幾個特點
php-fgi進(jìn)程是由apache模塊啟動并管理,不需要配置php-fpm
在php-cig進(jìn)程以apache用戶身份運行,php程序?qū)懙奈募?,其?quán)限為apache用戶(而不像php-fpm下寫文件為php-fpm用戶所有,默認(rèn)是nobody),這樣在目錄權(quán)限管理方面一致性高些。
mod_fastcgi

雖然CentOS 6.x下是apache 2.2,但所幸已經(jīng)有人成功移植: https://github.com/ceph/mod-proxy-fcgi 我們可以直接使用;更幸運的是它已經(jīng)進(jìn)入epel源,直接yum安裝即可;不想匹配epel源的,直接下載rpm包安裝也可以(示例 http://mirrors.ustc.edu.cn/epel/6/x86_64/)

當(dāng)然可以重新編譯安裝apache 2.4, 這樣直接有mod_proxy_fcgi可以使用,但這里還是保持原版本不變,省掉編譯的工作量。

參考mod_proxy_fcgi官方文檔,整合php-fpm的配置指令

ProxyPassMatch "^/myapp/.*\.php(/.*)?$" "fcgi://localhost:9000/var/www/"
語法很簡單,跟配置反向代理類似,可以按實際需要做修改。事實上與mod_proxy模塊語法一致的,不同處是將http協(xié)議改成fcig協(xié)議。

以上是apache整合php-fpm模式運行的fastCGI,接下來要對yum安裝的php做下配置修改。

yum安裝的php配置文件 /etc/httpd/conf.d/php.conf ,其中有如下一行

AddHandler php5-script .php

我們要對不同的站點啟用不同的php,上面一行是對全局的.php文件分配給php模塊處理,我們把這一行注釋掉。而是在每個站點啟用不同的php運行模式。

以上即是處理方式。

[已知問題]:裸目錄地址轉(zhuǎn)發(fā)
有一個困擾的問題沒有解決,感覺有點像模塊bug:

對于配置了DirectoryIndex index.php的目錄,如果其子目錄沒有index.php,上述ProxyPassMatch還是會做fastCGI轉(zhuǎn)發(fā),這時會看到php-fpm的404響應(yīng),而不是apache的響應(yīng)403頁面。但前面的規(guī)則并不轉(zhuǎn)發(fā)這裸空目錄的url,所以感覺像bug

再者就是,對于ProxyPassMatch匹配的目錄,apache自動索引功能失效。(當(dāng)然如果不開啟autoindex就無所謂了。生產(chǎn)環(huán)境下通常不開啟的)

其它,似乎也沒有什么嚴(yán)重后果,或者我沒還意識到(?)。

解決方法:每個目錄下,都放置一個index.html,避免fpm-php處理空請求

相關(guān)文章

  • PHP 實現(xiàn)人民幣小寫轉(zhuǎn)換成大寫的方法及大小寫轉(zhuǎn)換函數(shù)

    PHP 實現(xiàn)人民幣小寫轉(zhuǎn)換成大寫的方法及大小寫轉(zhuǎn)換函數(shù)

    這篇文章主要介紹了PHP 實現(xiàn)人民幣小寫轉(zhuǎn)換成大寫的方法,大小寫轉(zhuǎn)換函數(shù)的使用方法介紹,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • Laravel ORM對Model::find方法進(jìn)行緩存示例詳解

    Laravel ORM對Model::find方法進(jìn)行緩存示例詳解

    這篇文章主要給大家介紹了關(guān)于Laravel ORM對Model::find方法進(jìn)行緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • PhpStorm 如何優(yōu)雅的調(diào)試Hyperf的方法步驟

    PhpStorm 如何優(yōu)雅的調(diào)試Hyperf的方法步驟

    這篇文章主要介紹了PhpStorm 如何優(yōu)雅的調(diào)試Hyperf的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 深入理解PHP中的empty和isset函數(shù)

    深入理解PHP中的empty和isset函數(shù)

    下面小編就為大家?guī)硪黄钊肜斫釶HP中的empty和isset函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • PHP判斷當(dāng)前使用的是什么瀏覽器(推薦)

    PHP判斷當(dāng)前使用的是什么瀏覽器(推薦)

    PHP簡單判斷當(dāng)前使用的是什么瀏覽器,判斷瀏覽器類型的方法,方便統(tǒng)計網(wǎng)站訪問用戶使用瀏覽器的比例。這篇文章主要介紹了PHP判斷當(dāng)前使用的是什么瀏覽器(推薦),需要的朋友可以參考下
    2019-10-10
  • 6個超實用的PHP代碼片段

    6個超實用的PHP代碼片段

    這篇文章主要介紹了10個超實用的PHP代碼樣例:黑名單過濾、隨機(jī)顏色生成器、從網(wǎng)上下載文件、強(qiáng)制下載文件、截取圖片、檢查網(wǎng)站是否宕機(jī),需要的朋友可以參考下
    2015-08-08
  • Laravel 添加多語言提示信息的方法

    Laravel 添加多語言提示信息的方法

    今天小編就為大家分享一篇Laravel 添加多語言提示信息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • thinkPHP框架實現(xiàn)生成條形碼的方法示例

    thinkPHP框架實現(xiàn)生成條形碼的方法示例

    這篇文章主要介紹了thinkPHP框架實現(xiàn)生成條形碼的方法,結(jié)合實例形式分析了thinkPHP結(jié)合第三方barcode類文件生成條形碼的相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • phpphp圖片采集后按原路徑保存圖片示例

    phpphp圖片采集后按原路徑保存圖片示例

    這篇文章主要介紹了phpphp圖片采集后按原路徑保存圖片示例,需要的朋友可以參考下
    2014-02-02
  • yii實現(xiàn)CheckBox復(fù)選框在同一行顯示的方法

    yii實現(xiàn)CheckBox復(fù)選框在同一行顯示的方法

    這篇文章主要介紹了yii實現(xiàn)CheckBox復(fù)選框在同一行顯示的方法,對比了網(wǎng)上搜集的方法,給出了改進(jìn)的意見,非常具有實用價值,需要的朋友可以參考下
    2014-12-12

最新評論

巫溪县| 平利县| 清新县| 吴堡县| 中方县| 凤冈县| 镇原县| 依兰县| 青阳县| 赞皇县| 宝丰县| 盐山县| 嘉祥县| 若羌县| 肥东县| 拜城县| 枣庄市| 汶上县| 醴陵市| 中方县| 西林县| 石门县| 甘肃省| 三门县| 永仁县| 木兰县| 策勒县| 安福县| 夹江县| 阜宁县| 梨树县| 隆回县| 东平县| 西青区| 四子王旗| 墨竹工卡县| 宁蒗| 台州市| 巧家县| 乐安县| 册亨县|