日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

多版本php共存 linux,linux下多版本php共存的原理、方法

發(fā)布時(shí)間:2024/1/23 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多版本php共存 linux,linux下多版本php共存的原理、方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

服務(wù)器當(dāng)前PHP版本5.4,新項(xiàng)目中使用了Laravel,PHP版本最低要求5.6。希望保持現(xiàn)有應(yīng)用同時(shí)使用PHP5.6.*。也就是說需要兩個(gè)版本的PHP同時(shí)存在,供nginx根據(jù)需要調(diào)用不同版本。

一、原理:

Nginx是通過PHP-FastCGI與PHP交互的。而PHP-FastCGI運(yùn)行后會(huì)通過文件、或本地端口兩種方式進(jìn)行監(jiān)聽,在Nginx中配置相應(yīng)的FastCGI監(jiān)聽端口或文件即實(shí)現(xiàn)Nginx請求對(duì)PHP的解釋。

既然PHP-FastCGI是監(jiān)聽端口和文件的,那就可以讓不同版本的PHP-FastCGI同時(shí)運(yùn)行,監(jiān)聽不同的端口或文件,Nginx中根據(jù)需求配置調(diào)用不同的PHP-FastCGI端口或文件,即可實(shí)現(xiàn)不同版本PHP共存了。

二、方法:

原理很簡單,操作方法其實(shí)也很簡單。

1.php-fpm監(jiān)聽不同端口,如9000(默認(rèn))、9001

2.Nginx配置調(diào)用端口,(9000,9001)

第一步,PHP編譯安裝的話,php-fpm配置文件路徑一般是

/PHP_INSTALLED_PATH/etc/php-fpm.conf

(php剛編譯安裝完時(shí)配置文件名為php-fpm.default.conf,直接改名為php-fpm.conf即可),當(dāng)然這個(gè)路徑是編譯時(shí)配置的,上面這個(gè)路徑算是最佳實(shí)踐吧。

下面這里即是配置監(jiān)聽端口的地方,此處端口9000改為9001,其他配置參考舊版本php-fpm.conf的配置即可。listen = 127.0.0.1:9000#fpm監(jiān)聽端口,即nginx中php處理的地址,一般默認(rèn)值即可。可用格式為: 'ip:port', 'port', '/path/to/unix/socket'. 每個(gè)進(jìn)程池都需要設(shè)置.

注意,如果是要安裝5.2及以前版本需要打php-fpm補(bǔ)丁,下載fpm補(bǔ)丁包并執(zhí)行命令gzip-cdphp-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1

第二步,修改Nginx vhost.conf配置文件,添加如下部分:

1 server {

2 ? ? listen ? ? ? 80;

3 ?? ?server_name ?a.b.com;

4 ?? ?index index.html index.htm index.php;

5 ? ? root /MY_PROJECT_PATH; 6 ?7 ? ? location / {

8 ? ? ? ? ? ?try_files $uri $uri/ /index.php?$query_string;

9 ?? ?}

10 ? ? location ~ .*\.(php|php5)?$ ? ? ? ? {

11 ? ? ? ? #fastcgi_pass ?unix:/tmp/php-cgi.sock;

12 ? ? ? ? fastcgi_pass ?127.0.0.1:9001;

13 ?? ? ? ?fastcgi_index index.php;

14 ?? ? ? ?include fastcgi.conf;

15 ?? ?}16 }

上面9001部分即是將所有.php和.php5文件請求都轉(zhuǎn)發(fā)到9001端口。

第三步、啟動(dòng)新版php-fpm,重啟nginx。

php-fpm支持的操作:start,啟動(dòng)PHP的FastCGI進(jìn)程。

stop,強(qiáng)制終止PHP的FastCGI進(jìn)程。

quit,平滑終止PHP的FastCGI進(jìn)程。

restart, 重啟PHP的FastCGI進(jìn)程。

reload, 重新加載PHP的php.ini。

logrotate, 重新啟用log文件。

常見錯(cuò)誤1:php-fpm start啟動(dòng)后通過瀏覽器訪問項(xiàng)目出現(xiàn)502BAD GATEWAY,查看netstat -ano發(fā)現(xiàn)并沒有監(jiān)聽到9001端口的程序,應(yīng)該是php-fpm啟動(dòng)出錯(cuò)。

查資料發(fā)現(xiàn)可以通過指定配置文件來啟動(dòng)php-fpm,命令如下:#測試php-fpm配置/usr/local/php/sbin/php-fpm -t/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t

#啟動(dòng)php-fpm/usr/local/php/sbin/php-fpm/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

指定配置文件后啟動(dòng)正常,正確監(jiān)聽9001端口

常見錯(cuò)誤2:ERROR: [pool?www]?cannot?get?uid?for?user?'@php_fpm@

ERROR:?FPM?initialization?failed

解決辦法是修改php-fpm.conf中user和group部分為系統(tǒng)用戶的名字,如root或www(應(yīng)用這個(gè),root千萬別用,權(quán)限太大)

通過以上三步便實(shí)現(xiàn)了Linux上多版本PHP共存,不過這個(gè)前提是服務(wù)器上已經(jīng)安裝了兩個(gè)版本的PHP。

原文出處:http://www.cnblogs.com/ningskyer/articles/5639276.html

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的多版本php共存 linux,linux下多版本php共存的原理、方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。