PHP 服务编译安装操作(CentOS 系统)

2015-03-29 0 By admin

CentOS 系统编译安装PHP-FPM 服务的编译安装过程操作记录。
主要涉及到“安装依赖包”、“编译安装前准备”、“编译安装”和“安装完成后的配置”等操作步骤。

一、安装依赖库

yum install -y gd gd-devel libjpeg* libpng* freetype* gmp* openssl-devel curl curl-devel libmcrypt libmcrypt-devel libmhash-devel libcurl-devel gcc gcc-c++ cmake make autoconf automake libxml2-devel bzip2-devel

二、编译前准备

将库文件复制到相应的库文件搜索目录。
cp /usr/lib64/libjpeg.so /usr/lib/
cp /usr/lib64/libpng.so /usr/lib/

编译安装需要的依赖库。
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7;./configure && make && make install;ldconfig

三、编译安装

./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-fpm \#激活PHP-FPM方式服务
--with-mcrypt \#加密解密编码函数库
--with-libxml-dir \#解析xml文件的库
--enable-mbstring \#Multi-Byte String 各种语言的编码
--with-curl \#利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等
--with-gmp \#开源数学运算库
--enable-soap \#SOAP 的全称为简单对象访问协议 (Simple Object Access Protocol)。它是一种基于 XML 的,可扩展的通信协议。
--enable-inline-optimization \#优化线程
--with-bz2 \
--with-zlib \#打开zlib库的支持,用于http压缩传输
--enable-sockets \#sockets支持
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-pcntl \#PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断(非Unix类系统不支持此模块)
--enable-mbregex \#正则表达式函数中多字节字符的支持
--with-mhash \#多种哈希算法,如MD5,SHA1,GOST 等;不可逆向的加密方式扩展库
--enable-bcmath \#BC高精准度函数库
--enable-zip \#zip压缩的支持
--with-pcre-regex \#正则表达式函数库
--with-gd \#支持多种图像格式的读写
--enable-gd-native-ttf \#激活本地 TrueType 字符串函数的支持;向图片写入字符串
--with-jpeg-dir \#对jpeg图片的支持
--with-png-dir \#对png图片的支持
--with-freetype-dir \#字体依赖库
--with-openssl#对称/非对称加解密,以及 PBKDF2、 PKCS7、 PKCS12、 X509 和其他加密操作。除此之外还提供了 TLS 流的实现

编译完成后,使用make生成服务文件。
make && make install

四、编译安装后配置

配置文件拷贝至服务目录。
cp php-5.3.3/php.ini-development /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

修改配置文件的配置指令值。
sed -i 's/user = nobody/user = www/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/group = nobody/group = www/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/pm.max_children = 50/pm.max_children = 600/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.start_servers = 20/pm.start_servers = 500/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.min_spare_servers = 5/pm.min_spare_servers = 400/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.max_spare_servers = 35/pm.max_spare_servers = 600/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.max_requests = 500/pm.max_requests = 2000/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;php_flag\[display_errors\] = off/php_flag\[display_errors\] = off/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pid = \/usr\/local\/php\/var\/run\/php-fpm.pid/pid = \/usr\/local\/php\/var\/run\/php-fpm.pid/g' /usr/local/php/etc/php-fpm.conf