Yii2对最低要求PHP5.4,可是目前不少空间或者主机,PHP的版本还停留在5.3及如下。这个时候就面临两个选择:php
若是已经有站点在这个服务器上运行的话,贸然升级PHP版本,极可能让那些使用了过期的函数,不规范用法的PHP程序报一堆警告或者错误,那就无可挽回啦。安全起见,再安装一个高版本PHP比较保守些。那么若是让Nginx或者Apchce使用不一样版本的PHP呢?那就是PHP-FPM.mysql
FastCGI Process Manager, 即FastCGI进程管理器。使用PHP-FPM模式的配置PHP站点,一个请求的流程是这样的(以Nginx+PHP-FPM为例):sql
所以,让不一样的站点使用不一样的PHP版本,就能够经过将请求转发给不一样的PHP-FPM进程。shell
下载相应版本的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.conf, 修改监听的端口,或者修改sock文件名称,防止和旧版本的PHP-FPM进程冲突。而后启动这个php-fpm进程。服务器
主要就是修改FASTCGI_PASS, 指向相应的监听端口或者sock文件。dom