1.源码安装php
wget http://cn2.php.net/get/php-5.2.13.tar.gz/from/cn.php.net/mirror
tar zxvf php-5.2.13.tar.gz
cd php-5.2.13
./configure --prefix=/csdn_verify_auth/php --with-config-file-path=/csdn_verify_auth/php/etc
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /csdn_verify_auth/php/etc/php.ini
在./configure时可能提示
error: xml2-config not found. Please check your libxml2 installation
执行 apt-get install libxml2-dev
make ZEND_EXTRA_LIBS='-liconv'可能会提示 /usr/bin/ld: cannot find -liconv
iconv是gun开发的一个编码转换的工具
需要手工安装一下
libiconv下载地址:http://www.gnu.org/software/libiconv/
安装后要在/usr/lib下建立一个 名为libiconv.so到/usr/local/lib/libiconv.so.2.xxx的软连接 ln -s /usr/local/lib/libiconv.so.2.xx libiconv.so
2.修改扩展路径
extension_dir = "/csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613"
不修改扩展路径的话把生成的so包拷贝到默认扩展路径也是可以的。
3.创建扩展项目
cd /csdn_verify_auth/php-5.2.13/ext/
./ext_skel --extname=csdn_verify_auth
4.更改配置和扩展程序开发
vi ext/csdn_verify_auth/config.m4
根据你自己的选择将
dnl PHP_ARG_WITH(csdn_verify_auth, for csdn_verify_auth support,
dnl Make sure that the comment is aligned:
dnl [ --with-csdn_verify_auth Include csdn_verify_auth support])
将dn1去掉
vi ext/csdn_verify_auth/php_csdn_verify_auth.h
将
zend_function_entry php5cpp_functions[] = {
PHP_FE(confirm_csdn_verify_auth_compiled, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in php5cpp_functions[] */
};
更改为
zend_function_entry php5cpp_functions[] = {
PHP_FE(csdn_verify_auth, NULL)
{NULL, NULL, NULL
在最后添加:
PHP_FUNCTION(csdn_verify_auth)
{
zend_printf("hello world\n");
}
} /* Must be the last line in php5cpp_functions[] */};
5.编译生成so文件
cd /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/
/csdn_verify_auth/php/bin/phpize
./configure --with-php-config=/csdn_verify_auth/php/bin/php-config
make
mv /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/modules/csdn_verify_auth.so /csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613
cd ../../../
6.测试扩展
vi /csdn_verify_auth/hello.php
csdn_verify_auth();
?>
/csdn_verify_auth/php/bin/php hello.php
hello world.
OK
注意,执行 /csdn_verify_auth/php/bin/phpize时,要求系统配置了m4和autoconfig执行以下命令
# cd /usr/src
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
# tar -zvxf m4-1.4.9.tar.gz
# cd m4-1.4.9/
# ./configure && make && make install
# cd ../
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
# tar -zvxf autoconf-2.62.tar.gz
# cd autoconf-2.62/
# ./configure && make && make install
或者
sudo apt-get install m4
sudo apt-get install autoconf
关于autoconf的文章
http://www.cnblogs.com/itech/archive/2010/11/28/1890220.html
2127

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



