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