php多版本並存,linux安裝多版本php

本文目錄一覽:

請教centos php 多版本安裝共存切換

Linux下部署php多版本共存

背景說明

自php7問世,身為最新版本控的我馬上升級體驗,但是由於服務器上還有舊程序在運行,只好部署一個php多版本共存環境。

現有環境是lnmp

– CentOS 6.7

– nginx 1.10.1

– mariadb-10.0.26

– php 7.0.8

為了更好兼容舊的php程序,推薦使用5.4.45. 主要是兼容mysql擴展。

開始安裝

首先要下載php-5.4.45.tar.gz源碼包。

通過源碼安裝

# tar xzvf php-5.4.45.tar.gz

# cd php-5.4.45

# ./configure –prefix=/usr/local/php54 –with-config-file-path=/usr/local/php54/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-iconv-dir –with-freetype-dir=/usr/local/freetype –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –with-gettext –disable-fileinfo –enable-intl –with-xsl

# make ZEND_EXTRA_LIBS=’-liconv’

# make install

# cp php.ini-production /usr/local/php/etc/php.ini

————————————————————————————————

php.ini 配置

post_max_size = 50M

upload_max_filesize = 50M

date.timezone = PRC

short_open_tag = On

cgi.fix_pathinfo=0

max_execution_time = 300

disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

————————————————————————————————

php-fpm.conf 配置

——————————

# vim /usr/local/php/etc/php-fpm.conf1

[global]

pid = /usr/local/php54/var/run/php-fpm.pid

error_log = /usr/local/php54/var/log/php-fpm.log

log_level = notice

[www]

listen = /tmp/php54-cgi.sock

listen.backlog = -1

listen.allowed_clients = 127.0.0.1:9001

listen.owner = www

listen.group = www

listen.mode = 0666

user = www

group = www

pm = dynamic

pm.max_children = 40

pm.start_servers = 20

pm.min_spare_servers = 20

pm.max_spare_servers = 40

request_terminate_timeout = 100

request_slowlog_timeout = 0

slowlog = var/log/slow.log

———————————————————————————-

啟動 php-fpm

# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm

# chmod +x /etc/init.d/php54-fpm

# /etc/init.d/php54-fpm start

——————————————————————————————-

修改nginx配置,對需要的服務配置使用php-5.4.45

location ~ [^/]\.php(/|$)

{

try_files $uri =404;

fastcgi_pass unix:/tmp/php54-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

}

—————————————————————————————-

配置php-5.4.45 的php54-fpm 開機自動啟動

# chkconfig –add php54-fpm

# chkconfig php54-fpm on

一個系統可以兩個版本的php並存嗎

可以的,但是具體看你用什麼軟件來支持他運行。

希望我的回答可以幫到你,有什麼不懂可以追問。

如何實現php7和php5多版本共存

多版本共存且同時運行,你可以用PHPWAMP8.8.8.8IN版本集成環境

PHPWAMP支持iis、apache、nginx等web服務器,系統環境受損也能正常運行!

並全部支持php多版本同時運行,無限自定義mysql、php版本,同時運行N個php版本都沒問題。

——-以下內容摘自今日頭條程序員IT快報新聞————–

PHPWAMP無視VC運行庫,無視系統DLL是否完整是否受損,無視系統原因造成的各種PHP環境運行障礙,在電腦系統缺失必備組件或DLL受損的情況下依然能正常運行,不用安裝vc,不用在乎系統dll是否完整

升級的“強制清除環境阻礙”功能是歷史版本中最簡單粗暴的,一鍵轟掉系統佔用80端口以及系統引起的各種異常

三大主流Web服務器分別帶有功能強大的站點管理

iis站點一鍵配置,支持無限個PHP版本同時運行,無限自定義mysqlphp版本,無視VC等系統Dll依賴。

Nginx站點一鍵配置,支持無限個PHP版本同時運行,無限自定義mysqlphp版本,無視VC等系統Dll依賴。

Apache站點一鍵配置,支持無限個PHP版本同時運行,無限自定義mysqlphp版本,無視VC等系統Dll依賴。

如何 實現多個PHP版本 共存 和 切換

你可以使用PHPWAMP8.1.8.8集成環境,集成6個默認版本,可以多個php版本同時運行

支持自定義,官方提供700個php版本隨你切換,一鍵切換很方便,多個php版本可以共存,能同時運行多個不同PHP版本,而且還能實現apache、iis等服務器共存去除非80端口

如何讓多個PHP版本在同一個Apache服務下並存

很簡單,安裝護衛神.apache大師就可以了,默認支持好像是7個版本的PHP,每個站可以使用不同版本的PHP。

Linux系統中設置多版本PHP共存配合Nginx服務器使用

應用環境

LNMP的環境,當前PHP版本5.3.8,遇到一個應用需求只支持PHP

5.2.x,又希望保持現有應用還是用PHP

5.3.8。也就是說需要兩個版本的PHP同時存在,供nginx根據需要調用不同版本。

思路

Nginx是通過PHP-FastCGI與PHP交互的。而PHP-FastCGI運行後會通過文件、或本地端口兩種方式進行監聽,在Nginx中配置相應的FastCGI監聽端口或文件即實現Nginx請求對PHP的解釋。

既然PHP-FastCGI是監聽端口和文件的,那就可以讓不同版本的PHP-FastCGI同時運行,監聽不同的端口或文件,Nginx中根據需求配置調用不同的PHP-FastCGI端口或文件,即可實現不同版本PHP共存了。

配置記錄

下面記錄簡單的配置流程,基於已經安裝了lnmp的debian環境。當前版本的PHP是5.3.8,位於/usr/local/php。

1.下載PHP-5.2.14及相關的FPM、autoconf組件:

mkdir

~/php5.2

cd

~/php5.2

wget

-c

wget

-c

2.解壓PHP-5.2.14,並打上PHP-FPM的補丁:

tar

zxvf

php-5.2.14.tar.gz

gzip

-cd

php-5.2.14-fpm-0.5.14.diff.gz

|

patch

-d

php-5.2.14

-p1

3.如果你已經通過lnmp安裝,應該已經安裝好了autoconf,如果沒有,請自行下載並編譯autoconf-2.13,然後設置autoconf環境變量:

export

PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬

export

PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader

3.編譯安裝PHP-5.2.14在新的路徑(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路徑,並且打開fastcgi和fpm選項:

cd

php-5.2.14/

./buildconf

–force

./configure

–prefix=/usr/local/php-5.2.14

–with-config-file-path=/usr/local/php-5.2.14/etc

–with-mysql=/usr/local/mysql

–with-mysqli=/usr/local/mysql/bin/mysql_config

–enable-fastcgi

–enable-fpm

make

ZEND_EXTRA_LIBS=’-liconv’

make

install

4.設置/usr/local/php-5.2.14/etc/php-fpm.conf,監聽端口:

value

name=”listen_address”127.0.0.1:9001/value

或者監聽文件:

value

name=”listen_address”/path/to/unix/socket/value

其他參數根據服務器環境和需求自行定製。

5.啟動php-fpm,以後可以通過php-fpm進行管理:

/usr/local/php-5.2.14/sbin/php-fpm

start

字php5.3.3後,php已經將php-fpm繼承到php中,而且內置的php-fpm默認不支持(start|stop|reload)的平滑啟動參數,需要使用官方源代碼中提供的啟動腳本來控制:

cp

-f

(php

-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm

/etc/init.d/php-fpm

chmod

755

/etc/init.d/php-fpm

/etc/init.d/php-fpm

start

php-fpm支持的操作:

start,啟動PHP的FastCGI進程。

stop,強制終止PHP的FastCGI進程。

quit,平滑終止PHP的FastCGI進程。

restart,

重啟PHP的FastCGI進程。

reload,

重新加載PHP的php.ini。

logrotate,

重新啟用log文件。

5.3.3的php-fpm腳本支持的操作:start|stop|force-quit|restart|reload|status

6.配置好PHP-5.2.14的php.ini,重新加載生效:

vi

/usr/local/php-5.2.14/etc/php.ini

/usr/local/php-5.2.14/sbin/php-fpm

reload

7.修改nginx配置,對需要的服務配置使用PHP-5.2.14:

location

~

.*.(php|php5)?$

{

fastcgi_pass

127.0.0.1:9001;

fastcgi_index

index.php;

include

fcgi.conf;

}

8.記錄一下自己編譯php5.5.10使用的配置

./configure

–prefix=/usr/local/php-5.5.10

–with-config-file-path=/usr/local/php-5.5.10/etc

–with-mysql=mysqlnd

–with-mysqli=mysqlnd

–with-bz2

–with-curl=/usr/bin

–enable-ftp

–enable-sockets

–disable-ipv6

–with-gd

–with-jpeg-dir=/usr/local

–with-png-dir=/usr/local

–with-freetype-dir=/usr/local

–enable-gd-native-ttf

–with-iconv-dir=/usr/local

–enable-mbstring

–enable-calendar

–with-gettext

–with-libxml-dir=/usr/local

–with-zlib

–with-pdo-mysql=mysqlnd

–enable-dom

–enable-xml

–enable-fpm

–with-libdir=lib64

–with-mcrypt=/usr/bin

–enable-zip

–enable-soap

–enable-mbstring

–with-gd

–with-openssl

–enable-pcntl

–with-xmlrpc

–enable-opcache

原創文章,作者:SMVG,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/141788.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SMVG的頭像SMVG
上一篇 2024-10-08 18:05
下一篇 2024-10-09 09:52

相關推薦

  • PHP和Python哪個好找工作?

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

    編程 2025-04-29
  • Git secbit:一種新型的安全Git版本

    Git secbit是一種新型的安全Git版本,它在保持Git原有功能的同時,針對Git存在的安全漏洞做出了很大的改進。下面我們將從多個方面對Git secbit做詳細地闡述。 一…

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

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

    編程 2025-04-29
  • 如何將Java項目分成Modules並使用Git進行版本控制

    本文將向您展示如何將Java項目分成模塊,並使用Git對它們進行版本控制。分割Java項目可以使其更容易維護和拓展。Git版本控制還可以讓您跟蹤項目的發展並協作開發。 一、為什麼要…

    編程 2025-04-28
  • Python的版本演變

    Python是一門非常流行的編程語言,它有着簡潔、易讀、易寫的特點。自1991年由Guido van Rossum發明以來,Python已經發展成為一個成熟的編程語言,擁有多個版本…

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

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

    編程 2025-04-28
  • librosa版本用法介紹

    librosa是一個用於音頻信號處理的python庫,具有多種處理音頻的功能。在librosa庫中,版本號非常重要,在不同的版本中可能會存在一些差異。本文將圍繞librosa的版本…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Java多版本支持實現方式

    本文將從以下幾個方面闡述如何實現Java多版本支持,並給出可行的代碼示例。 一、多版本Java環境概述 Java是一門跨平台的編程語言,但是在不同的應用場景下,可能需要使用不同版本…

    編程 2025-04-27
  • Taro3.5.11版本微信小程序端v-html依然無法解析video為中心的問題解決方案

    該問題的解決是通過使用 Taro3.5.11 版本自定義組件進行處理,具體解決方案如下: 一、自定義組件 首先,我們需要創建一個自定義組件 VideoComponent,該組件的主…

    編程 2025-04-27

發表回復

登錄後才能評論