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".
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
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!