好记性不如烂笔头,把自己安装的步骤记录下来

1、下载php-5.2.8以及php-5.2.8-fpm-0.5.10.diff.gz,放到/usr/local/src目录

2、解压php-5.2.8到/usr/local/src/php-5.2.8

3、php-fpm打补丁

cd /usr/local/src

gzip -cd php-5.2.8-fpm-0.5.10.diff.gz  | patch -d php-5.2.8 -p1

4、安装一些必要的东西

1) yum -y install curl curl-devel

2) libmcrypt

wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz(备注,这个版本安装始终报错,我换成2.5.7的就好,地址ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz)

编译时候报错 :configure: error: C++ compiler cannot create executables(没有安装c++) 解决方案: yum install gcc gcc-c++ gcc-g77

./configure --prefix=/usr/local/libmcrypt

make && make install

3) yum install mysql(只安装客户端,没有安装server端)

编译报错 :Cannot find MySQL header files under yes

解决方案:yum install -y mysql-devel

又报这个错:Cannot find libmysqlclient under /usr 。

    通过查找libmysqlclient,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so.16.0.0做的软连接,PHP默认是去的 /usr/lib/搜索,所以没有找到.找到问题了就好解决了.

    解决方案1: cp -rp /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so

解决方案2 : 编译时加上 --with-mysql=mysqlnd (未亲自验证 - -)

4、编译php

cd php-5.2.8

./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/lbi64/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-debug --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt-dir=/usr/local/libmcrypt --enable-ftp --with-openssl

结果报错,configure:error:xml2-config not found。 解决方案: yum install libxml2-devel

再次编译,还是报错。undefined reference to `_icon

需要安装iconv,官网文档http://www.gnu.org/software/libiconv/ ,下载安装到/usr/local/libiconv

记得每次重新编译的时候make clean下

再次编译,成功

(注意,有时候还是会出错,

  那么./configure … 之后,修改下 Makefile,找到其中的

  EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lldap -llber -lfreetype -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -  lcrypto -ldl -lz -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lxml2 -lz -lm -  lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt
  在最后面添加 -liconv

)

make && make install 成功

很奇怪的一点就是竟然没有php.ini,我用php --ini没找到任何的php.ini,但是还是能够正常使用php,看来它是使用的默认配置;好吧,我从网上down了一份放到/usr/local/php/etc目录下

然后稍微的修改下php-fpm.conf , 运行/usr/local/php/sbin/php-fpm start.启动了,可以通过nginx代理访问了,下面会讲下php-fpm的配置

5、php-fpm配置

发现一个诡异的问题,我把 pm.max_children 设置为1024,fpm的错误日志就会不停的报 “WARNING: [pool www] child 9730 exited with code 255 after 0.013489 seconds from start”

而我设置为1000(最新消息,1019也没问题。这尼玛坑爹货)的话就不会报错,这个太诡异了,网上google了半天,有很多人有类似的问题但是都没有解决方法

而且如果是1024的话。service php-fpm stop是不起作用的:

    kill -QUIT `cat $php_fpm_PID` 这句命令并不起作用,需要用到#killall -9 php-fpm才能杀掉php-fpm

而如果是1019的话就没问题,这这这这、我也无语了
    

centos php php-fpm install的更多相关文章

  1. CentOS 6.6 FTP install

    /************************************************************************* * CentOS 6.6 FTP install ...

  2. CentOS 6.6 nginx install

    /************************************************************************* * CentOS 6.6 nginx instal ...

  3. CentOS 6.6 MySQL install

    /************************************************************************* * CentOS 6.6 MySQL instal ...

  4. Installing Zabbix 3.2 in Centos 6.8 Clean Install Dependencies Errors

    ZABBIX Forums > Zabbix Discussions and Feedback > Zabbix Troubleshooting and Problems > Ins ...

  5. 两台centos,用yum install 安装,一台成功,一台失败

    记录一下问题: 两台centos,用yum install 安装软件,一台成功,一台失败 第一步:查看yum源  yum repolist enabled 疑问:centos安装的方法一致,但yum源 ...

  6. CentOS ./configure && make && make install详解

    码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). 在Linux中利用源码包安装软件最重要的就是要仔细阅读安装包当中的README  INST ...

  7. 转载--How to Install VMware Tools on CentOS 6.3

    源地址:http://www.ehowstuff.com/how-to-install-vmware-tools-on-centos-6-3/ VMware Tools is a group of u ...

  8. How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7

    How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7 The problem Google developers s ...

  9. How to Install Apache Tomcat 8.5 on CentOS 7.3

    How to Install Apache Tomcat 8.5 on CentOS 7.3 From: https://www.howtoforge.com/tutorial/how-to-inst ...

  10. centos source install

    CentOS Kernel Source Install Mar 12th, 2012 | Comments CentOS kernel source install, first off if yo ...

随机推荐

  1. bat 脚本传递参数测试

    start  CommissionMQMonitorService.exe   MMM 命令   执行器                                           参数

  2. Introducing Microsoft Sync Framework: Sync Services for File Systems

    https://msdn.microsoft.com/en-us/sync/bb887623 Introduction to Microsoft Sync Framework File Synchro ...

  3. 【Todo】字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树

    另开一文分析字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树. 先来一个汇总, 算法: 本文中提到的字符串匹配算法有:KMP, BM, Horspool, Sunday, BF, ...

  4. [ionic开源项目教程] - 第6讲 过滤器filter的使用

    过滤器filter的使用 1.回顾 再熟悉一下tab1.html的代码: <div class="list"> <a ng-repeat="item i ...

  5. Elasticsearch学习笔记

    Why Elasticsearch? 由于需要提升项目的搜索质量,最近研究了一下Elasticsearch,一款非常优秀的分布式搜索程序.最开始的一些笔记放到github,这里只是归纳总结一下. 首先 ...

  6. PHP学习笔记06——面向对象版图形计算器

    index.php 用于显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h ...

  7. scala学习笔记(9):Scala函数(2)

    1 指令式编程&函数式编程 指令式:imperative 风格编程.指令式风格,是你常常使用像 Java,C++和 C 这些语言里用的风格,一次性发出一个指令式的命令,用循环去枚举,并经常改变 ...

  8. jQuery事件绑定方式(转)

    bind() 简要描述 bind()向匹配元素添加一个或多个事件处理器. 使用方式 $(selector).bind(event,data,function) event:必需项:添加到元素的一个或多 ...

  9. [转载] 老版本ubuntu 更新源

    untu的普通版本支持的时间都有限,过了支持的时间,更新源都会被停用,比如ubuntu9.10原来的源都失效了(包括官方源,类似ustc的第 三方源,因为这些第三方源也是和官方源同步的).因此,直接用 ...

  10. 一:AndEngine的小例子

    首先导入架包,下载:http://download.csdn.net/detail/duancanmeng/4060082 lib文件夹中 像我们写android程序entends Activity一 ...