博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos php php-fpm install
阅读量:5298 次
发布时间:2019-06-14

本文共 3006 字,大约阅读时间需要 10 分钟。

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

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,官网文档 ,下载安装到/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的话就没问题,这这这这、我也无语了

    

转载于:https://www.cnblogs.com/sky20081816/p/3161285.html

你可能感兴趣的文章
TCL:表格(xls)中写入数据
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
bash使用规则
查看>>
AVL数
查看>>
全栈12期的崛起之捡点儿有用的说说
查看>>
属性动画
查看>>
标识符
查看>>
路由跟踪工具0trace
查看>>
给大家分享一张CSS选择器优选级图谱 !
查看>>
Win7中不能调试windows service
查看>>
boost库使用:vs2013下boost::container::vector编译出错解决
查看>>
通过httplib2 探索的学习的最佳方式
查看>>
快来熟练使用 Mac 编程
查看>>
Node.js 入门:Express + Mongoose 基础使用
查看>>
plsql使用,为什么可以能看见其他用户的表
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
使用pager进行分页
查看>>
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>