http://www.linux-centos.com/2014/11/16/%E7%BC%96%E8%AF%91%E5%8D%87%E7%BA%A7%E4%BB%8Ephp5-2-17%E5%88%B0php5-4-35/

编译升级从PHP5.2.17到PHP5.4.35

1. 备份/usr/local/php

 
1
tar zcvf /bak/php5.2.17.tar.gz /usr/local/php

2. 备份/etc/php.ini

 
1
cp /etc/php.ini /etc/php.5.2.17.ini.bak

3. 备份

 
1
cp /usr/local/apache/modules/libphp5.so libphp5.so.bak

4. 开始编译升级PHP5.4.35

先删除/usr/local/php

 
1
rm -rf /usr/local/php

安装依赖库

 
1
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd* bzip2 bzip2-devel ncurses ncurses-devel net-snmp-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libmcrypt libmcrypt-devel

建立一个软链接

 
1
2
3
4
5
## 64位
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64
 
## 32位
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib

下载、编译、安装PHP5.4.35

 
1
2
3
4
5
6
7
8
9
10
11
cd /usr/local/src
 
wget http://cn2.php.net/get/php-5.4.35.tar.gz/from/this/mirror
 
tar zxvf php-5.4.35.tar.gz
 
cd php-5.4.35
 
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --with-freetype-dir --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --enable-session --with-gettext
 
make && make install

配置php.ini

 
1
2
3
4
5
6
7
8
cp php.ini-production /usr/local/php/etc/php.ini  #复制php配置文件到安装目录
rm -rf /etc/php.ini   #删除系统自带的配置文件
ln -s /usr/local/php/etc/php.ini /etc/php.ini   #创建配置文件软链接
 
## 修改/etc/php.ini
date.timezone = PRC
expose_php = Off
display_errors = Off

重启APACHE测试是否安装成功

 
1
service httpd restart

安装APC

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cd /usr/local/src
wget http://pecl.php.net/get/APC-3.1.9.tgz
tar zxvf APC-3.1.9.tgz
cd APC-3.1.9
/usr/local/php/bin/phpize
./configure --enable-apc --with-php-config=/usr/local/php/bin/php-config
make && make install
 
vim /etc/php.ini
 
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
extension = apc.so
; APC
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on
 
## 验证APC是否正常安装
php -m | grep apc

安装完成以后请参考编译安装PHP5.2.17+MySQL5.5.34+Apache2.2.25对php.ini进行配置

可能出现的问题

1. “/usr/local/src/php-5.4.35/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory”

 
1
2
3
4
5
## 64位
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64
 
## 32位
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib

2. make install的时候出现”cp: cannot stat `ext/phar/phar.phar': No such file or directory”

进入/usr/local/src/php/ext目录

 
1
cp phar.php phar.phar

3. configure: error: Cannot find ldap libraries in /usr/lib.

 
1
cp -frp /usr/lib64/libldap* /usr/lib/

编译升级php的更多相关文章

  1. Centos7 64位 -- glibc-2.29 编译升级方法(已成功)

    某软件出现漏洞,需要升级解决(忘了哪个)结果提示glibc版本过低. 懵懂无知的我以为glibc想其他软件一样编译升级一下就好.. 结果? 重装系统! 说真的,如非必要(或学习),请勿升级 glibc ...

  2. 【转】Centos下编译升级安装Boost

    https://www.xingchenw.cn/article/191 Centos下编译升级安装Boost 首先在官网现在相应的包 https://www.boost.org/users/down ...

  3. Linux 下编译升级 Python

    一.Centos下升级python3.4.3 1.下载安装 wget http://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz wget http ...

  4. 编译升级php之路(5.5.7 到 5.5.37)

    为在一台旧服务器上能使用slim,共经历了: 1.安装composer(需要高版本php,原来是5.5.7) 2.升级php版本到5.5.37(编译出错,准备使用docker) 3.升级centos内 ...

  5. AMH4.2免费版手动编译升级Nginx1.8版本方法

    从AMH免费版本停留在4.2版本之后就没有进行更新和升级,而且官方提供的解决文档也比较少,毕竟免费且没有盈利的产品还是没有多少兴趣的.但是,对于大部分网站环境来说,安装和使用AMH4.2免费版本还是够 ...

  6. CentOS6.6源码编译升级GCC至4.8.2

    升级前提 源码编译需要至少要有一个可用的gcc编译器. 可以用过yum自动安装或者手动下载rpm包安装. 通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相 ...

  7. Linux 编译升级 FFmpeg 步骤

    如果服务器已经安装了一个 Ffmpeg 的话,比如已安装在 /usr/local/ffmpeg 目录.Linux下版本升级步骤如下: 1.下载 ffmpeg-*.tar.gz到 Ffmpeg 官网 h ...

  8. CentOS自行编译升级Git

    上一篇升级Git的方式是通过更改yum的源,然后通过yum来安装,那么对于喜欢折腾的人来说,怎么通过Git的源代码自行安装呢? 我安装的是CentOS-7-x86_64-1908,自带的git是1.8 ...

  9. golang基于当前1.9版本进行源码编译升级到1.10

    一.起因 golang出了最新的1.10版本,而刚出的vgo也是需要基于该最新版本的.为了测试vgo,因此需要将我的v1.9升级到v1.10版本. 安装过golang的同学都知道,golang常用的有 ...

随机推荐

  1. Scala中的Map

    映射 映射是对偶的集合. 声明映射 映射是对偶的集合. a.声明映射 b.映射中的键值对称作对偶,用( , )表示 c.当映射中不存在key时,取值会报错,解决方案是使用 contains方法,或者g ...

  2. applicationContext-mail.xml 模板

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  3. 移动平台的meta标签-----神奇的功效(转)

    对于桌面平台web布局中大家对meta标签再熟悉不过了,它永远位于 head 元素内部,对做SEO的朋友一定对meta有种特殊的感情吧,今天我们就来说说移动平台的meta标签,在移动平台meta标签究 ...

  4. nodejs3-事件zepto.js事件

    Event代表事件名,listener代表事件处理函数,括号内的参数代表可选参数: addListener(event,listener):对指定事件绑定事件处理函数 on(同上):addListen ...

  5. js限制文本框输入字数

    //js代码 <script type="text/javascript"> function checkLen(term){ document.all.termLen ...

  6. winform无边框拖动

    [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("use ...

  7. response小结(三)—输出随机图片(验证码功能实现)

    本文是一个很简单的向网页上输出验证码的实现喲!通过注释解释清楚了每一步! Myeclipse下的Package Explorer显示文件结构如下: ResponseDemo.java实现了输出随机图片 ...

  8. DOS批处理命令-pause

    “pause”用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行. 语法: pause 简单一个pause,不附带任何参数. 执行pause以后会提示一句话[按任意键继续执行] ...

  9. Objective-C 【点语法】

    ------------------------------------------- 点语法的使用 // //  点语法的使用 // //  点语法:   xcode的一种特性,xcode帮我们做代 ...

  10. (转)DockPanel的一点点改进

    1.当双击Tab时,原先是直接把当前Tab所表示的这个窗体,从主窗体的框架上分离现来,成为一个浮动的窗体.这不是我想要的,我把它改成了双击关闭.在DockPaneStripBase的WndProc方法 ...