Centos6.6下PHP-FPM5.6安装,外加多种扩展
安装PHP本身不难,难得是安装各种扩展,由于操作系统和PHP版本环境差异,安装方法大同小异,下面我以PHP-FPM5.6为示例,一步步安装,期间也遇到许多问题,我都一一列出,希望对大家有帮助。
1、安装扩展
yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autoconf net-snmp-devel vim wget sysstat lrzsz man tree mysql-devel ntpdate rsync libxml2 libcurl libcurl-devel libxml2-devel zlib zlib-devel libjpeg* pcre-devel gd gd-devel bind-utils
2、下载PHP-FPM5.6
http://museum.php.net/php5/ 这个地址内包含了几乎所有的PHP版本,我们从中选择 http://museum.php.net/php5/php-5.6.2.tar.gz
wget http://museum.php.net/php5/php-5.6.2.tar.gz tar zxvf php-5.6.2.tar.gz
cd php-5.6.2
3、编译安装
这里要注意/opt/php5.6 是PHP的安装路径 ,可以根据需要修改
'./configure' '--prefix=/opt/php5.6' '--with-config-file-path=/opt/php5.6/etc' '--with-iconv=/usr/local/libiconv' '--enable-fpm' '--with-libxml-dir' '--with-zlib' '--with-curl' '--enable-dba' '--enable-ftp' '--with-freetype-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib-dir' '--enable-gd-native-ttf' '--with-gettext' '--enable-mbstring' '--with-mcrypt' '--with-mysql' '--with-mysqli' '--enable-pcntl' '--with-pdo-mysql' '--without-pdo-sqlite' '--enable-shmop' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-zip'
这个时候遇到报错 “configure: error: Please reinstall the iconv library.” 说明还缺少library,用yum install -y libiconv 安装结果报错误 “No package libiconv available.”,
wget http://mirror.hust.edu.cn/gnu/libiconv/libiconv-1.10.tar.gz tar zxvf libiconv-1.10.tar.gz cd libiconv-1.10 ./configure --prefix=/usr/local/libiconv make make install
完成之后继续运行PHP的"./configure ..." ,结果又遇到报错:“又遇到报错“configure: error: mcrypt.h not found. Please reinstall libmcrypt.” ,好像又缺少libmcrypt依赖,继续百度解决,看了几篇文章之后说要安装3个依赖,依次下载(#参考文章参考: http://blog.csdn.net/21aspnet/article/details/8203447)
wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz 解压之后 ./configure make make install wget http://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz 解压之后 ./configure make make install wget http://nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz #运行./configure 报错 configure: error: *** libmcrypt was not found ,继续百度找到解决方法:”先运行 export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH,“ export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH ./configure make make install
回到PHP目录,之后继续执行"./configure ...", OK 终于没有报错(注意:系统提示让你make test ,我试了下 估计跑了40分钟才结束等的好苦,应该不运行也没有关系)
make make install
到这里PHP以及基础扩展已经安装完成,但是还有一些扩展在开发过程中还是需要的,例如我们用到了 memcache 、memcached、redis和couchbase 。OK,我们继续百度:
4、安装memcache扩展
安装memcache扩展有一个简单方法,切换到/opt/php5.6/bin 目录下 之后用 ./pecl install memcache 懒方法安装
cd /opt/php5.6/bin ./pecl install memcache
#在php.ini里加上 extension=memcache.so
OK,安装成功
5、安装memcached 扩展
安装memcached 扩展要麻烦些,要安装两个软件
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar xzvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make
make install
上面安装依赖库下面还要安装扩展本身:
wget http://pecl.php.net/get/memcached-2.2.0.tgz tar xzvf memcached-2.2.0.tgz cd memcached-2.2.0 /opt/php5.6/bin/phpize #根据我理解应该生成configure文件 ./configure --enable-memcached --with-php-config=/opt/php5.6/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached --disable-memcached-sasl make make install #在php.ini里加上 extension=memcached.so
6、安装redis扩展
redis估计用的比较广泛,redis扩展必须安装
wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz #解压后进入目录,运行: /opt/php5.6/bin/phpize ./configure --with-php-config=/opt/php5.6/bin/php-config make make install #在php.ini里加上 extension=redis.so
7、安装couchbase扩展
couchbase是memcache的替代品,如果不需要可以不安装。
首先用懒方法试试看,切换/opt/php5.6/bin
./pecl search couchbase #ok可以搜索到 ./pecl install couchbase 结果报错:configure: error: the couchbase extension requires libcouchbase (couchbase扩展需要 libcouchbase) ERROR: `/tmp/pear/temp/couchbase/configure' failed 请教度娘,需要安装libcouchbase扩展依赖 # wget -O/etc/yum.repos.d/couchbase.repo http://packages.couchbase.com/rpm/couchbase-centos62-x86_64.repo # yum install -y libcouchbase-devel 之后继续 ./pecl install couchbase 结果又出现报错: /tmp/pear/temp/pear-build-defaultuserwigTEW/couchbase-2.1.0/libtool: line 1283: fastlz/fastlz.loT: No such file or directory mkdir fastlz/.libs mkdir: cannot create directory `fastlz/.libs': No such file or directory make: *** [fastlz/fastlz.lo] Error 1 ERROR: `make' failed
这下看来用懒方法安装不成功,踩了个坑,我们换条路,直接下载之后编译安装吧,注意如果直接下载libcouchbase扩展依赖,还是要安装的否则会报错:
# wget -O /etc/yum.repos.d/couchbase.repo http://packages.couchbase.com/rpm/couchbase-centos62-x86_64.repo # yum install -y libcouchbase-devel
另外一条路:
wget http://pecl.php.net/get/couchbase-2.1.0.tgz 解压后进入目录,运行: /opt/php5.6/bin/phpize ./configure --with-php-config=/opt/php5.6/bin/php-config --with-couchbase=/usr/local/libcouchbase/ 报了一个警报:configure: WARNING: unrecognized options: --with-couchbase 应该没关系 make make install 在php.ini里加上 extension=couchbase.so
OK,安装成功。查看已经安装扩展:
cd /opt/php5.6/bin ./php -m
[PHP Modules] Core couchbase ctype curl date dba dom ereg fileinfo filter ftp gd gettext hash iconv json libxml mbstring mcrypt memcache mysql mysqli mysqlnd pcntl pcre PDO pdo_mysql Phar posix redis Reflection session shmop SimpleXML sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlwriter zip zlib [Zend Modules]
这里我没有安装opcache Zend扩展有兴趣同学可以看看,安装之后可以使PHP速度提升一个台阶。