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.”,

只好自己下载安装,百度了一阵子找到官网,logo是一个牛头  “http://www.gnu.org/software/libiconv/”  国内镜像 http://mirror.hust.edu.cn/gnu/libiconv/ 于是下载自己编译安装
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速度提升一个台阶。

 

posted @ 2016-01-16 14:52  scofi  阅读(11365)  评论(0编辑  收藏  举报