PHP扩展(extension 简写EXT)的编译分为两种:单独编译和内核编译.单独编译php的扩展给php配置的灵活性带来了非常大的提高,比如你可以将大多数常年不需要更新的扩展编译到php内核(像gd、openssl之类),而将其他一些更新频率相对高一点的扩展(像mysql),在需要进行更新的时候,只需要重新编译扩展,而不用重新编译整个php。理论上,扩展编译到php内核会带来稍微的性能提升,具体情况还是得各人自己取舍了。
php的安装目录:/usr/local/php/
然后进入需要安装的模块的目录
使用php的phpize工具, /usr/local/php/bin/phpize
然后使用 ./configure --with-php-config=/var/php/bin/php-config
(如果你有需要添加的一些特殊的参数使用./configure --help查看)
单独编译的php扩展,一般来说都需要给configure脚本传递-with-php-config参数,用来指定php-config文件的路径,这个文件的作用就是 告诉扩展的configure脚本到什么位置去寻找php的库文件以及开发库。后面的参数就根据具体的扩展来具体指定了,对于xcache来说,
就是-enable-xcache等等,对于eaccelerator来说,就是-enable-eaccelerator等等。
configure结束,就是最熟悉的两道命令:
然后make编译
编译好了make install就可以了
其中make install完成以后,你会看到类似的输出
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
这里告诉你,刚才编译的xcache安装到了/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/这个目录下。
编译安装好了,下面需要修改php.ini以便加载扩展。
一般来说分两种情况,对于xcache、eaccelerator之类的opcache扩展,一般都以zend_extension方式加载,而其他的都以普通extension 方式加载,常见的有memcache curl soap zip ftp等, 二者不同之处在于,前者在加载的时候需要指定扩展的so文件的绝对路径,后者先要配置 php.ini里面的extension_dir(一般也就是刚才make install后输出的那个目录),然后只输入so文件的文件名即可。
然后需要你到php.ini中把extension扩展打开
extension = XXX.so
同时要注意extension_dir这个目录要有你安装好的XXX.so
================================================================================================================
下面来罗列下我们常用的模块的安装
1.memcache
cd memcache-2.5.5
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --enable-memcache
make
make install
编译出来的memcache.so保存在 /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/ 目录下
接着要做的工作就是让php加载这个扩展,编辑你的php.ini,在适当位置(通常是最后,也可以是独立的一个ini文件)加入如下行:
extension=memcache.so
================================================================================================================
2.eaccelerator
1、 PHP加速器 eaccelerator 简介;
eaccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍;
官方主页: http://eaccelerator.net
2、 安装和配置;
首先您要安装好PHP,然后再来编译安装 eaccelerator,过程如下
2.1 编译安装;
# tar xvf eaccelerator-0.9.5.2.tar.bz2
# cd cd eaccelerator-0.9.5.2
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-eaccelerator=shared
# make
# make install
# ldconfig
注:更新动态链接库地址;
zend_extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so" 注:模块的具体位置;
eaccelerator.shm_size="16" 注:共享内存大小;
eaccelerator.cache_dir="/dev/shm" 注:缓存目录;
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ZIP扩展
进入安装原php的源码目录,
cd ext
cd zip
phpize
./configure
make
就会在PHPDIR/ext/zip/modules/下生成zip.so的文件。
复制zip.so文件到extensions的配置目录,修改php.ini就好了
SOAP扩展
进入安装原php的源码目录,
cd ext
cd soap
phpize
./configure
make
就会在PHPDIR/ext/soap/modules/下生成soap.so的文件。
复制soap.so文件到extensions的配置目录,修改php.ini就好了

本文详细介绍了PHP扩展的安装过程,包括单独编译和内核编译的区别,以memcache和eaccelerator为例,展示了如何编译安装及配置。通过phpize、configure、make和make install步骤,指导开发者正确加载并启用PHP扩展。
2230

被折叠的 条评论
为什么被折叠?



