“PHP7性能达到5.5的两倍”。太令人惊喜了,自己VPS的版本还停留在5.3,要不要升级体验一下?
周末乘着有时间,终于下决心尝试升级安装了一次。周折不少,但结果是成功了,很开心,下面就把流水账记一下。
(1)LAMP环境准备工作
官网给出的安装方法及网上找到的,都需要通过全新编译PHP7来完成安装,考虑到需要重新安装,就备份了Apache和MySQL的数据。
编译安装指导,来源如下:
1、官方PHP通用的安装指导:http://php.net/manual/zh/install.unix.php
2、从百度搜索PHP7安装的成功案例,有两个网址可供参考,提供详细的编译参数和问题解决办法:
http://www.zimuel.it/install-php-7/
http://blog.csdn.net/qf0129/article/details/51195522
3、下载PHP7源代码,并完成解压缩,不再详述。
(2)设置编译参数,执行编译步骤
官网提供的编译配置参数很简单:./configure --with-apxs2=/usr/bin/apxs --with-mysqli
可以先按此参数完成编译安装动作:
1、按上述命令执行编译配置;
2、执行make
3、执行make install
(3)解决编译问题
1、编译中如出现所需模块不存在的问题,可以通过Ubuntu的apt-get包管理工具安装。
例如,错误提示:Error: Unable to locate gmp.h
则缺失 libgmp-dev 程序库,安装方法:
sudo
apt-get
install
libgmp-dev
curl4-openssl
bz2
jpeg
png
freetype6
gmp
mcrypt
mysqlclient
recode
xlst
2、注意--with-apxs2=/usr/bin/apxs
参数的正确性
一般Apache2.2版本,路径地址需要改为--with-apxs2=/usr/bin/apxs2
注意:默认情况Ubuntu的Apache安装不带有apxs这个程序,需要安装apache2-dev软件包。
如果不带这个参数编译,通过是没问题的,但不能产生Apache所需的动态库文件:libphp7.so。
(4)卸载老版本的lamp-server,重新安装apache和mysql
这一步其实可能不需要做,但是我做了。这个步骤浪费了绝大部分时间。
lamp-server包是ubuntu定制的一套软件包,含有非线程化Apache,版本是2.2,删除之后安装Apache的默认版本是2.4,而且是线程化版本。
Apache重新安装后,注意配置文件apache2.conf中增加对PHP的支持:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
线程化版本Apache安装之后,与编译好的PHP7对接,直接提示不支持,无法运行。只好退回去安装Apache2.2的非线程化版本。
需要安装的软件包(为了找到这个老版本,还不少力气,感兴趣的可去研究apt-get和aptitude,不再详述):apache2-mpm-prefork,apache2-prefork-dev
(5)重新编译PHP7
这两个包安装之后,重新编译PHP7,按之前的方法解决出现的问题,补上缺失的软件包。编译安装完毕后,Apache+PHP7应该能跑起来了。
(6)完整的编译参数
WordPress站点已能正常运行,突然发现软件包更新有问题,才发现curl模块没有启用。参考后两个安装经验的配置参数,修改配置参数,再重新编译一次。
./configure \ --with-apxs2=/usr/bin/apxs2 \ --enable-mbstring \ --enable-zip \ --enable-bcmath \ --enable-pcntl \ --enable-ftp \ --enable-exif \ --enable-calendar \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm --enable-mbregex \ --enable-xml --enable-soap --enable-sockets --enable-opcache --enable-shmop --enable-fpm --enable-libxml --enable-inline-optimization \ --enable-wddx \ --with-curl \ --with-mcrypt \ --with-iconv \ --with-gmp \ --with-gd --with-xsl --with-xmlrpc --with-pear --with-pdo-sqlite --with-libxml-dir \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-freetype-dir=/usr \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-openssl \ --with-pdo-mysql=/usr \ --with-gettext=/usr \ --with-zlib=/usr \ --with-bz2=/usr \ --with-recode=/usr \ --with-mysqli=/usr/bin/mysql_config
哈哈,编译安装后,重新启动Apache,cURL能用了,Wordpress软件包更新顺利完成。
Over,整个过程讲完了,提醒大家升级有风险,谨慎再谨慎,再见!
GOOD JOB!