前情摘要:

这两天要在虚拟机上部署项目,用于测试在linux上项目效果怎样,然后这两天就一直在部署apache+mysql+php

其实部署还是很简单的具体的apache和mysql部署方法请看其他两篇博文:

apache:http://www.cnblogs.com/sunshine-H/p/8110608.html

mysql:http://www.cnblogs.com/sunshine-H/p/8109403.html

PHP在我安装apache的时候就一起安装了,但是当我

#php -v

查看php版本的时候,却发现php是5.6版本的!!!

那这就尴尬了,我的项目都是基于php7去开发的。没办法只能把php5.6卸载了,重新安装php7 lor!

第一步:卸载旧版的PHP

第一个坑来了!

当使用

#yum remove php

确实提示卸载完成了,但是!

在apache部署目录下写个phpinfo.php

<?php

  phpinfo()

?>

在浏览器打开localhost/phpinfo.php一看,竟然还提示php是5.6版本的,然后就有小伙伴说,你还没重启apache服务啊,好吧我重启下

#systemctl restart httpd

再次打开一看,那个尴尬啊!还是存在,具体的解决办法看我另一篇博文,就不在这里赘述:

http://www.cnblogs.com/sunshine-H/p/8117105.html

第二步:开始安装PHP7

①yum安装:

这里不得不说,对于初接触linux的人来说yum源也是个麻烦的事,在你使用yum命令install软件时,提示下最好经常更新yum源

#yum -y update

然后执行如下命令安装epel

#yum -y install epel-release

选择php的yum源

// 更换rpm源,请根据自己的centos版本选择相应的rpm源进行安装

// Centos 5.X:

#rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpmCentOs 6.x:

#rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

// CentOs 7.X:

#rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm

#rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

开始安装

#yum install php70w

当你安装完了,安全没事啊,别着急

第二个坑又来了!

当你想对mysql进行连接的时候,这时你发现你需要安装扩展啊,好我们执行扩展安装命令

#yum install php-mysql

如果小伙伴完全卸载旧版php的话基本不会遇到这个坑的,但是不排除部分小伙伴还是会遇到,报错如下:

php70w-common conflicts with php-common-5.4.16

当时遇到这个问题我是绝望的,为什么?因为无论我用yum卸载还是rpm处理都没法删掉php-common-5.4.16这个毒瘤!

后来发现删不了就不删了,既然那些扩展是依赖php的版本选择性安装的,那就换个思路去处理好了,还是上面那个安装mysql拓展的命令

解决办法:yum install php70w-mysql

你会发现,咦!竟然可以安装了,没错,就是这么简单,但是却浪费我几个小时。

第三步:安装依赖包

下面提供一些常用的需要安装的依赖包:

第四步:部署项目

部署项目也没什么好说的了,直接说我遇到的坑吧。

第三个坑!请看下图:

Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50547 Library:50631 in /XXX(某某目录)/wp-db.php on line 1520

虽然是警告,但是有的界面会因此打不开,甚是头疼,前不久用的是腾讯云服务器同样的部署方式并没有出现这个警告,一头雾水。

使用:

# php -i|grep Client

查询当前Client 版本,结果如下:

Client API version => 5.6.31
Client API library version => 5.6.31
Client API header version => 5.5.47-MariaDB
Client API version => 5.6.31

好吧,出现了一个异类!!

据某大牛说,版本不兼容,需升级MariaDB版本至少到5.6.31或许可以解决。我的系统是CentOS7.2版本,众所周知,CentOS从7.x系列版本开始抛弃了MySQL,缺省安装的是MariaDB,虽然MariaDB兼容MySQL,但是我还是比较喜欢MySQL,所以我给服务器强制安装了MySQL,也希望一直用下去,对于这个情况,升级MariaDB这条路是不能走了。考虑当前安装的是php-mysql驱动,而当前的php版本比较新,想到这个奇葩是不是因为驱动版本较低造成的,于是尝试以下操作:

# yum remove php-mysql

# yum install php70w-mysql     //注意这里的70w是我自己的php7的版本,上面也有提到过,自己注意吧,换成自己的就好

先卸载较低版本的 php-mysql驱动,再升级安装新版的php-mysqlnd驱动。

OK,再重启下httpd和mysql服务:

# systemctl restart httpd

# systemctl restart mysqld

然后重新试下打开项目,完美,可以了。

-----------------------------------------------------------------小小分割线:20180102-----------------------------------------------------------------------

后面遇到什么问题都会继续在这里更新!

祝大家新年快乐!

欢迎大家到下方留言!

  1. php -i|grep Client

聊聊这两天在linux安装PHP7遇到的坑,真的是坑死人不偿命啊的更多相关文章

  1. Linux安装php-7.0.16,完成php和apache的配置

    Linux安装php-7.0.16,完成php和apache的配置     版本:php-7.0.16.tar.gz,libxml2-2.9.2.tar.gz(php需要它的支持,首先安装它) 说明 ...

  2. linux 安装php7 Nginx

    这里 记录下 本屌安装linux  下安装php7 即遇到的问题. wget http://cn2.php.NET/distributions/php-7.0.4.tar.gz tar zxvf ph ...

  3. linux安装PHP7以及扩展

    Linux下安装PHP7 事先升级gcc4.8,然后安装PHP7,安装步骤参考:CentOS安装PHP7 1.Linux下编译的php没有php.ini 解决办法:从源代码目录中复制php.ini-d ...

  4. Linux安装Redis步骤和make遇到的坑

    Linux安装Redis服务步骤 1.获取redis资源 ​​​​​​​cd /usr/local wget https://mirrors.huaweicloud.com/redis/redis-6 ...

  5. linux安装php7.2.7

    1.下载php 官网下载:#wget http://cn2.php.net/get/php-7.2.7.tar.gz/from/a/mirror.(ps:应该是这么下载的,但是我下载的都是一个mirr ...

  6. linux安装php7

    之前一直对linux研究的比较少,终于下定决心好好把linux玩一下 首先~我是安装了vm虚拟机,然后使用的是centos7的版本.因为vm不好复制粘贴,故使用了xshell连接了我的linux进行操 ...

  7. linux 安装php7

    http://blog.csdn.net/whatday/article/details/50645117 1: wget  http://cn2.php.NET/distributions/php- ...

  8. WINDOWS和Linux上安装php7 alpha 并安装 yaf

    WINDOWS和Linux上安装php7 alpha 并安装 yaf PHP技术  widuu  2个月前 (06-15)  126浏览  0评论 windows 1.windows上安装 php7 ...

  9. Linux环境PHP7.0安装

    原文地址:http://blog.csdn.net/21aspnet/article/details/47708763 PHP7和HHVM比较 PHP7的在真实场景的性能确实已经和HHVM相当, 在一 ...

随机推荐

  1. XShell上传和下载

    工具:XShell 本地环境:win7操作系统 远程服务器环境:linux系统 1.将本地的文件上传到远程服务器上 可以使用rz命令 rz命令详细使用方法可以在xshell中输入:rz -h 2.将远 ...

  2. 在window把项目上传到github

    作为一个开发者,写博客,上传项目到github好像是不可不会的技能,很多有经验的老司机都会这么建议你.本宝宝第一次要把项目传到github的时候,确实有点蒙蔽,什么鬼,传个东西有必要这么难吗? git ...

  3. fineReport---sql

    一.开窗函数-逐层平均 在创建数据集时用sql的开窗排名函数[AVG(字段) over(PARTITION BY 分组字段 order by 逐层字段)]处理,然后进行直接调用. 详细说明 二.开窗函 ...

  4. 7.javascript如何调试代码

    http://www.cnblogs.com/youring2/archive/2012/08/08/2624093.html

  5. 四、H5 录制视频 Web Real-Time Communication

    Web Real-Time Communication HTML5实现视频直播功能思路详解_html5教程技巧_脚本之家 https://m.jb51.net/html5/587215.html

  6. ajax简介及JS写原生ajax

    ajax 1.什么是ajax ajax 的全称是Asynchronous JavaScript and XML,其中, Asynchronous 是异步的意思,指的是异步 JavaScript 和 X ...

  7. tpot从elastic search拉攻击数据之一 找本地数据端口

    前面,我们已经在ubuntu服务器上部署好了tpot,并启动进行数据捕获 可以通过64297端口登陆到kibana可视化平台查看捕获到攻击的情况. 现在要拉取攻击数据了,但是该怎么拉呢? 看了一上午的 ...

  8. 在容器最前面添加DOM元素 parent.insertBefore(new, parent.children[0])

    //判断容器当前有没有子级元素,如果没有直接appendChild就行了; if (p.children[0]) { p.insertBefore(span, p.children[0]); } el ...

  9. USB 3.0:那些你需要知道的事

    在过去14年来,通用串行总线(USB)已成为计算机和外部设备之间的标准接口.不管是移动硬盘.相机.鼠标.键盘.打印机,还是扫描仪,它们和计算机之间的数据传输一般均采用USB线.USB接口也的确是“通用 ...

  10. 0501-Hystrix保护应用-超时机制、断路器模式简介

    一.概述 hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystri ...