php平滑升级

1.既然是平滑升级,是不需要宕机,也不需要停止服务,是不存在关闭网站的说法
2.而升级最后的重启,重启的是PHP加载的配置文件,不影响你当前运行的网站
3.php-fpm是属于FastCgi,一旦启动是在内存中跑的,和你编译升级的过程没有任何关系

系统:centos6.8

php环境:php5.3.29

升级版本:php5.4.45

下载php地址:http://www.php.net/distributions/php-5.4.45.tar.gz

将php5.3.29安装目录config.nice复制到php-5.4.25

[root@localhost php-5.4.45]# cp /php-5.3.29/config.nice /usr/local/src/php-5.4.45

[root@localhost php-5.4.45]# cd php-5.4.45/

[root@localhost php-5.4.45]# ./config.nice

[root@localhost php-5.4.45]# make ZEND_EXTRA_LIBS='-liconv'

[root@localhost php-5.4.45]# make install

升级完成后建议执行命令:

You may want to add: /usr/local/php5/lib/php to your php.ini include_path
/usr/local/src/php-5.4.45/build/shtool install -c ext/phar/phar.phar /usr/local/php5/bin
ln -s -f /usr/local/php5/bin/phar.phar /usr/local/php5/bin/phar
Installing PDO headers: /usr/local/php5/include/php/ext/pdo/

安装中可能遇到错误



  原因:在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。

第一种解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。

第二种解决方法:

make ZEND_EXTRA_LIBS='-liconv'

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/

curl升级

情况说明:curl是默认使用yum安装SSL version为NSS,现有项目需要支持OpenSSL。

当前curl版本



phpinfo输出信息



下载最新的curl:https://curl.haxx.se/download/curl-7.54.1.tar.gz

开始升级:

[root@IM-web-03 html]# rpm -qa |grep curl
libcurl-devel-7.19.7-53.el6_9.x86_64
curl-7.19.7-53.el6_9.x86_64
libcurl-7.19.7-53.el6_9.x86_64
python-pycurl-7.19.0-9.el6.x86_64
[root@IM-web-03 html]# rpm -e curl-7.19.7-53.el6_9.x86_64 --nodeps
[root@IM-web-03 ~]# tar xvf curl-7.54.1.tar.gz
[root@IM-web-03 ~]# cd curl-7.54.1
[root@IM-web-03 curl-7.54.1]# ./configure --prefix=/usr/local/curl --without-nss --with-ssl #关闭NSS 开启OpenSSL
[root@IM-web-03 curl-7.54.1]# make
[root@IM-web-03 curl-7.54.1]# make install
[root@IM-web-03 curl-7.54.1]# rm -rf /usr/lib64/libcurl.so.4* #删除原有的动态库
[root@IM-web-03 curl-7.54.1]# ln -s /usr/local/curl/lib/libcurl.so.4* /usr/lib64/ #将新动态库放到对应位置
[root@IM-web-03 curl-7.54.1]# ldconfig #刷新动态库
[root@IM-web-03 ~]# cd php-5.3.29/ext/curl/
[root@IM-web-03 curl]# /usr/local/php5/bin/phpize
[root@IM-web-03 curl]# ./configure --with-curl=/usr/local/curl/ --with-php-config=/usr/local/php5/bin/php-config
[root@IM-web-03 curl]# make
[root@IM-web-03 curl]# make install
[root@IM-web-03 curl]# vim /usr/local/php5/etc/php.ini
添加:extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/curl.so"
[root@IM-web-03 curl]# /etc/init.d/php-fpm restart

升级后查看版本curl、PHPinfo版本信息



php平滑升级的更多相关文章

  1. 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版

    背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...

  2. Nginx在线服务状态下平滑升级或新增模块的详细操作

    今天应开发的需求,需要在Nginx增加一个模块,并不能影响现有的业务,所以就必须要平滑升级Nginx,好了,不多说了 1:查看现有的nginx编译参数 /usr/local/nginx/sbin/ng ...

  3. 让你的网站免费支持 HTTPS 及 Nginx 平滑升级

    为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密.简单点说在 ...

  4. nginx 平滑升级tengine

    wget  http://tengine.taobao.org/download/tengine-1.5.1.tar.gz //下载Tengine1.5.1版本 tar zxvf tengine-1. ...

  5. 源码安装nginx以及平滑升级

                                                           源码安装nginx以及平滑升级                               ...

  6. nginx平滑重启与平滑升级的方法

    如何实现nginx平滑重启与平滑升级? 平滑重启 kill -HUP `cat /usr/local/www/nginx/logs/nginx.pid` 平滑升级nginx: cd /yujialin ...

  7. Nginx的平滑重启和平滑升级

    一,Nginx的平滑重启如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,可以发送系统信号给Nginx主进程的方式来进行.在重启之前,要确认Nginx配置文件的语法是正确的. ...

  8. Nginx 的启动、停止、平滑重启、信号控制和平滑升级

    Nginx 的启动         假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/local ...

  9. Nginx1.8.0版本平滑升级新版本1.9.7

    原文:http://www.jb51.net/article/79878.htm 首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径: 复制代码代码如下: [root@local ...

  10. nginx的平滑升级

    一:解释nginx的平滑升级 随着nginx越来越流行,并且nginx的优势也越来越明显,nginx的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如stream四层代理功能, ...

随机推荐

  1. Questions(Updating)

    有时候做题时会遇到一些未学习的零碎知识点,或存疑的疑惑 为防止遗忘,在此记录 1.复数除法与线性变换的关系 Accepted Codeforces 8D(2018.5.9) Definition: 复 ...

  2. bzoj 1176: [Balkan2007]Mokia&&2683: 简单题 -- cdq分治

    2683: 简单题 Time Limit: 50 Sec  Memory Limit: 128 MB Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要 ...

  3. 【转 记录】python中的encode以及decode

    字符串编码常用类型:utf-8,gb2312,cp936,gbk等. python中,我们使用decode()和encode()来进行解码和编码 在python中,使用unicode类型作为编码的基础 ...

  4. Mac使用自带的屏幕共享实现VNC连接KVM时需要输入密码的问题解决

    别试了,下载这个软件VNC-Viewer,苹果自带的那个不行!!! https://www.realvnc.com/en/connect/download/viewer/macos/

  5. 图解PCB布线数字地、模拟地、电源地,单点接地抗干扰!

    我们在进行pcb布线时总会面临一块板上有两种.三种地的情况,傻瓜式的做法当然是不管三七二十一,只要是地 就整块敷铜了.这种对于低速板或者对干扰不敏感的板子来讲还是没问题的,否则可能导致板子就没法正常工 ...

  6. discuz功能列表

    导航旁边的+就可以把其加入到常用操作 上 首页 管理中心首页 文件校验,在线成员,管理团队留言.系统信息.开发 团队介绍. 常用操作管理 名称和URL 全局 站点信息 站点名称.网站名称,网站URL. ...

  7. VHDL语言实现的任意整数分频器

    fpga中,一般外接的晶振是50Mhz,如果电路中一个模块需要25mhz时钟,那么进行一个2分频,这个是相当容易的,下面是一种方法,还有可以用一个二进制计数器实现.这里就不写代码了.easy.同样的原 ...

  8. 【Go入门教程8】interface(interface类型、interface值、空interface{}、嵌入interface、反射)

    interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服. 什么是interface 简单 ...

  9. 怎样在MyEclipse上耍Chrome

    近期在忙着期末大作业,所以Windows App和算法的专栏都没有更了,随后这几天都会陆续開始更新的,欢迎大家的关注啦-- 在写期末大作业的时候遇到一个问题.一个新的特性在MyEclipse自带的浏览 ...

  10. MVC扩展Filter,通过继承HandleErrorAttribute,使用log4net或ELMAH组件记录服务端500错误、HttpException、Ajax异常等

    □ 接口 public interface IExceptionFilter{    void OnException(ExceptionContext filterContext);} Except ...