首頁  >  文章  >  運維  >  centos如何安裝多個php

centos如何安裝多個php

藏色散人
藏色散人原創
2020-08-21 09:12:094438瀏覽

centos安裝多個php的方法:先為yum引入EPEL函式庫和REMI函式庫;然後透過指令「yum-config-manager --enable remi-php71」啟用PHP來源「remi-php71」;接著安裝並配置好“php56”即可。

centos如何安裝多個php

centos中安裝多版本php並且同時用於nginx

在新建的虛擬機器中安裝了php7 , 安好了才發現一些老一點的項目跑不了了, 由於php7版本較php5版本有了較大修改, 很多函數已經不是廢棄, 而是移除了, 導致很多問題. 只好再安裝一個php版本了, 我要安裝的是php5.6, 在網上搜了linux中的php多版本管理, 推薦了phpenv, 搞了一通, 沒有結果, 只好換個方法了, 直到我發現了這篇文章, 直接解決. 下面給大家介紹安裝及設定流程.

推薦:《centos教學

這種情況下其實可以透過直接在一個linux系統中透過yum等工具安裝好不同的PHP版本, 分別註冊PHP-FPM服務, 配置到伺服器中即可.

實驗環境

CENTOS7

Nginx v1.12.2

PHP7(設定為系統預設PHP版本)和PHP5.6

伺服器IP 192.168.56.100

安裝PHP7與PHP5.6

首先為yum引進兩個函式庫: EPEL與REMI, 因為這個兩個庫為我們提供最新的PHP版本來源, CENTOS 自帶的yum庫中PHP版本都太老舊了.

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安裝php71

# yum-config-manager --enable remi-php71  [Default]
# yum install php php-common php-fpm
# yum install php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo

第一句用於啟用PHP來源remi-php71

安裝php56

# yum install php56 php56-php-common php56-php-fpm
# yum install php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml php56-php-pecl-apc php56-php-cli php56-php-pear php56-php-pdo

#在linux中執行php -v, 驗證一下, 目前的php版本應該是7.1

#安裝好之後, 下面就要配置php-fpm與php56-php-fpm, 他們是php的Fastcgi進程管理器, linux中web伺服器呼叫php處理就是透過他們.

好了,開始設定吧.

兩個php版本分別對應的設定檔為

php-fpm (default 7.1) – /etc/php-fpm.d/www.conf
php56-php-fpm – /opt/remi/php56/root/etc/php-fpm.d/www.conf

(很神奇, 安裝php56版本的目錄是在opt目錄下)

開啟兩個設定檔, 更改如下程式碼

listen = 127.0.0.1:9000[php-fpm]
listen = 127.0.0.1:9001[php56-php-fpm]

如果是透過socket通訊方式呼叫php-fpm的情況, 則變更程式碼如下

listen = /var/run/php-fpm/php-fpm.sock[php-fpm]
listen = /opt/remi/php56/root/var/run/php-fpm/php-fpm.sock[php56-php-fpm]

分別註冊並啟用兩個版本的php-fpm服務

# systemctl enable nginx 
# systemctl start nginx 
# systemctl enable mariadb 
# systemctl start mariadb 
---------------- PHP 7.1 ---------------- 
# systemctl enable php-fpm 
# systemctl start php-fpm 
---------------- PHP 5.6 ----------------
# systemctl enable php56-fpm 
# systemctl start php56-php-fpm

使用php7的nginx伺服器設定

server {
    listen 80;
    server_name example1.com www.example1.com;
    root   /var/www/html/example1.com/;
    index index.php index.html index.htm;
    #charset koi8-r;
    access_log /var/log/nginx/example1.com/example1_access_log;
    error_log   /var/log/nginx/example1.com/example1_error_log   error;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
    root    /var/www/html/example1.com/;
    fastcgi_pass   127.0.0.1:9000;#set port for php-fpm to listen on
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include         fastcgi_params;
    include /etc/nginx/fastcgi_params;
    }
}
`

使用php56的nginx伺服器中設定

server {
    listen 80;
    server_name example2.com www.example2.com;
    root    /var/www/html/example2.com/;
    index index.php index.html index.htm;
    #charset koi8-r;
    access_log /var/log/nginx/example2.com/example2_access_log;
    error_log  /var/log/nginx/example2.com/example2_error_log   error;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
    root    /var/www/html/example2.com/;
    fastcgi_pass   127.0.0.1:9001;#set port for php56-php-fpm to listen on
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include         fastcgi_params;
    include /etc/nginx/fastcgi_params;
    }
}

新增測試網頁檔案

# echo "<?php phpinfo(); ?>" > /var/www/html/example1.com/info.php
# echo "<?php phpinfo(); ?>" > /var/www/html/example2.com/info.php

#測試

之後訪問example1.com/info.php 與example2.com/info.php測試即可.

#如果你是在本地虛擬機中配置的, 別忘了在本地host檔案中添加

192.168.56.100   example1.com   example1
192.168.56.100   example2.com   example2

以上是centos如何安裝多個php的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn