Home  >  Article  >  Operation and Maintenance  >  How to install multiple php on centos

How to install multiple php on centos

藏色散人
藏色散人Original
2020-08-21 09:12:094345browse

How to install multiple php in centos: first introduce the EPEL library and REMI library for yum; then enable the PHP source "remi-php71" through the command "yum-config-manager --enable remi-php71"; then Just install and configure "php56".

How to install multiple php on centos

Install multiple versions of php in centos and use it for nginx at the same time

Install php7 in the newly created virtual machine , after installing it, I found that some older projects could not run. Since the php7 version has been significantly modified compared to the php5 version, many functions were not abandoned, but removed, causing many problems. I had to install another php version. , what I want to install is php5.6, I searched on the Internet for PHP multi-version management in Linux, and recommended phpenv. I tried it all, but with no results, so I had to try another method until I found this article and solved it directly. Below Let me introduce the installation and configuration process.

Recommended: "centos Tutorial"

In this case, you can actually install it directly in a Linux system through yum and other tools For different PHP versions, register the PHP-FPM service separately and configure it in the server.

Experimental environment

CENTOS7

Nginx v1.12.2

PHP7 (set as the system default PHP version) and PHP5.6

Server IP 192.168.56.100

Install PHP7 and PHP5.6

First introduce two libraries for yum : EPEL and REMI, because these two libraries provide us with the latest PHP version source, the PHP version in the yum library that comes with CENTOS is too old.

# 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

Install 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

The first sentence is used to enable the PHP source remi-php71

Install 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

Execute php -v in linux and verify that the current php version should be 7.1

After installation, you need to configure php-fpm and php56-php-fpm. They are the Fastcgi process managers of PHP. In Linux, the web server calls PHP through them.

Okay, let’s start the configuration. .

The configuration files corresponding to the two php versions are

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

(It’s amazing, the directory where the php56 version is installed is in the opt directory)

Open the two configuration files , change the following code

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

If php-fpm is called through socket communication, change the code as follows

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]

Register and enable two versions of php-fpm service

# 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

Use php7 nginx server configuration

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;
    }
}
`

Use php56 nginx server configuration

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;
    }
}

Add test web page file

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

After testing

Visit example1.com/info.php and example2.com/info.php to test.

If you configure it in a local virtual machine, don’t forget to add

192.168.56.100   example1.com   example1
192.168.56.100   example2.com   example2
to the local host file

The above is the detailed content of How to install multiple php on centos. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn