编译php-5.3.6的时候需要先打一个内存泄露的补丁,具体的操作如下

tar vzxf suhosin-0.9.32.1.tar.gz

tar vjxf php-5.3.6.tar.bz2

cd php-5.3.6

patch -p1 < ../suhosin-patch-5.3.4-0.9.10.patch

cp -R ../suhosin-0.9.32.1 ext/suhosin

./buildconf --force

编译php之前需要先编译一下mcrypt库,具体的操作如下

tar vzxf libmcrypt-2.5.7.tar.gz

cd libmcrypt-2.5.7

./configure --disable-posix-threads --prefix='/usr/local/libmcrypt-2.5.7'

make && make install

echo '/usr/local/libmcrypt-2.5.7/lib'>>/etc/ld.so.conf.d/user-defined.conf

ldconfig

编译安装mcrypt库之后,就可以进行php-5.3.6的编译了,具体命令如下

cd php-5.3.6

export LDFLAGS='-L/usr/local/libmcrypt-2.5.7/lib'

./configure  --prefix=/usr/local/php-5.3.6 --with-config-file-path=/usr/local/php-5.3.6/etc/ --with-mcrypt='/usr/local/libmcrypt-2.5.7' --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --disable-rpath --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-openssl --enable-sockets --enable-zip --disable-ipv6 --without-sqlite --without-pear --disable-pdo --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-libdir=lib64 --without-iconv --enable-soap --enable-suhosin

make && make install

unset LDFLAGS

mkdir -p /data/logs/

cd /usr/local

ln -s /usr/local/php-5.3.6 php

php编译完成之后,还需要编译项目所需的三个插件,首先是memcached-1.0.2插件,具体命令如下

tar vzxf memcached-1.0.2.tgz

cd memcached-1.0.2

/usr/local/php-5.3.6/bin/phpize

./configure --enable-memcached --with-php-config=/usr/local/php-5.3.6/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached-1.0.2/

make && make install

接下来需要编译的是php的mongodb-mongo-php-driver插件,具体命令如下

tar vzxf mongodb-mongo-php-driver-1.1.0.tar.gz

cd mongodb-mongo-php-driver-b177907/

/usr/local/php-5.3.6/bin/phpize

./configure --enable-mongo --with-php-config=/usr/local/php-5.3.6/bin/php-config

make && make install

最后还需要编译一下php的eaccelerator插件,具体命令如下

tar vjxf eaccelerator-0.9.6.1.tar.bz2

cd eaccelerator-0.9.6.1

/usr/local/php-5.3.6/bin/phpize

./configure --enable-eaccelerator --with-php-config=/usr/local/php-5.3.6/bin/php-config

make && make install

复制php-fpm.conf与php.ini到/usr/local/php-5.3.6/etc目录,并复制fpm到/etc/init.d目录下,并添加可执行权限。

PHP编译的更多相关文章

  1. TODO:macOS编译PHP7.1

    TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...

  2. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  3. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  4. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  5. Android注解使用之注解编译android-apt如何切换到annotationProcessor

    前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...

  6. Hawk 6. 编译和扩展开发

    Hawk是开源项目,因此任何人都可以为其贡献代码.作者也非常欢迎使用者能够扩展出更有用的插件. 编译 编译需要Visual Stuido,版本建议使用2015, 2010及以上没有经过测试,但应该可以 ...

  7. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...

  8. 在Windows上编译和调试CoreCLR

    生成CoreCLR - Windows篇 本文的唯一目的就是让你运行Hello World 运行环境 Window 7+ Visual studio 2015 确保C++ 工具已经被安装,默认是不安装 ...

  9. 【踩坑速记】二次依赖?android studio编译运行各种踩坑解决方案,杜绝弯路,总有你想要的~

    这篇博客,只是把自己在开发中经常遇到的打包编译问题以及解决方案给大家稍微分享一下,不求吸睛,但求有用. 1.大家都知道我们常常会遇到dex超出方法数的问题,所以很多人都会采用android.suppo ...

  10. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

随机推荐

  1. 篇3 安卓app自动化测试-搞定界面元素

    篇3                 安卓app自动化测试-搞定界面元素 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试>的第三 ...

  2. HTML5 模拟现实物理效果

    Ball Pool 是一个基于 HTML5 技术的实验,模拟现实物理效果,让你在 Web 中感受自然物体的运动.玩法介绍:可以随意拖动圆球.点击页面背景.晃动浏览器.双击页面背景或者按住鼠标左键,有不 ...

  3. Javascript中Array(数组)对象常用的几个方法

    Javascript中Array数组的几个常用方法 pop()  --获取数组中末尾的元素 shift() --获取数组中首位元素 push() --在数组中末尾增加元素 slice()  --按照下 ...

  4. Unity 多屏(分屏)显示,Muti_Display

    Unity 多屏(分屏)显示,Muti_Display  最近项目有个需求,主要用于在展厅的展示游戏. 比如,在一个很大的展厅,很大的显示屏挂在墙上,我们不可能通过操作墙上那块显示器上的按钮来控制游戏 ...

  5. Java 7之基础 - 强引用、弱引用、软引用、虚引用

    1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.如下: Object o=new Object();   //  强引用 当内 ...

  6. MFC基础程序设计VS2015 最新02

    视频教程地址观看:http://pan.baidu.com/s/1mhKQ6kK 对于每个函数的帮助资料都应该详细阅读:a)简要说明:能够快速了解函数的功能:b)参数:每一个参数的功能都应该了解它的含 ...

  7. Centos6.5安装memcached

    1.检查libevent 首先检查系统中是否安装了libevent(Memcache用到了libevent这个库用于Socket的处理). # rpm -q libevent libevent-1.4 ...

  8. .Net程序员学用Oracle系列(25):触发器详解

    1.触发器理论 1.1.触发器的应用场景 1.2.触发器的类型 1.3.DML 触发器的触发顺序 2.触发器实战 2.1.创建触发器 2.1.1.创建 DML 触发器 2.1.2.创建 DDL 触发器 ...

  9. NancyFx 2.0的开源框架的使用-ModelBinding(实现绑定)

    NancyFx框架中使用绑定模型 新建一个空的Web程序 然后安装Nuget库里面的包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Spark 并在We ...

  10. Day3-函数及作用域

    一.函数定义:一组代码片段用函数名封装起来,通过函数名的方式调用执行. 特性: 1.减少重复代码 2.使程序易扩展 3.使程序易维护 语法定义: def sayhi(): print("he ...