Yii2 Day 8 配置多版本PHP

原由

Yii2对最低要求PHP5.4,可是目前不少空间或者主机,PHP的版本还停留在5.3及如下。这个时候就面临两个选择:php

  1. 升级PHP版本
  2. 再安装一个高版本PHP

若是已经有站点在这个服务器上运行的话,贸然升级PHP版本,极可能让那些使用了过期的函数,不规范用法的PHP程序报一堆警告或者错误,那就无可挽回啦。安全起见,再安装一个高版本PHP比较保守些。那么若是让Nginx或者Apchce使用不一样版本的PHP呢?那就是PHP-FPM.mysql

PHP-FPM##

FastCGI Process Manager, 即FastCGI进程管理器。使用PHP-FPM模式的配置PHP站点,一个请求的流程是这样的(以Nginx+PHP-FPM为例):sql

  1. PHP-FPM启动监听,一般默认是9000,因此不少Nginx配置会有一条 Fastcgi-pass 127.0.0.1:9000
  2. 浏览器发送请到Nginx应用服务器
  3. Nginx把PHP请求,转发给PHP的FastCGI进程,
  4. FastCGI进程处理完毕PHP脚本后,返回给应用服务器,服务器再返回给浏览器。

所以,让不一样的站点使用不一样的PHP版本,就能够经过将请求转发给不一样的PHP-FPM进程。shell

编译PHP

下载相应版本的PHP代码,编译安装到不一样的路径下,把须要的扩展尽可能都加进去:浏览器

<!-- lang: shell -->
./configure --prefix=/usr/local/php-5.5 --with-config-file-path=/usr/local/php-5.5/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-bz2 --with-curl=/usr/bin --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local  --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --with-mcrypt=/usr/bin --enable-zip --enable-soap --enable-mbstring  --with-gd --with-openssl --enable-pcntl --with-xmlrpc --enable-opcache

因为Yii2使用到了mcrypt,因此加了--with-mcrypt,可是若是没有安装过,configure的时候会报找不到 mcrypt.h之类的错误,说明系统确实这个库,须要先安装,使用yum install libmcrypt mcrypt mhash. 再次configure就能够不报错了。安全

配置PHP-FPM

安装完毕后,打开 php-fpm.conf, 修改监听的端口,或者修改sock文件名称,防止和旧版本的PHP-FPM进程冲突。而后启动这个php-fpm进程。服务器

修改站点配置

主要就是修改FASTCGI_PASS, 指向相应的监听端口或者sock文件。dom

相关文章
相关标签/搜索