Chinaunix首页 | 论坛 | 博客
  • 博客访问: 667696
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2022
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-23 11:16
个人简介

西邮大三狗!!!

文章分类

全部博文(87)

文章存档

2015年(47)

2014年(40)

分类: 架构设计与优化

2014-11-04 19:47:37

编译php,这个东西弄起来有点操蛋=。=
我们先对php加点料

加强系统对支持字符编码转换的功能
tar zxf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --libdir=/usr/local/lib64
make && make install

php 加密算法扩展库 mhash mcrypt
tar jxf libmcrypt-2.5.8.tar.bz2
cd libmcrypt-2.5.8
./configure --libdir=/usr/local/lib64
make && make install
cd libltdl
./configure --libdir=/usr/local/lib64 --enable-ltdl-install
make && make install

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure --libdir=/usr/local/lib64
make && make install
ldconfig /usr/local/lib64   更新我们的动态链接共享库

tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
./configure --libdir=/usr/local/lib64
make && make install
 ./configure 时可能会报这个错:/bin/rm: cannot remove `libtoolT’: No such file or directory直接忽略掉就行

下面编译我们的php
先解决我们的软件包依赖问题:yum install net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel -y
tar -jxf  php-5.4.12.tar.bz2(可以去网上down较新的版本,不过最新的不一定是最适合你的)
cd php-5.4.12
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql/ --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --without-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-libdir=lib64 --with-ldap --with-ldap-sasl --with-mcrypt --with-mhash
(看到这么参数,你吓尿了吗?)
make ZEND_EXTRA_LIBS='-liconv'(执行这条命令后,你可以去吃晚饭了!耗时有点久,我可是饿着肚子在写哦~)
make install
wget      pear是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,简单地说,
pear就是PHP的cpan。

/usr/local/php/bin/php  go-pear.phar   (这里按回车继续安装,CTRL+C放弃安装。)
cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
vim /usr/local/php/etc/php.ini (添加一条参数)
cgi.fix_pathinfo=0     防止 Nginx 文件类型错误解析漏洞
cd /usr/local/php/etc
vim php-fpm.conf.default php-fpm.conf   去掉以下几行的注释
pid = run/php-fpm.pid
pm.max_children = 50
pm.start_servers = 20
在生产环境中一定要做压力测试,找到最合适的进程数组合
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
/etc/init.d/php-fpm start
chkconfig php-fpm on
vi ~/.bash_profile
PATH=$PATH:/usr/local/mysql/bin:/usr/local/php/bin
source ~/.bash_profile
总之,记住源码编译的三部曲就OK了,如果要定制,记得修改参数!


阅读(2688) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~