如何實(shí)現(xiàn)CentOS與Apache連接的PHP多版本共存-創(chuàng)新互聯(lián)

這篇文章給大家介紹如何實(shí)現(xiàn)CentOS與Apache連接的PHP多版本共存,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

廣安網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),廣安網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為廣安近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的廣安做網(wǎng)站的公司定做!

CentOS下與Apache連接的PHP多版本共存方案實(shí)現(xiàn),針對(duì)mod_fcgi模塊的配置作了一些說明。

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

apache下有多個(gè)fastCGI的支持方案:至少有mod_fcgi、mod_fastcgi(git)、mod_proxy_fcgi等。這兩個(gè)模塊都有點(diǎn)老,尤其mod_fastcgi自從2007年以來就沒有更新,略掉不談,事實(shí)上沒用過用。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)程在處理完所有請(qǐng)求前退出 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 #php-cgi每個(gè)進(jìn)程的大請(qǐng)求數(shù) FcgidMaxRequestsPerProcess 1000 #php-cgi大的進(jìn)程數(shù) FcgidMaxProcesses 3 #大執(zhí)行時(shí)間 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>

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

使用mod_fcgid的幾個(gè)特點(diǎn)

php-fgi進(jìn)程是由apache模塊啟動(dòng)并管理,不需要配置php-fpm

在php-cig進(jìn)程以apache用戶身份運(yùn)行,php程序?qū)懙奈募?,其?quán)限為apache用戶(而不像php-fpm下寫文件為php-fpm用戶所有,默認(rèn)是nobody),這樣在目錄權(quán)限管理方面一致性高些。

mod_fastcgi

雖然CentOS 6.x下是apache 2.2,但所幸已經(jīng)有人成功移植: /tupian/20230522/mod-proxy-fcgi 我們可以直接使用;更幸運(yùn)的是它已經(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/http://www.bbqmw.net/qm_zyqm/"

語法很簡單,跟配置反向代理類似,可以按實(shí)際需要做修改。事實(shí)上與mod_proxy模塊語法一致的,不同處是將http協(xié)議改成fcig協(xié)議。

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

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

AddHandler php5-script .php

我們要對(duì)不同的站點(diǎn)啟用不同的php,上面一行是對(duì)全局的.php文件分配給php模塊處理,我們把這一行注釋掉。而是在每個(gè)站點(diǎn)啟用不同的php運(yùn)行模式。

關(guān)于如何實(shí)現(xiàn)CentOS與Apache連接的PHP多版本共存就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)頁標(biāo)題:如何實(shí)現(xiàn)CentOS與Apache連接的PHP多版本共存-創(chuàng)新互聯(lián)
分享鏈接:http://bm7419.com/article46/dssohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站策劃、Google、品牌網(wǎng)站設(shè)計(jì)網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名