Centos Nginx 多php版本

记录一次安装的过程
系统:centos
php版本:5.4 5.6
目的:安装两个php版本

1:首先通过lnmp安装了第一个版本的php5.4具体命令lnum的官网上有具体操作
2:修改php-fpm的配置
先停止在运行中的php-fpm,先查看php-fpm的pid

[root@ etc]# ps aux | grep  php-fpm
root     25903  0.0  0.2 266664  5508 ?        Ss   11:35   0:00 php-fpm: master process (/usr/local/etc/php-fpm-5.4.conf)
www      25904  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25905  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25906  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25907  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25908  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25909  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25910  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25911  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25912  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
www      25913  0.0  0.2 266664  4848 ?        S    11:35   0:00 php-fpm: pool www
root     25915  0.0  0.0 112648   972 pts/0    R+   11:35   0:00 grep --color=auto php-fpm

查看命令:ps aux | grep php-fpm 输出结果可以知道,当前的php-fpm运行的pid为25903,然后通过结束命令,把当前的进程先关闭。
结束命令kill -INT 25903
运行后,再次查看进程

[root@iZwz99zpj9k5noj0vtkozjZ etc]# ps aux | grep  php-fpm
root     26059  0.0  0.0 112648   972 pts/0    R+   13:54   0:00 grep --color=auto php-fpm

php-fpm确实被关闭了。然后我们找到php-fpm的配置文件位置,开始配置1下php-fpm。配置后的结果如下

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log //修改的地方
log_level = notice

[www]
listen = 9001 //修改的地方
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/php_5.4_slow.log //修改的地方

修改完之后,就要重新启动fpm了,但是我为了可以区分两个版本的php-fpm.conf我就把上面的这个配置文件改了下名字,并且移动到了/usr/local/etc下面,方便管理。如果是通过lnmp来安装php,那么lnmp有可能已经帮你把php-fpm安装成了服务,这样一来你只需要修改服务的配置文件,就可以使php-fpm默认读取新的配置文件了,服务的文件位置为
/etc/rc.d/init.d/php-fpm

prefix=/usr/local/php
exec_prefix=${prefix}
conf=/usr/local/etc //新增

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${conf}/php-fpm-5.4.conf //修改
php_fpm_PID=${prefix}/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"

修改好之后,为了区分两个php版本,我又把这个文件的名字改了一下,改为php-fpm-5.4,好了,现在我们启动新的php-fpm,使用命令service php-fpm-5.4 start

[root@iZwz99zpj9k5noj0vtkozjZ init.d]# service php-fpm-5.4 start
Starting php-fpm  done
[root@iZwz99zpj9k5noj0vtkozjZ init.d]# ps aux | grep  php-fpm
root     26114  0.0  0.2 163072  5508 ?        Ss   14:06   0:00 php-fpm: master process (/usr/local/etc/php-fpm-5.4.conf)
www      26115  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26116  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26117  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26118  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26119  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26120  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26121  0.0  0.2 163072  4848 ?        S    14:06   0:00 php-fpm: pool www
www      26122  0.0  0.2 163072  4852 ?        S    14:06   0:00 php-fpm: pool www
www      26123  0.0  0.2 163072  4852 ?        S    14:06   0:00 php-fpm: pool www
www      26124  0.0  0.2 163072  4852 ?        S    14:06   0:00 php-fpm: pool www
root     26128  0.0  0.0 112648   972 pts/0    R+   14:07   0:00 grep --color=auto php-fpm

启动后查看了下进程,看来启动已经成功了,但是这个时候我们访问php文件会发现,报502的错误,这是因为我们把fpm的端口从默认的9000改成了9001,但是nginx读取的还是9000,这个情况当然会出现502的情况,那我们现在去修改下nginx的配置,改成9001看看到底能不能成功访问。

server {
        listen  8080;
        server_name localhost;
        charset utf-8;
            root /data/wwwroot/lol;


        location / {
                index  index.shtml index.php index.html index.htm ;
                if (!-e $request_filename) {
                        rewrite  ^(.*)$  /index.php?s=$1  last;
                        break;
                }
        }

        location ~ .+\.php($|/) {
                fastcgi_pass   127.0.0.1:9001;//修改成9001
                fastcgi_connect_timeout      180;
                fastcgi_read_timeout            600;
                fastcgi_send_timeout            600;
                fastcgi_index  index.php;
                include        fastcgi_params;

                set $path_info "";
                set $real_script_name $fastcgi_script_name;
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                        set $real_script_name $1;
                        set $path_info $2;
                }
                fastcgi_param  SCRIPT_FILENAME  $document_root$real_script_name;
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;

        }

        error_log  /data/wwwlogs/lol_error.log;
        access_log  /home/wwwlogs/lol_access.log;
}

如果配置都没问题,那么就可以看到phpinfo的信息了


3:安装另外1个版本的php,这里我要安装的是php5.6版本的,就直接从官网下载代码进行安装了,具体安装的
4:安装好之后,我们就需要再创建1个服务用来配置5.6版本的php-fpm了,复制1份5.4的服务,重命名为php-fpm-5.6命令为:cp /etc/rc.d/init.d/php-fpm-5.4 /etc/rc.d/init.d/php-fpm-5.6,然后修改里面的文件配置

prefix=/usr/local/php5.6
exec_prefix=${prefix}
conf=/usr/local/etc

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${conf}/php-fpm-5.6.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid

然后再复制一份fpm的配置文件命令为

[root@iZwz99zpj9k5noj0vtkozjZ init.d]# cd /usr/local/etc
[root@iZwz99zpj9k5noj0vtkozjZ etc]# ls
php-fpm-5.4.conf  php-fpm-5.4.conf.bak
[root@iZwz99zpj9k5noj0vtkozjZ etc]# cp php-fpm-5.4.conf php-fpm-5.6.conf
[root@iZwz99zpj9k5noj0vtkozjZ etc]# ls
php-fpm-5.4.conf  php-fpm-5.4.conf.bak  php-fpm-5.6.conf
[root@iZwz99zpj9k5noj0vtkozjZ etc]# 

修改配置


[global]
pid = /usr/local/php5.6/var/run/php-fpm.pid
error_log = /usr/local/php5.6/var/log/php-fpm.log
log_level = notice

[www]
listen = 9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0 
slowlog = var/log/php_5.6_slow.log

启动服务器

[root@iZwz99zpj9k5noj0vtkozjZ etc]# service php-fpm-5.6 start
Starting php-fpm  done
[root@iZwz99zpj9k5noj0vtkozjZ etc]# ps aux|grep php
root     26329  0.0  0.2 163072  5500 ?        Ss   14:37   0:00 php-fpm: master process (/usr/local/etc/php-fpm-5.4.conf)
www      26330  0.0  0.3 163072  7088 ?        S    14:37   0:00 php-fpm: pool www
www      26331  0.0  0.3 163072  5928 ?        S    14:37   0:00 php-fpm: pool www
www      26332  0.0  0.3 163072  5928 ?        S    14:37   0:00 php-fpm: pool www
www      26333  0.0  0.3 163072  7088 ?        S    14:37   0:00 php-fpm: pool www
www      26334  0.0  0.3 163072  5928 ?        S    14:37   0:00 php-fpm: pool www
www      26335  0.0  0.2 163072  4844 ?        S    14:37   0:00 php-fpm: pool www
www      26336  0.0  0.2 163072  5064 ?        S    14:37   0:00 php-fpm: pool www
www      26337  0.0  0.3 163072  5916 ?        S    14:37   0:00 php-fpm: pool www
www      26338  0.0  0.3 163072  5932 ?        S    14:37   0:00 php-fpm: pool www
www      26339  0.0  0.3 163072  7088 ?        S    14:37   0:00 php-fpm: pool www
root     28356  0.0  0.2 121740  5128 ?        Ss   15:39   0:00 php-fpm: master process (/usr/local/etc/php-fpm-5.6.conf)
www      28357  0.0  0.2 121740  4580 ?        S    15:39   0:00 php-fpm: pool www
www      28358  0.0  0.2 121740  4580 ?        S    15:39   0:00 php-fpm: pool www
www      28359  0.0  0.2 121740  4580 ?        S    15:39   0:00 php-fpm: pool www
www      28360  0.0  0.2 121740  4580 ?        S    15:39   0:00 php-fpm: pool www
www      28361  0.0  0.2 121740  4584 ?        S    15:39   0:00 php-fpm: pool www
www      28362  0.0  0.2 121740  4584 ?        S    15:39   0:00 php-fpm: pool www
www      28363  0.0  0.2 121740  4584 ?        S    15:39   0:00 php-fpm: pool www
www      28364  0.0  0.2 121740  4584 ?        S    15:39   0:00 php-fpm: pool www
www      28365  0.0  0.2 121740  4584 ?        S    15:39   0:00 php-fpm: pool www
www      28366  0.0  0.2 121740  4584 ?        S    15:39   0:00 php-fpm: pool www
root     28368  0.0  0.0 112648   972 pts/0    R+   15:39   0:00 grep --color=auto php

查看下端口的状况

[root@iZwz99zpj9k5noj0vtkozjZ etc]# netstat -atpn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      28356/php-fpm: mast 
tcp        0      0 0.0.0.0:9001            0.0.0.0:*               LISTEN      26329/php-fpm: mast 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      31398/mysqld        
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      26576/nginx: master 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      26576/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3089/sshd           
tcp        0     52 172.18.42.27:22         14.223.93.183:5727      ESTABLISHED 3686/sshd: root@pts 
tcp        0      0 172.18.42.27:34968      106.11.68.13:80         ESTABLISHED 957/AliYunDun  

这样一来就可以不同域名多个php版本共存了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值