lamp架构之升级php版本
当你看到这篇文章的时候 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文件。
lamp架构之升级php版本的更多相关文章
- LNMP 与 LAMP 架构的区别及配置解决方案
2014-12-31 10:33| 发布者: digitser| 查看: 5618| 评论: 0|原作者: liangsheng 摘要: LNMP 与 LAMP 架构的区别及配置解决方案 LNMP 的 ...
- Apache web服务器(LAMP架构)(week3_day4)--技术流ken
apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...
- 末学者笔记--apache编译安装及LAMP架构上线
apache介绍 一.Apache的三种工作模式 Apache一共有3种稳定的MPM模式(多进程处理模块),它们分别是prefork.worker.event.http-2.2版本的httpd默认的m ...
- LAMP架构部署和动态网站环境的配置
实验环境: 操作系统:centos 7.5 服务器IP:192.168.10.5 运行用户:root 连接工具:xshell工具 web环境:Linux+apache+php+mariadb(LAMP ...
- Apache web服务器(LAMP架构)
Apache web服务器(LAMP架构) apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 ...
- LAMP架构上(一)
第十七课LAMP架构上(一) 目录 一.LAMP架构介绍 二.MySQL.MariaDB介绍 三.MySQL安装 四.MariaDB安装 五.Apache安装 六.安装PHP5 七.安装PHP7 八. ...
- rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构
rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构 2017年10月01日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~准备阶段~~~~~~~~~~~~~ ...
- Linux LAMP架构搭建
一.部署LAMP基本架构 1.L(linux)A(apache)M(mysql)P(php) 2.稳定版本(mysql5.1,php5.3,apache2.2) 3.安装顺序,mysql-->a ...
- 部署LAMP架构及其应用
部署企业LAMP架构 (一)首先安装Apache服务,具体请见另一篇关于Apache的博文. (二)安装MySQL数据库,具体请见另一篇关于LNMP的博文. (三)构建PHP运行环境 1.安装PHP ...
随机推荐
- 在window把项目上传到github
作为一个开发者,写博客,上传项目到github好像是不可不会的技能,很多有经验的老司机都会这么建议你.本宝宝第一次要把项目传到github的时候,确实有点蒙蔽,什么鬼,传个东西有必要这么难吗? git ...
- delphi ---ttoolbar,ttoolbutton
1.button style:tbsButton,tbsCheck,tbsDivider,tbsDropDown,tbsSeparator,tbsTextButton tbsButton:普通的控件 ...
- 9.JavaScript简单计算器的实现
1.难点,怎么获取标签的值,注意点,获取到的值都是string类型,还要转换 var num1 = parseInt(document.getElementById("num1") ...
- centos6.5关闭防火墙命令
1.永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2.即时生效,重启后复原 开启: service iptabl ...
- maven安装,maven命令行使用
1 下载maven,解压(无需安装),配置环境变量,命令行mvn -v测试. 2 maven常用命令:https://www.cnblogs.com/wkrbky/p/6352188.html 3 注 ...
- spring 实现定时任务
spring实现定时任务超级简单.比使用quartz简单,比使用timer强大.如下是一个简单的springboot任务,启用了定时任务 @SpringBootApplication@Componen ...
- Python爬虫之-Requests
Requests模块 Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了. 它是为另一个时代.另一个互联网所创建的.它需要巨量的 ...
- time 模块,random模块,os模块
一 :time 模块 python中,通常有几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“type(t ...
- Django - ModelForm组件
一.ModelForm组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样一张学生表, ...
- 【Oracle】OGG数据初始化之RMAN
实验环境: 源端.目标端: DataBase:10.2.0.1.0 OS:OEL5.6 OGG:fbo_ggs_Linux_x86_ora11g_32bit 源端使用rman进行备份全库: RMAN& ...