当你看到这篇文章的时候 YHSPY.COM 服务器上的PHP版本已经从 5.4.27 升级到了 7.0.4,这是一个重大的飞跃。一路升级遇到了很多问题。官方声称PHP7最大的升级就是在语言性能上的提升,最大到达了30%。同时也去掉了很多老版本中Deprecated的函数和方法,语言整体变得更加稳定。

首先声明,此文不适用于使用yum方式安装的PHP环境的升级,只适用于使用PHP源代码编译安装的PHP版本。升级之前首先需要判断服务器上Apache的版本,根据不同的Apache版本来参考不同的官方编译文档。用以下命令来查看当前Apache的版本:

... (详见原文)

由以上命令返回的结果可知,Apache服务器为2.X版本,所以此处应该参考官方给出的PHP编译在Apache版本2.X上的编译参考文档:Apache2.X版本PHP编译文档,对于其他版本的Aapche或者Nginx,可以参考此处:其他版本服务器PHP编译文档。

接下来我们从PHP官方给出的镜像地址来获取PHP源代码,这些源代码将会最后被编译并安装在我们的服务器上。这里按照官方文档的说明,我们使用wget命令来获取源代码的压缩包,并逐层解压,直到生成最后的源代码文件夹。

... (详见原文)

由于我们这里为PHP的版本升级操作,所以需要保持新版本PHP源代码的预编译参数和旧版本PHP源码的预编译参数保持一致。进入到旧版本(当前版本)PHP源码文件夹内,使用 vi/vim命令打开文件夹内的Mkaefile文件,复制其中的 CONFIGURE_COMMAND 参数部分并整理成如下格式(去掉单引号等):

... (详见原文)

其实 CONFIGURE_COMMAND 参数的值本身就是对应我们上一次PHP源码预编译过程的全部编译命令(和子参数),这里顺便说一下其中几个子参数的作用。“--prefix”参数用来指定PHP安装的主要目录位置,“--with-config-file-path”参数主要用来指定php.ini文件的生成路径,对于其他子参数的具体用法和说明,请在PHP源代码文件夹内使用./configure --help命令来查看。

接下来便通过已经整理好的预编译参数来对源码进行预编译操作(即编译前的配置操作):

.. (详见原文)

在这里为了防止出现错误,我们需要分开执行make编译和make install安装两个操作命令,首先执行make命令来编译源代码。

如果在执行过程中遇到“undefined reference to `libiconv‘”错误,请尝试为make命令加入ZEND_EXTRA_LIBS参数,如下所示:

.. (详见原文)

最后执行make install命令来安装PHP环境:

.. (详见原文)

在源代码全部编译完成并安装后,便可以用以下命令来重新启动Apache服务器:

.. (详见原文)

至此,PHP7的升级就全部结束了,你可以通过phpinfo()函数来查看新版本PHP的相关配置,包括扩展配置和错误日志等常用设置是否配置正确。

从PHP5.X升级至PHP7.X后,一些PHP在早期版本不推荐使用的函数比如split()等都已经从PHP7移除了,所以在升级时请参考官方的升级文档。并且,PHP7也移除了mysql相关的函数,因此只能使用PDO或其他方式来连接数据库。

写在最后,其实所谓的预编译步骤是对源代码编译之前进行一些环境配置,比如指定编译是否携带某一模块,编译生成的文件夹等。同时在执行./configure时也会同时生成Makefile文件。

原文:http://www.cnblogs.com/qiuqiuqiu/p/6444919.html

lamp里php 的升级,lamp架构之升级php版本相关推荐

  1. 架构师升级之路,你掌握了吗?

    之前有网友说想看架构师升级的文章,所以写了本文.先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能按架构师的标准发工资. 对于程序员来说,架构师是职 ...

  2. 好文 | 架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容

    之前有网友说想看架构师升级的文章,所以写了本文.先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能按架构师的标准发工资. 对于程序员来说,架构师是职 ...

  3. 看下资深架构师平时需要解决的问题,对比你离资深架构师还有多少距离——再论技术架构的升级之路...

    我目前奋力在技术架构的路上不断前行,虽然中间遇到很多障碍,目前自己感觉,勉强能达到架构师的级别,所以自己感觉还有底气写这篇文章. 之前,我写过篇博文,架构师更多的是和人打交道,说说我见到和听说到的架构 ...

  4. 架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容

    之前有网友说想看架构师升级的文章,所以写了本文.先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能按架构师的标准发工资. 对于程序员来说,架构师是职 ...

  5. 零架构项目经验的程序员,如何升级成架构师

    先说目前关于架构师的一些是实际情况. 1 要成为Java架构师,单纯靠学知识一定不行,得靠在项目里积累经验. 2 如何判断程序员是否已经成为java架构师?不是看程序员掌握的技能,更不是看程序员干的活 ...

  6. 5分钟弄懂程序员的如何升级到架构师。

    对我们程序员来说,发展的途径要么是走管理岗,从开发升级到项目经理甚至是部门经理:要么走技术升级路线.不过在技术路线方面,无法升级到架构师的程序员不在少数.一方面,在不少公司的高级开发岗位上,无法让程序 ...

  7. linux LAMP的作用和现状,lamp简介

    lamp 构建一个有着动态服务器端技术的网站 LAMP基础 1)开源领域LAMP组成: L:Linux:A:apache (httpd):M:mysql, mariadb:P:php, perl, p ...

  8. 基于统一开发平台的微服务架构转型升级之路 | 某国有大型银行案例

    分享某国有大型银行统一开发平台的建设历程,重点介绍其当前正在建设的微服务开发平台中的关键点和实践经验. 转载本文需注明出处:微信公众号EAWorld,违者必究. 引言: 某银行是一家国有大型银行,从2 ...

  9. 为什么很多程序员没有升级到架构师?

    对我们程序员来说,发展的途径要么是走管理岗,从开发升级到项目经理甚至是部门经理:要么走技术升级路线.不过在技术路线方面,无法升级到架构师的程序员不在少数.一方面,在不少公司的高级开发岗位上,无法让程序 ...

  10. GitChat · 架构 | 大规模私有云产品自动升级的架构选型和实战

    GitChat 作者:冰尘 原文: 大规模私有云产品自动升级的架构选型和实战 关注微信公众号:GitChat 技术杂谈 ,一本正经的讲技术 一.项目背景概述 对于云计算,每个人都有自己的定义,有按SA ...

最新文章

  1. 海外博士一般朝九晚五,国内博士动辄十几个小时科研时间。为什么普遍认为海外博士水平比较高?...
  2. python 操作 hbase
  3. R学习笔记:运行时间记录
  4. 求一个整数的阶乘结果中后缀0的个数
  5. html如何在本页路径上拼接参数,Html图片路径拼接参数实现打印导出
  6. 句子分类_Bert做新闻标题文本分类
  7. SecureCRT SSH 失败 Key exchange failed 解决方法
  8. 应用机器学习(七):随机森林
  9. c语言程序设计 k,《C语言程序设计》谭浩强版-教学教案 k.doc
  10. 教你复制百度文库中的内容
  11. 剖析《Linux 平均负载:解开谜团》
  12. 企业网络管理利器-SpiceWorks(1)
  13. Python3爬虫(4)--抓取考生的四六级成绩
  14. 第三方支付的概述 第三方支付通道对接
  15. php简写是哪个国家的货币,世界197个国家的180种货币列表、数字符号、名称及对应国家简称...
  16. 用Excel绘制统计图的方法
  17. 基于Andriod的连锁药店管理系统-计算机毕业设计源码+LW文档
  18. 【java基础】java继承从“我爸是李刚”讲起
  19. 数据分析之matplotlib(以折线图为例)
  20. 博客大巴,自动登录,并发布信息开发小计。

热门文章

  1. Linked List Cycle
  2. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 中的标识列插入显式值错误的解决方法...
  3. JDK源码笔记-java.util.HashMap
  4. jqGrid细节备注—jqGrid中自定义格式,URL格式
  5. 报表被老板吐槽又多又丑?因为你没有掌握这些动态报表的技巧
  6. 成就优秀程序员的很多因素你知道多少?
  7. FreeEIM 来点新知识iOS UIScrollView详解
  8. 说到底企业是销售飞鸽传书2007
  9. JPG,动态GIF,BMP一些常用解决办法
  10. 25岁,一位女程序员的幸运几年