当前位置:首页 > CN2资讯 > 正文内容

linux下php扩展(php ext)开发记录

1天前CN2资讯

1.先down一个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

2.修改一下vi /csdn_verify_auth/php/etc/php.ini中的extension_dir = “./”
修改为extension_dir = "/csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613"
并在此行后增加以下,然后保存:
extension = "csdn_verify_auth.so"
csdn_verify_auth改为你开发的扩展的名字

3.开始创建扩展项目
进入源码目录
cd /csdn_verify_auth/php-5.2.13/ext/
./ext_skel --extname=csdn_verify_auth

创建名字为csdn_verify_auth的项目,最终会生成csdn_verify_auth.so

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])

去掉dnl
或者将

dnl PHP_ARG_ENABLE(csdn_verify_auth, whether to enable csdn_verify_auth support,
dnl Make sure that the comment is aligned:
dnl [ --enable-csdn_verify_auth Enable csdn_verify_auth support])

去掉dnl

vi ext/csdn_verify_auth/php_csdn_verify_auth.h

PHP_FUNCTION(confirm_csdn_verify_auth_compiled); /* For testing, remove later. */
更改为
PHP_FUNCTION(csdn_verify_auth);

vi ext/csdn_verify_auth/csdn_verify_auth.c

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} /* Must be the last line in php5cpp_functions[] */
};
在最后添加:
PHP_FUNCTION(csdn_verify_auth)
{
zend_printf("hello world\n");
}

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

主要用到的api就那么几个:
ZEND_NUM_ARGS()、zend_parse_parameters(args TSRMLS_CC, “ss”, &username, &username_length, &hash, &hash_length) 参数接收系列
RETURN_FALSE。。RETURN_STRINGL(s, l, dup)等返回系列函数
…………………
其他的基本就是C了,再次感叹下,学好C语言,走到哪都不怕。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26517.html

    分享给朋友:

    “linux下php扩展(php ext)开发记录 ” 的相关文章

    inet.ws 纽约VPS测评:高性能不限流量,享受流畅网络体验

    inet.ws 是一家在2020年成立的科技公司,专注于提供高性能的VPS服务。从成立之初,我们的目标就是为用户提供稳定、高效且不限流量的虚拟服务器解决方案。我们深知,无论是个人用户还是企业客户,都需要一个可靠的网络环境来支持他们的日常操作和业务需求。因此,我们致力于打造一个能够满足多样化需求的服务...

    DC3 CN2 VPS方案分析:搬瓦工的性价比之选

    在了解搬瓦工的服务时,我发现了DC3 CN2这个机房方案。它位于美国洛杉矶,是搬瓦工(BandwagonHost)推出的一项虚拟专用服务器(VPS)方案。选择这个机房的用户通常是因为它的网络性能和价格平衡。在洛杉矶的QNET(QuadraNet)机房基础上,搬瓦工向QNET买断了部分CN2 GT线路...

    Siteground怎么样?深入分析其安全性、正常运行时间与客户支持

    Siteground的安全性实践 谈到Siteground的安全性实践,我总是很欣赏他们的努力。作为一个成立于2004年的托管服务商,Siteground在安全方面采取了多重措施。我注意到,首先,他们为所有用户提供免费的Let’s Encrypt SSL证书。SSL证书能够加密网站与访客之间的数据,...

    国内VPS安装Docker的详细步骤与优化技巧

    在决定开始安装Docker之前,首先需要为你的国内VPS做好一些准备工作。准备工作不仅可以帮助我们顺利完成Docker的安装,还能让过程更加高效。 首先,选择一个适合的VPS服务提供商至关重要。目前市场上有很多VPS服务商,例如阿里云、腾讯云、Linode等。在选择时,可以根据自己的需求考虑价格、性...

    Vultr Cloud Computer与High Frequency服务器的全面对比

    在云服务的世界中,Vultr无疑是一个备受瞩目的名字。它提供两种主要的云服务器类型:Vultr Cloud Compute和High Frequency服务器。这两种服务器各有其独特之处,适合不同类型的用户和使用场景。 首先,Vultr Cloud Compute是其最基础的产品,主要以高性价比为卖...

    便宜的国外主机推荐:性价比高的主机选择指南

    在选择国外主机服务时,价格通常是一个重要的考量因素。面对纷繁复杂的选择,我发现一些便宜且性能不错的国外主机服务,让我大为惊喜。这里,我想和大家分享几款我认为性价比非常高的国外主机。 首先,我接触到UCloud。它的起售价为34元一个月,提供包括云服务器、GPU服务器和裸金属服务器在内的多种产品。这种...