部分内容来源于网上,下载以下软件包,可以选择最新的
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gzwget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2 wget http://blog.s135.com/soft/linux/nginx_php/pdo/pdo_mysql-1.0.2.tgz wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagemagick.tar.gz wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.3.0.tgz
编译安装php所需的支持库
tar zxvf libiconv-1.13.1.tar.gzcd libiconv-1.13.1/./configure --prefix=/usr/localmakemake installcd ../tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8/./configuremakemake install/sbin/ldconfigcd libltdl/./configure --enable-ltdl-installmakemake installcd http://www.cnblogs.com/tar zxvf mhash-0.9.9.9.tar.gzcd mhash-0.9.9.9/./configuremakemake installcd ../ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.laln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.soln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.aln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.laln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.soln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-configtar zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8//sbin/ldconfig./configuremakemake installcd ../
下载php 5.3.8.
mkdir /usr/local/webserver wget http://cn.php.net/get/php-5.3.8.tar.bz2/from/this/mirrortar jfvx php-5.3.8.tar.bz2cd php-5.3.8
开始编译
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc \--with-mysql=/usr/local/webserver/mysql \--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config \--with-iconv-dir=/usr/local \--with-freetype-dir --with-jpeg-dir --with-png-dir \--with-zlib --with-libxml-dir=/usr --enable-xml \--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 \--with-gd --enable-gd-native-ttf --with-openssl --with-mhash \--enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl \--with-xmlrpc --enable-zip --enable-soap
make zend_extra_libs='-liconv'make install
cp php.ini-production /usr/local/webserver/php/etc/php.inicp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpmcp sapi/fpm/php-fpm.conf /usr/local/webserver/php/etc/
安装php扩展库
tar zxvf memcache-2.2.5.tgzcd memcache-2.2.5//usr/local/webserver/php/bin/phpize./configure --with-php-config=/usr/local/webserver/php/bin/php-configmakemake installcd ../tar jxvf eaccelerator-0.9.6.1.tar.bz2cd eaccelerator-0.9.6.1//usr/local/webserver/php/bin/phpize./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-configmakemake installcd ../tar zxvf pdo_mysql-1.0.2.tgzcd pdo_mysql-1.0.2//usr/local/webserver/php/bin/phpize./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysqlmakemake installcd ../tar zxvf imagemagick.tar.gzcd imagemagick-6.5.1-2/./configuremakemake installcd ../tar zxvf imagick-2.3.0.tgzcd imagick-2.3.0//usr/local/webserver/php/bin/phpize./configure --with-php-config=/usr/local/webserver/php/bin/php-configmakemake installcd ../
需要修改php.ini和php-fpm.conf两个文件
在php.ini文件中添加以下字段
extension_dir = /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/extension = memcache.soextension = pdo_mysql.soextension = imagick.so
[eaccelerator]zend_extension=/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.soeaccelerator.shm_size=64eaccelerator.cache_dir=/usr/local/webserver/eaccelerator_cacheeaccelerator.enable=1eaccelerator.optimizer=1eaccelerator.check_mtime=1eaccelerator.debug=0eaccelerator.filter=eaccelerator.shm_max=0eaccelerator.shm_ttl=3600eaccelerator.shm_prune_period=3600eaccelerator.shm_only=0eaccelerator.compress=1eaccelerator.compress_level=9
php-fpm取消以下行的注释
[global]pid = run/php-fpm.piderror_log = log/php-fpm.logemergency_restart_threshold = 0[www]listen = 127.0.0.1:9000listen.allowed_clients = 127.0.0.1user = nobodygroup = nobodypm = dynamicpm.max_children = 50pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35
修改/etc/sysctl.conf文件,添加以下内容
kernel.shmmax = 134217728
启动php-fpm进程
service php-fpm start
附注:如果出现编译无法进行的情况,请根据报错信息来排查,例如libldap.so默认是放在/usr/lib64下,出现这个问题,只需将该文件复制过去就ok了。