PHP语言有一个庞大的函数库,支持这个语言的功能实现。下面详细介绍一下php扩展的安装使用!
PHP Extensions的介绍
php扩展分类:常用扩展和自定义扩展!所以我们在安装某个扩展包时,一定要先知道它属于那个分类!这样就能非常清晰的知道去哪里下载或寻找所需扩展包了!
常用扩展
常用扩展通常放置在PHP源码包的常用扩展包中,跟随php源码包一块打包,目录在”源码包/ext/”下。
比如:php-5.3.8源码包
[root@localhost ext]# ls /usr/local/src/php-5.3.8/ext bcmath hash pdo_dblib sockets bz2 iconv pdo_firebird spl calendar imap pdo_mysql sqlite com_dotnet interbase pdo_oci sqlite3 ctype intl pdo_odbc standard curl json pdo_pgsql sybase_ct date ldap pdo_sqlite sysvmsg dba libxml pgsql sysvsem dom mbstring phar sysvshm enchant mcrypt posix tidy ereg mssql pspell tokenizer exif mysql readline wddx ext_skel mysqli recode xml ext_skel_win32.php mysqlnd reflection xmlreader fileinfo oci8 session xmlrpc filter odbc shmop xmlwriter ftp openssl simplexml xsl gd pcntl skeleton zip gettext pcre snmp zlib gmp pdo soap
常用包的安装有两种方式:举例(pcntl扩展包)
1、重新编译PHP的后面configrue提示加上 –enable-pcntl。
2、不重新编译php,直接进入相应版本的php源码包ext目录,找到pcntl扩展,编译安装pcntl扩展。
# cd /usr/local/src/php-5.3.8/ext/pcntl # /usr/local/php/bin/phpize # ./configure –with-php-config=/usr/local/php/bin/php-config # make && make install
然后将,pcntl.so 加到php.ini中就可以了,使用”php -m | grep pcntl “查看是否模块已安装。
自定义扩展
除了常用的扩展之外,很多开发者为了实现某些特殊需求而编写某个扩展来增加php的功能性!这些扩展提交到PHP的官方扩展包管理中心PECL。
PECL的全称是 The PHP Extension Community Library ,是一个开放的并通过 PEAR(PHP 扩展和应用仓库)打包格式来打包安装的 PHP 扩展库仓库。通过 PEAR 的 Package Manager 的安装管理方式,可以对 PECL 模块进行下载和安装。
通过pecl安装第三方扩展例子:
# pecl install channel://pecl.php.net/libevent-0.1.0 # pecl install channel://pecl.php.net/proctitle-0.1.2 # pecl install yaf
编译扩展流程
了解Phpize
php官方说明: phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize.当php编译完成后,php的bin目录下会有phpize这个脚本文件.在编译你要添加的扩展模块之前,执行以下phpize就可以了;
-
编译扩展包
Exp:在php中加入memcache扩展模块
#1.下载解压扩展包 wget http://pecl.php.net/get/memcache-2.2.5.tgz; tar -zxvf memcache-2.2.5.tgz; cd memcache-2.2.5/; #2.执行phpize /usr/local/php/bin/phpize; #3.编译安装 ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config; make && make install; #根据提示查找系统扩展放置目录 #上述安装完后会有类似这样的提示: Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
-
将memcache.so扩展名加入php.ini
#修改php.ini vim /usr/local/php/etc/php.ini #修改php.ini中的extension_dir目录 extension_dir = './' -> extension_dir = '/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/' #增加扩展名 extension=memcache.so