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速度提升一個台階。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM