将服务器php版本升级到了7.0

有危险但是一切安好的升级

 

之前在将网站升级到https的途中,一直找不到mod_ssl该安装哪个。直接yum install mod_ssl提示与php版本不兼容,索性我就将之前的httpd卸载,然后直接yum install httpd,不带任何数字。当然最后挺成功的,虽然我都不知道安装都是哪个版本都apache以及php。

之后在wordpress后台老是一个大大都警告,以及很多插件用不了,phpmyadmin也用老版都才行,而且那个警告说我用的版本已经不提供支持了,所以决定更新到最新版php70。

先停用apache:service httpd stop

卸载旧版本:yum remove httpd

可以看到一些相关都包也被卸掉了,我的结果是这样的:

Dependencies Resolved

================================================================================

Package       Arch         Version                   Repository           Size

================================================================================

Removing:

httpd         x86_64       2.2.32-1.9.amzn1          @amzn-updates       3.1 M

Removing for dependencies:

mod_ssl       x86_64       1:2.2.32-1.9.amzn1        @amzn-updates       195 k

php           x86_64       5.3.29-1.8.amzn1          @amzn-main          7.4 M

Transaction Summary

================================================================================

Remove  1 Package (+2 Dependent packages)

输入y卸载。

然后输入 yum list installed | grep  php 查询到还有很多遗留包每删干净,

Failed to set locale, defaulting to C

php-cli.x86_64                       5.3.29-1.8.amzn1              @amzn-main   

php-common.x86_64                    5.3.29-1.8.amzn1              @amzn-main   

php-mbstring.x86_64                  5.3.29-1.8.amzn1              @amzn-main   

php-mcrypt.x86_64                    5.3.29-1.8.amzn1              @amzn-main   

php-mysql.x86_64                     5.3.29-1.8.amzn1              @amzn-main   

php-pdo.x86_64                       5.3.29-1.8.amzn1              @amzn-main   

php-xml.x86_64                       5.3.29-1.8.amzn1              @amzn-main 

把旧的php全删掉以绝后患:yum remove php-*

Dependencies Resolved

================================================================================

Package            Arch         Version                 Repository        Size

================================================================================

Removing:

php-cli            x86_64       5.3.29-1.8.amzn1        @amzn-main       6.4 M

php-common         x86_64       5.3.29-1.8.amzn1        @amzn-main       6.3 M

php-mbstring       x86_64       5.3.29-1.8.amzn1        @amzn-main       4.1 M

php-mcrypt         x86_64       5.3.29-1.8.amzn1        @amzn-main        92 k

php-mysql          x86_64       5.3.29-1.8.amzn1        @amzn-main       445 k

php-pdo            x86_64       5.3.29-1.8.amzn1        @amzn-main       381 k

php-xml            x86_64       5.3.29-1.8.amzn1        @amzn-main       625 k

Transaction Summary

================================================================================

Remove  7 Packages

看还剩下这么多残留。

同样的道理删除apache相关的遗留包:yum list installed | grep  http

删删删:yum remove httpd-*

删完旧的,该装新的了:

yum install httpd24 php70 php70-mysqlnd mod24_ssl php70-mcrypt  php70-mbstring

第一个是apache,第二个是新版php,第三个是php连接mysql用到的插件,第四个是我启用SSL连接要用到的一个库,后两个是phpmyadmin用到的插件,前三个是必须的,后边的根据需要安装。

安装好后就可以启动了,由于我是用的WordPress permalink 需要使用 Apache .htaccess 文件才能正常工作,但默认情况下这些文件在 Amazon
Linux 上处于禁用状态。所以要把这个开启:

vim /etc/httpd/conf/httpd.conf

找到以 <Directory “/var/www/html”> 开头的部分。在以上部分中将 AllowOverride None 行改为读取 AllowOverride All。此文件中有多个 AllowOverride 行;请确保更改 <Directory “/var/www/html”> 部分中的
行。

这样就可以开启服务器了: service httpd start

然后看看你的网站能不能访问有没有问题。

发现同时解决了php内存占用问题,之前待机这个服务用掉我900M内存,新的php70待机只需要500M,并且响应速度比之前也好很多,真是一举多得。下边两个图,上图是旧版php开启和关闭内存状态,下图是新版php开启后内存状态,差别挺大的。

看下边新的php都用不到swap

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.