1. 程式人生 > >Lnmp 配置多 PHP 開發環境

Lnmp 配置多 PHP 開發環境

code 配置文件 ces fast config fastcgi scrip host location

在實際項目中,有時因為老項目的原因而不得不在同一臺服務器配置多個 php 環境,本文為配置多 PHP 環境教程
假設:已有 php7 的環境,需要配置一個 PHP5 的環境

編譯安裝 php-5.6.27

  1. 下載解壓
    sudo wget  http://au1.php.net/get/php-5.6.27.tar.gz/from/this/mirror -O php-5.6.27
    sudo tar -zxvf php-5.6.27 && cd php-5.6.27
  2. 配置
    sudo ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-iconv-dir=/usr/local/lib --enable-fpm --enable-pcntl --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --enable-zip --with-gd --with-curl=/usr/bin/curl --with-mysqli --with-pdo-mysql
  3. 編譯 && 安裝
    sudo make && sudo make install
  4. 處理配置文件
    sudo cp /usr/local/src/php-5.6.27/php.ini-development  /usr/local/php5/etc/php.ini
    sudo cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

    # 修改 php.ini

    sudo vim /usr/local/php5/etc/php.ini
    cgi.fix_pathinfo=0;

    # 修改 php-fpm.conf

    user=www
    group=www
    listen.owner = www
    listen.group = www
    listen.mode = 0660
    listen=/var/php/php5-cgi.sock

    # 創建 sock 文件

    sudo touch /var/php/php5-cgi.sock

# 鏈接 php 指令

sudo ln -s /usr/local/php5/bin/php /usr/bin/php5
  1. 配置 php5-fpm 服務管理
    sudo cp /usr/local/src/php-5.6.27/sapi/fpm/init.d.php-fpm /etc/init.d/php5-fpm
    sudo chmod +x /etc/init.d/php5-fpm
    sudo systemctl unmask php5-fpm.service  # 使 php5-fpm 服務生效
    sudo sysv-rc-conf php5-fpm on # 設置開機啟動
  2. 服務管理

    service php5-fpm status
    service php5-fpm start
    service php5-fpm stop
    service php5-fpm restart
    service php5-fpm reload
    service php5-fpm help
    service php5-fpm configtest

    7.配置 nginx server

    sudo touch /var/php/php5-fpm.sock
    sudo vim /usr/local/nginx/conf/vhosts/shop.mt.conf
    server {
        listen       80;
        server_name  shop.mitao.me;
        #server_name  10.1.16.162;
        charset utf-8;
        index index.php index.html index.htm;
        #access_log  logs/host.access.log  main;
        root   /mnt/d/xmt-shop;
    
        if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php?s=/$1  last;
           break;
        }
    
        #error_page  404              /404.html;
    
        error_page   500 502 503 504  /50x.html;
                location = /50x.html {
                root   html;
        }
        location ~ \.php$ {
            #fastcgi_pass   127.0.0.1:9000;
            fastcgi_pass unix:/var/php/php5-cgi.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
        }
    }

    8.分別啟動 php5 和 php7

    sudo service php-fpm start
    sudo service php5-fpm start
    ps -ef|grep php-fpm

總結:其實多 PHP 環境配置的關鍵點就是,通過配置 nginx http server 項,
location ~ .php$ {
fastcgi_pass unix:/var/php/php-cgi.sock
# fastcgi_pass unix:/var/php/php5-cgi.sock
}
即通過監聽不同的 監聽socket套接字 來區分,同時也需要在 php-fpm.conf 配置對應 連接socket 套接字

Lnmp 配置多 PHP 開發環境