基本環境約定:
1.CentOS5.8 x86_64位 採用最小化安裝,系統經過了基本優化篇
2.mysql安裝路徑:/usr/local/mysql
3.源碼包存放位置:/home/oldboy/tools
4.源碼包編譯安裝位置:/application
如果你清楚lanp環境搭建,參考以下文章:
A.php和apache編譯安裝方法
B.mysql5.1編譯方法和步驟
一.PHP擴展安裝實驗安裝環境
1.檢查對應的版本
cat /etc/redhat-release
uname -m
/application/apache/bin/apachectl -v
/application/php/bin/php -v
mysqladmin -uroot -pmybaby3306 -S /data/3306/mysql.sock "version"
2.準備環境
[root@ser200 ~]# cat /etc/redhat-release
CentOS release 5.10 (Final)
[root@ser200 ~]# uname -m
x86_64
[root@ser200 ~]# /application/apache/bin/apachectl -v
Server version: Apache/2.2.29 (Unix)
Server built: Oct 9 2014 09:44:14
[root@ser200 ~]# /application/php/bin/php -v
PHP 5.3.29 (cli) (built: Oct 19 2014 10:12:02)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
[root@ser200 ~]# mysqladmin -uroot -pmybaby3306 -S /data/3306/mysql.sock "version"
mysqladmin Ver 8.42 Distrib 5.1.73, for unknown-linux-gnu on x86_64
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.1.73-log
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /data/3306/mysql.sock
Uptime: 6 hours 51 min 58 sec
Threads: 1 Questions: 13 Slow queries: 0 Opens: 14 Flush tables: 1 Open tables: 8 Queries per second avg: 0.0
二.功能和加速模塊安裝
1.eAccelerator加速模塊,是一個自由開放源碼php加速器,優化和動態內容緩存,提高了php腳本的緩存性能,使得PHP腳本在編譯的狀態下,對服務器的開銷幾乎完全消除。 它還有對腳本起優化作用,以加快其執行效率。使您的PHP程序代碼執效率能提高1-10倍。
2.用到命令:
cd /home/oldboy/tools/
tar xzf eaccelerator-eaccelerator-42067ac.tar.gz
cd eaccelerator-eaccelerator-42067ac
/application/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config
make && make install
3.安裝過PDO擴展爲PHP訪問數據庫定義了一個輕量級的、一致性的接口,它提供了一個數據訪問抽象層,這樣,無論使用什麼數據庫,都可以通過一致的函數執行查詢和獲取數據。PDO隨PHP5.1發行,在PHP5.0的PECL擴展中也可以使用,無法運行於之前的PHP版本。程
[root@ser200 tools]# rz
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring eaccelerator-eaccelerator-42067ac.tar.gz...
100% 128 KB 128 KB/sec 00:00:01 0 Errors
[root@ser200 tools]# tar xzf eaccelerator-eaccelerator-42067ac.tar.gz
[root@ser200 tools]# cd eaccelerator-eaccelerator-42067ac
[root@ser200 eaccelerator-eaccelerator-42067ac]# /application/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@ser200 eaccelerator-eaccelerator-42067ac]# ./configure --enable-eaccelerator=shared \
> --with-php-config=/application/php/bin/php-config
[root@ser200 tools]# make && make install
[root@ser200 no-debug-zts-20090626]# !1047
cd /application/php/lib/php/extensions/no-debug-zts-20090626/
[root@ser200 no-debug-zts-20090626]# ll
total 420
-rwxr-xr-x 1 root root 425136 Oct 27 19:03 eaccelerator.so
三.memcache安裝
1.介紹:
Memcache是一個高性能的分佈式的內存對象緩存系統,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。
2.安裝命令:
cd /home/oldboy/tools/
wget http://www.memcached.org/files/memcached-1.4.17.tar.gz
tar zxf memcached-1.4.17.tar.gz
cd memcached-1.4.17
./configure --with-php-config=/application/php/bin/php-config
make && make install
3.安裝過程:
[root@ser200 tools]# wget http://pecl.php.net/get/memcache-2.2.7.tgz
--2014-10-27 20:19:54-- http://pecl.php.net/get/memcache-2.2.7.tgz
Resolving pecl.php.net... 76.75.200.106
Connecting to pecl.php.net|76.75.200.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36459 (36K) [application/octet-stream]
Saving to: `memcache-2.2.7.tgz'
100%[======================================================================================>] 36,459 6.62K/s in 5.4s
2014-10-27 20:20:01 (6.62 KB/s) - `memcache-2.2.7.tgz' saved [36459/36459]
[root@ser200 tools]# tar xzf memcache-2.2.7.tgz
[root@ser200 tools]# cd memcache-2.2.7
[root@ser200 memcache-2.2.7]# /application/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@ser200 memcache-2.2.7]# ./configure --with-php-config=/application/php/bin/php-config
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
#(中間省略)
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /application/php5.3.29/lib/php/extensions/no-debug-zts-20090626/
[root@ser200 memcache-2.2.7]# ll /
[root@ser200 memcache-2.2.7]# ll /application/php5.3.29/lib/php/extensions/no-debug-zts-20090626/
total 644
-rwxr-xr-x 1 root root 425136 Oct 27 19:03 eaccelerator.so
-rwxr-xr-x 1 root root 222254 Oct 27 21:10 memcache.so
四.動態添加功能模塊pdo_mysql
1.介紹:PDO擴展爲PHP訪問數據庫定義了一個輕量級的、一致性的接口,它提供了一個數據訪問抽象層,這樣,無論使用什麼數據庫,都可以通過一致的函數執行查詢和獲取數據。PDO隨PHP5.1發行,在PHP5.0的PECL擴展中也可以使用,無法運行於之前的PHP版本。
2.用到命令:
cd /home/oldboy/tools/
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
./configure --with-php-config=/application/php/bin/php-config \
--with-pdo-mysql=/usr/local/mysql/
make && make install
注.下載/PDO_MYSQL-1.0.3.tgz未安裝成功,make時提示:
/home/oldboy/tools/PDO-1.0.3/pdo.c:78: error: too few arguments to function ‘zend_exception_get_default’
暫未找到決辦法
3.安裝過程:
[root@ser200 tools]# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
--2014-10-27 21:48:59-- http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
Resolving pecl.php.net... 76.75.200.106
Connecting to pecl.php.net|76.75.200.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14778 (14K) [application/octet-stream]
Saving to: `PDO_MYSQL-1.0.2.tgz'
100%[======================================================================================>] 14,778 19.5K/s in 0.7s
2014-10-27 21:49:11 (19.5 KB/s) - `PDO_MYSQL-1.0.2.tgz' saved [14778/14778]
[root@ser200 tools]# tar xzf PDO_MYSQL-1.0.2.tgz
[root@ser200 tools]# cd PDO_MYSQL-1.0.2
[root@ser200 PDO_MYSQL-1.0.2]# /application/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@ser200 PDO_MYSQL-1.0.2]# ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/
checking for egrep... grep -E
[root@ser200 PDO_MYSQL-1.0.2]# ll /application/php5.3.29/lib/php/extensions/no-debug-zts-20090626/
total 784
-rwxr-xr-x 1 root root 425136 Oct 27 19:03 eaccelerator.so
-rwxr-xr-x 1 root root 222254 Oct 27 21:10 memcache.so
-rwxr-xr-x 1 root root 135439 Oct 27 21:50 pdo_mysql.so
五.功能模塊:imagemagick安裝
1.imagemagick介紹:
mageMagick是一套功能強大、穩定而且開源的工具集和開發包,可以用來讀、寫和處理超過89種基本格式的圖片文件,包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式。利用ImageMagick,你可以根據web應用程序的需要動態生成圖片, 還可以對一個(或一組)圖片進行改變大小、旋轉、銳化、減色或增加特效等操作,並將操作的結果以相同格式或其它格式保存,對圖片的操作,即可以通過命令行進行,也可以用C/C++、Perl、Java、PHP、Python或Ruby編程來完成。同時ImageMagick提供了一個高質量的2D工具包,部分支持SVG。ImageMagic的主要精力集中在性能,減少bug以及提供穩定的API和ABI上。
2.安裝命令
cd /home/oldboy/tools/
wget http://www.imagemagick.org/download/ImageMagick-6.8.9-9.tar.gz
tar xzf ImageMagick-6.8.9-9.tar.gz
cd ImageMagick-6.8.9-9
./configure
make
make install
#裝模塊,要建立在上一步安裝imagemagick軟件的基礎上
wget http://pecl.php.net/get/imagick-3.1.2.tgz
tar xzf imagick-3.1.2.tgz
cd imagick-3.1.2
/application/php/bin/phpize
./configure --with-php-config=/application/php/bin/php-config
make
make install
ll /application/php5.3.29/lib/php/extensions/no-debug-zts-20090626/
3.安裝過程:
[root@ser200 ~]# cd /home/oldboy/tools/
[root@ser200 tools]# tar xzf ImageMagick-6.8.9-9.tar.gz
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
[root@ser200 tools]# wget http://www.imagemagick.org/download/ImageMagick-6.8.9-9.tar.gz
--2014-10-28 10:11:04-- http://www.imagemagick.org/download/ImageMagick-6.8.9-9.tar.gz
Resolving www.imagemagick.org... 209.191.186.187
Connecting to www.imagemagick.org|209.191.186.187|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12336784 (12M) [application/x-gzip]
Saving to: `ImageMagick-6.8.9-9.tar.gz'
100%[======================================================================================>] 12,336,784 72.6K/s in 2m 44s
2014-10-28 10:14:09 (73.4 KB/s) - `ImageMagick-6.8.9-9.tar.gz.1' saved [12336784/12336784]
[root@ser200 tools]# tar xzf ImageMagick-6.8.9-9.tar.gz
[root@ser200 ImageMagick-6.8.9-9]# ./configure
configuring ImageMagick 6.8.9-9
checking build system type... x86_64-unknown-linux-gnu
#(.............省略)
[root@ser200 ImageMagick-6.8.9-9]# make && make instal
[root@ser200 ImageMagick-6.8.9-9]# cd ..
[root@ser200 tools]# wget http://pecl.php.net/get/imagick-3.1.2.tgz
--2014-10-28 10:50:22-- http://pecl.php.net/get/imagick-3.1.2.tgz
Resolving pecl.php.net... 76.75.200.106
Connecting to pecl.php.net|76.75.200.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 94657 (92K) [application/octet-stream]
Saving to: `imagick-3.1.2.tgz'
100%[======================================================================================>] 94,657 61.4K/s in 1.5s
2014-10-28 10:50:24 (61.4 KB/s) - `imagick-3.1.2.tgz' saved [94657/94657]
[root@ser200 tools]# tar xzf imagick-3.1.2.tgz
[root@ser200 tools]# cd imagick-3.1.2
[root@ser200 imagick-3.1.2]# /application/php/bin/phpize \
> ;
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@ser200 imagick-3.1.2]# ./configure --with-php-config=/application/php/bin/php-config
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
#(.............省略)
[root@ser200 imagick-3.1.2]# make
[root@ser200 imagick-3.1.2]# make install
[root@ser200 imagick-3.1.2]# ll /application/php5.3.29/lib/php/extensions/no-debug-zts-20090626/
total 1940
-rwxr-xr-x 1 root root 425136 Oct 27 19:03 eaccelerator.so
-rwxr-xr-x 1 root root 1178470 Oct 28 10:58 imagick.so
-rwxr-xr-x 1 root root 222254 Oct 27 21:10 memcache.so
-rwxr-xr-x 1 root root 135439 Oct 27 21:50 pdo_mysql.so
六.配置以上模塊
1.修改php.ini
sed -i 's#; extension_dir = "./"#extension=/application/php5.3.29/lib/php/extensions/no-debug-zts-20090626/#g' php.ini
vi php.ini +1000,添加如下模塊
extension=memcache.so
extension=pdo_mysql.so
extension=imagick.so
extension=eaccelerator.so
2.配置參數:
cat >> /application/php/lib/php.ini<<EOF
[eaccelerator]
extension=eaccelerator.so
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
EOF
七.phpize介紹:
1. 安裝php(fastcgi模式)的時候,常常有這樣一句命令:/usr/local/webserver/php/bin/phpize
phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
比如你想在原來編譯好的php中加入memcached或者ImageMagick等擴展模塊,可以使用phpize,通過以下幾步工作。
當php編譯完成後,php的bin目錄下會有phpize這個腳本文件。在編譯你要添加的擴展模塊之前,執行以下phpize就可以了;
你可能還對如下內容感興趣:
1.mysql啓動命令大全
2.mysql多實例安裝方法和詳細步驟