编译安装php-5.4.44

1. 首先,安装必要的库文件,一面编译被打断:

yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel openssl openssl-devel openldap openldap-devel openldap-clients openldap-servers libmcrypt libmcrypt-devel libaio libaio-devel

本来不需要这么多的,为了避免以后出现其他错误,建议全部扩展。需要epel源,具体方法参考:http://www.cnblogs.com/llius/p/5105051.html

2. 下载php:

# cd /usr/local/src
# wget http://au1.php.net/distributions/php-5.4.44.tar.bz2
# tar jxf php-5.4.44.tar.bz2

3. 新建php-fpm普通用户:

# useradd -s /sbin/nologin -M php-fpm     //-s /sbin/nologin:禁止php-fpm用户登录,-M:不在/home下生成php-fpm的家目录

4. 参数初始化:

# cd php-5.4.44
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \ //该选项对php解析非常重要,正确的make && make install 后会在/usr/local/apache2/modules目录生成libphp5.so
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6

  保存配置文件后,检验配置是否正确的方法为:

# /usr/local/php/sbin/php-fpm -t   //返回如下结果,说明没有错误
NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

  因为路径长,可以设立一个别名:

# vim ~/.bashrc   //在alias队列后面添加如下内容:
alias php-fpm='//usr/local/php/sbin/php-fpm'
# source !$ //即: source ~/.bashrc

7. php的启动(需要拷贝启动脚本):

# cp /usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm   //拷贝启动脚本
# chmod 755 /etc/init.d/php-fpm //需有x权限
# service php-fpm start //启动
Starting php-fpm  done //返回如下结果,说明开启成功
# chkconfig add php-fpm //这两步是添加开机启动
# chkconfig php-fpm on
# ps aux |grep php-fpm //应该有20余个php-fpm进程,因为在上面的配置文件里面定义了: pm.start_servers = 20

编译安装php-5.4.44的更多相关文章

  1. centos 7.0 编译安装php 7.0.3

    php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...

  2. 编译安装PHP7并安装Redis扩展Swoole扩展

    编译安装PHP7并安装Redis扩展Swoole扩展 在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么 ...

  3. centos 7.0 编译安装php 5.6.7

    编译安装php参考资料 MySQL PHP API http://dev.mysql.com/doc/apis-php/en/index.html nginx + php +mysql 最简单安装 官 ...

  4. 编译安装rabbitmq服务端

    有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装   总括: 需要以下步骤:   1.安装erlange.因为 ...

  5. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.132013-10-24 15:31:12标签:服务器 防火墙 file 配置文件 written 一.配置好I ...

  6. Centos5.8下编译安装PHP5.4和memcached, phalcon, yaf, apc

    安装GIT 需要先安装gcc-c++ (sudo yum install gcc-c++)sudo yum install gettext-devel expat-devel cpio perl op ...

  7. CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

    首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segm ...

  8. mac下Nginx+lua模块编译安装

    Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...

  9. Linux下指定版本编译安装LAMP

    说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...

随机推荐

  1. 51Nod 1686 第K大区间(离散化+尺取法)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 题意: 思路: 第K大值,所以可以考虑二分法,然后用尺取法去扫描, ...

  2. sonar runner的配置

    #Configure here general information about the environment, such as SonarQube DB details for example ...

  3. postgres10.2时区研究

    搭建两个虚拟环境,操作系统均是cents7. 环境A: 使用timedatectl命令查看时区为 Time zone: Asia/Shanghai (CST, +0800). 本地数据库时区(show ...

  4. 线程池ThreadPoolExecutor里面4种拒绝策略

    ThreadPoolExecutor类实现了ExecutorService接口和Executor接口,可以设置线程池corePoolSize,最大线程池大小,AliveTime,拒绝策略等.常用构造方 ...

  5. ERROR: cannot launch node of type [robot_pose_publisher/robot_pose_publisher]: robot_pose_publisher

    sudo apt-get install ros-indigo-robot-pose-publisher

  6. python 判断字典是否为空

    my_dict = {} if not bool(my_dict): print("Dictionary is empty")

  7. Java中的String和StringBuffer

    在任何编程语言中,字符串都是我们编写程序时不可避免要用到的常用的数据类型之一. 对于Java初学者而言,当谈到String和StringBuffer的区别时,通常都会有些困惑. 而要弄清楚两者之间的区 ...

  8. oracle表的统计信息完全正确,执行计划无故改变。原厂人员如是回复

    就像在电话里提到的那样,Oracle内部的优化器是根据一系列的内部算法基于表上的统计信息来产生执行计划的.对于特别复杂的SQL语句,Oracle的优化器有一定几率不能得到最优的执行计划(因为机器代码实 ...

  9. 057——VUE中vue-router之路由参数默认值的设置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. $'\r': command not found in Cygwin

    这是因为windows下的回车符改为Unix下的回车符,用以下命令可以批量修改. dos2unix ./*