1. 程式人生 > >PHP動態擴展模塊安裝

PHP動態擴展模塊安裝

PHP 擴展模塊

PHP擴展模塊安裝

編譯httpd時,有涉及動態和靜態模塊,PHP也一樣有靜態與動態之分,之前所涉及到的PHP安裝都全部為靜態,並沒有任何動態的模塊,所謂動態,就是一個獨立存在的.so文件,在httpd中PHP就是以動態模塊的形式被加載的。PHP一旦編譯完成後,要想再增加一個功能的話,要麽重新編譯PHP,要麽直接編譯一個擴展模塊(生成一個.so文件),然後在php.ini中配置一下,就可以被加載使用了。

1、查看PHP加載的模塊

[root@zlinux ~]# /usr/local/php/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

2、安裝一個PHP擴展模塊(redis模塊)

[root@zlinux ~]# cd /usr/local/src/
[root@zlinux src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
[root@zlinux src]# mv develop phpredis-develop.zip
[root@zlinux src]# unzip phpredis-develop.zip 
[root@zlinux src]# cd phpredis-develop/
[root@zlinux phpredis-develop]# /usr/local/php/bin/phpize      //目的是生成configure文件
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
//報錯Cannot find autoconf,需要安裝一些autoconf

[root@zlinux phpredis-develop]# yum install -y autoconf
[root@zlinux phpredis-develop]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

[root@zlinux phpredis-develop]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@zlinux phpredis-develop]# make
[root@zlinux phpredis-develop]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
//make install會把編譯好的redis放到這個目錄下,該目錄為擴展模塊存放目錄

[root@zlinux phpredis-develop]# /usr/local/php/bin/php -i | grep -i extension_dir
extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226
sqlite3.extension_dir => no value => no value
//查看擴展模塊目錄,也可以在php.ini中修改目錄

[root@zlinux phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
opcache.so  redis.so

3、修改PHP配置文件,使擴展模塊生效

[root@zlinux phpredis-develop]# vim /usr/local/php/etc/php.ini    //添加以下內容

extension = redis.so

[root@zlinux phpredis-develop]# /usr/local/php/bin/php -m | grep redis    //查看是否加載了redis
redis

PHP動態擴展模塊安裝