用C语言写PHP扩展的步骤

用C语言,php的扩展的书写格式(ZEND API)写PHP扩展的步骤:
到PHP的安装目录下


[root@test1 ext]# cd /root/php/php5.2/ext
[root@test1 ext]# ./ext_skel --extname=cltest<span class="readmore"><a href="https://www.obooks.net/post-307.html">阅读全文&rarr;</a></span>

smarteng 发布于 2009-12-09 22:55

linux下安装php扩展


 Gettext
1  首先进入到php源码包中
   cd /opt/php-5.1.2/ext/gettext
2  在gettext文件夹下产生configure文件
   /opt/php/bin/phpize
3  配置编译
   ./configure --with-php-config=/opt/php/bin/php-config --with-gettext
     make && make install
4  在/opt/php/lib/php/extensions下产生一个gettext.so文件
5  确定 php.ini文件中的extension_dir=/opt/php/lib/php/extensions 跟 extension=gettext.so
6 重新编译 php [break]

Zlib
1  首先进入到php源码包中
    cd /opt/php-5.1.2/ext/zlib
2  在zlib文件夹下产生configure文件
    /opt/php/bin/phpize
3  配置编译
    ./configure --with-php-config=/opt/php/bin/php-config --with-zlib
     make && make install
4  在/opt/php/lib/php/extensions下产生一个zlib.so文件
5  确定 php.ini文件中的extension_dir=/opt/php/lib/php/extensions 跟 extension=zlib.so
6 重新编译 php

mbString
配制mbstring扩展
1 运行 /opt/php/bin/phpize
2 进入到 php源码包中的ext/mbstring下
    cd /opt/php-5.1.2/ext/mbstring
    ./configure --with-php-config=/opt/php/bin/php-config --enable-mbstring
    make && make install
3 这样就在/opt/php/lib/php/extensions下生成一个mbstring.so
4然后保证extension_dir指向正确的位置,extension=php_mbstring.dll开启
这样mbstring就开启了

Mod_rewrite
以RHEL5为例
1)首次安装apache,在编译时增加--enable-rewrite选项。
如./configure --prefix=/usr/local/apachel --enable-so --enable-mods-shared=all --enable-rewrite --enable-cache
2)增加mod_rewrite模块
# find  mod_rewrite.c //在apache的源码安装目录中寻找mod_rewrite.c文件
一般会在httpd-2.28/modules/mappers下
# /opt/httpd/bin/apxs -c mod_rewrite.c //apxs应指定绝对路径,在你当前正在使用apache的bin目录里
# /opt/httpd/bin/apxs -i -a -n mod_rewrite mod_rewrite.la
如果没有什么错误的话,应该在你的apache的modules目录中编译出一个mod_rewrite.so文件。
编辑httpd.conf文件,确认httpd.conf中已经包含mod_rewrite.so的加载语句,如下:
LoadModule rewrite_module modules/mod_rewrite.so
这时,你的apache应该已经支持rewrite了。 重启apache即可。

mcrypt扩展
进入要安装的扩展的源码目录
cd /root/php-5.2.6/ext/mcrypt
运行phpize
/usr/local/php5/bin/phpize

[ansi]root@Web2 11 mcrypt $/usr/local/php5/bin/phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
 
出现这样的提示说明可以扩展。
 
然后编译安装
#./configure --with-php-config=/usr/local/php5/bin/php-config
#make
#make install
Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
记住这里提示的路径刚才编译的module就在这里
[ansi]root@Web2 20 mcrypt $cd /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
[ansi]root@Web2 21 no-debug-non-zts-20060613 $ls
eaccelerator.so  mcrypt.so  memcache.so

然后编辑php.ini(如果php安装在/usr/local/php5 则php.ini在/usr/local/php5/lib/php.ini中添加
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/"
extension = "mcrypt.so"
然后重启apache,然后再访问phpinfo.php 就看到支持mcrypt了。
 


smarteng 发布于 2009-12-09 22:41