在我们一般的网站环境中,Linux VPS主机搭建的网站环境采用面板的还是比较多的,毕竟较为容易的管理,且在国产的软件中,即便AMH目前新版本采用付费模式之后,原来的免费版本基本的功能还是完善的,对于普通的网站项目还是足够的满足使用。如果需要特别的环境和版本,我们可以通过单独编译升级的方法完善。
在默认的AMH4.2免费版本中,PHP是5.3.27p1版本,但是有些网站CMS项目需要5.5甚至更高的版本,于是老左就尝试着寻找网上有提供的各种教程,因为目前付费之后,官方能够提供的教程少之又少,同样的网上也有部分网友提供出来的方法,但实现后即便可以部分编译,但是有些遇到的问题并没有详细的提出来解决,对于新手用户可能比较难以解决。
这里,老左尝试通过手工编译的方法进行PHP版本的升级,直接升级到当前稳定的PHP5.6.9版本,同样的,为了这个教程,老左从上周就在测试但还是不够完美解决问题,不过已经能解决大部分问题。同样的,需要提到,如果我们在正式项目上升级参考这篇文章的时候,请做好备份工作,我不能保证所有的环境都能兼容,也许会出现意外,如果我们有用过其他的组件环境,建议不要升级,因为很多都不兼容。
第一、AMH升级PHP5.6.9准备工作
这个准备工作也是非常关键的,不论我们是用新VPS主机进行测试演练教程是否可行,还是在我们的服务器项目中进行直接升级,我们都要知晓准备步骤工作。我们需要备份好网站和环境的配置,如果可以快照备份更好,出错可以回滚还原,如果有网站项目也需要将网站和数据库备份防止出现意外。
这里,老左博客这里的文章是直接安装官方的最新版的免费4.2版本。尽量的少用和没有用太多的插件,因为升级后会不兼容。
第二、下载和解压PHP5.6.9
wget http://cn2.php.net/distributions/php-5.6.9.tar.gz
tar -zxvf php-5.6.9.tar.gz
cd php-5.6.9
这里直接从PHP中文节点下载5PHP5.6.9版本,这样速度好一些,然后进行解压和进入文件夹中准备编译。
第二、编译PHP5.6.9
1、编译部署
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --enable-zip --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql --without-pear --disable-fileinfo --enable-opcache
直接将上面的编译脚本丢到当前SSH中执行编译。
2、执行编译
make
make install
执行编译,这个过程比较久,我们需要耐心等待。
整个执行编译make的过程比较长,我们要耐心等待,写教程也是一个费时的事情,所以我也在等待全部执行完毕。
第三、修改PHP配置文件
到这个时候,我们可以看到php -v检测到当前的PHP已经是PHP5.6.9版本,但是现在我们打开面板,检测到的还是老版本的,如果我们重启VPS,会出现无法打开的问题出现。这里我们需要配置文件,比较重要的过程。
1、修改/usr/local/php/etc/php-fpm.conf
添加脚本授权
listen.owner = www
listen.group = www
listen.mode = 0660
2、修改/usr/local/php/etc/php-fpm-template.conf
同样的,这个是用来添加站点配置的模板文件,也和上面一样。
listen.owner = www
listen.group = www
listen.mode = 0660
3、如果我们有站点
如果我们在已有的AMH面板环境中有站点,还需要将/usr/local/php/etc/fpm目录中,有站点域名标示的.conf文件进行添加上面的3行脚本。如果没有站点就不需要,因为模板我们添加了,添加的新站点会自动添加。
第四、重启AMH以及解决问题
这里有问题来了,添加完毕之后,重启PHP,以及重启AMH面板之后,是生效的。
/etc/init.d/amh-start
我们直接通过AMH后台的PHPINFO也可以看到更新完毕。
但是问题有一个瑕疵,如果我们重启VPS之后,Nginx是没有生效的,我们需要单独在重启一次AMH或者重启NGINX才可以生效。
amh nginx restart
需要再重启一次nginx才可以生效,这个问题解决了几天都没有搞定,也请教了不少的网友,虽然有一个不错的方法修改fstab文件,但是这个方法一般的新手还搞不定,所以就没有放出来,会根据磁盘盘符决定启动的,所以这里的瑕疵就是需要再手工启动一次NGINX。等以后或者有朋友有更好的方法,老左在补充。
PS:以上AMH面板升级PHP5.6.9版本的方法仅对于有特别需要版本的用户,如果基本的5.3版本够用,我们还是先用着,基本上不会影响大部分主流的程序性能。