centos如何安装多个php


本文摘自PHP中文网,作者藏色散人,侵删。

centos安装多个php的方法:首先为yum引入EPEL库和REMI库;然后通过命令“yum-config-manager --enable remi-php71”启用PHP源“remi-php71”;接着安装并配置好“php56”即可。

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版本都太老旧了.

1

2

# 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

1

2

3

# 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

1

2

# 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版本分别对应的配置文件为

1

2

php-fpm (default 7.1) ?C /etc/php-fpm.d/www.conf

php56-php-fpm ?C /opt/remi/php56/root/etc/php-fpm.d/www.conf

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

打开两个配置文件, 更改如下代码

1

2

listen = 127.0.0.1:9000[php-fpm]

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

如果是通过socket通信方式调用php-fpm的情况, 则更改代码如下

1

2

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服务

1

2

3

4

5

6

7

8

9

10

# 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服务器配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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服务器中配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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;

    }

}

添加测试网页文件

1

2

# 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文件中添加

1

2

192.168.56.100   example1.com   example1

192.168.56.100   example2.com   example2

以上就是centos如何安装多个php的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

CentOS怎么修改系统语言

CentOS如何打开端口?

CentOS7系统无法dhcp自动获取ip地址

CentOS httpd启动失败的解决方法

CentOS无法获取ip怎么办

安装CentOS找不到硬盘怎么办

rhel 和 CentOS 区别?

CentOS系统启动tomcat提示权限不够

怎么远程连接CentOS

CentOS系统上不了外网怎么办

更多相关阅读请进入《CentOS》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...