安装好如下软件:
1. VC++ 6
2. php二进制环境
3. Cygwin.
I. 下载php的源码包
下载后php源码包解压后有个ext目录,这个目录就是负责开发扩展的目录,目录中有默认你扩展的所有源码。还有两个重要的文件:ext_skel , ext_skel_win32.php.
ext_skel是创建扩展的shell,在windows上无法运行,所以就必须要有Cygwin。
II. 建立php扩展骨架目录文件
如果你的cygwin没有安装在c:\cygwin,进入php源码包\ext目录下,修改ext_skel_win32.php :
$cygwin_path = 'c:\cygwin\bin';
修改为你的cygwin目录
$cygwin_path = 'd:\cygwin\bin';
命令行方式进入ext目录然后运行:
php ext_skel_win32.php --extname=myhello
(当然,为了保证上面的命令行能正常运行,首先你得确保你的php目录在系统的环境变量里)
运行该命令后,有人发现下面的错误
Warning: fopen(myhello/myhello.php): failed to open stream: No such file or directory in D:\cygwin\php-5.2.6\ext\ext_skel_win32.php on line 52
说明你的 cygwin 安装不完整。要是没报错你的myhello扩展就创建成功了。这就是一个简单的扩展框架,用纯c语言编写。
III. 添加依赖的php5ts.lib
在php的二进制包中的 dev目录下将 php5ts.lib 拷到我们的myhello目录中, 否则编译将通不过。
IV. 添加hello c代码
生成的myhello目录中有关键文件包括
myhello.dsp,
myhello.c,
php_myhello.h,
其他文件暂时不必关心.
提示:切忌myhello目录不可以挪移出ext目录,否则会编译报缺少php.h.
1. 修改php_myhello.h
扩展的新函数: 在PHP_FUNCTION(confirm_myhello_compiled); 行后添加一行
- PHP_FUNCTION(confirm_myhello_compiled);
- PHP_FUNCTION(myhello); // 新增的行
2. 修改myhello.c
在PHP_FUNCTION(confirm_myhello_compiled) 后添加我们的新函数
- PHP_FUNCTION(myhello){
- php_printf(”Hello C extension”);
- }
在数组zend_function_entry myhello_functions[]增加一行
- zend_function_entry myhello_functions[] = {
- PHP_FE(confirm_myhello_compiled, NULL) /* For testing, remove later. */
- PHP_FE(myhello, NULL) // 新增的行
- {NULL, NULL, NULL} /* Must be the last line in myhello_functions[] */
- };
V. 构建DLL文件
用vc6打开我们的工程,就是myhello.dsp
1. 修改编译方式为release: 选择Build->Set Active Configuration设置默认编译方式为Release, 否则会提示缺少php5ts_debug.lib ,其实就是php5ts.lib。
2. 按F5编译。会在ext上级的Release_TS目录下生成php_myhello.dll
提示:如果愿意使用命令行编译也是可以的,命令如下:
VI. 集成dll到php中。
1. 把我们生成的 php_myhello.dll放到二进制php环境的ext目录下.
2. 然后修改php.ini, 添加 extension=php_myhello.dll 重启apahce。
3. 新建c_test.php 内容为
- <?php myhello(); ?>
在浏览器里打开会看到页面:
相关推荐
2.在终端(也即cmd命令界面)下输入'c:\memcached\memcached.exe -d install'安装 3.再输入:'c:\memcached\memcached.exe -d start'启动。NOTE:以后memcached将作为windows的一个服务每次开机时自动启动。这样...
整理的关于windows下开发PHP扩展的及环境搭建说明
intl扩展文件, windows 64位则放到 C:\Windows\SysWOW64下, 32位则放到C:\Windows\System32
现在就简单说一在WINDOWS下开发PHP扩展的步骤: 首先需要准备的软件有: cygwin 安装路径e:\app\cygwin visual studio C++ 6.0, 修改环境变量,把已经安装好的PHP路径设置为环境变量。在这里,假设我的PHP安装目录是...
php transliterator_transliterate 方法的使用 php.ini 开启extension=php_intl.dll 并将文件放入到 32位:C:\Windows\System32 64位: C:\Windows\SysWOW64 下
在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了. http://ishare.iask.sina.com.cn/f/23044929.html?from=like 下载 php_redis.dll 文件解压并放到...
它通过在编译状态下对PHP脚本进行缓存以提高他们的性能,所以那些系统开销在编译时几乎可以被消除。它还能够对脚本进行优化以便加速它们的执行速度。利用eAccelerator可以减少服务器的负载并提高PHP代码的执行效率。...
一、下载 找到完整的memcache的Windows安装包,解压放在硬盘上,比如 F:\memcached.exe 二、安装 WIN7 64位双击打开这个exe可能只有一个空的...可以在CSDN上找到完整的 php_memcache.dll 扩展包,选择对应自己php版本
本篇文章是对用C语言编写PHP扩展进行了详细的分析介绍,需要的朋友参考下
3.启动命令行,将php安装目录里面的memcache.exe拖到里面, 在后面输入 -d install (如:C\php\memcache.exe -d install) 将memcache注册为windows服务 4. 然后再启动memcache,将php安装目录里面的memcache.exe拖到...
2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装 3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。 NOTE: 以后memcached将作为windows的一个服务每次开机时自动...
linux下的php-cpp项目,这个项目生成动态链接库,使用这个动态链接库,可以快速地用C++开发php扩展。相比较php官方提供的,用c语言开发php扩展方案。php-cpp使得开发php扩展更加简单快捷。php-cpp官方目前只支持在类...
ClickHouse PHP扩展 PHP扩展 支持PHP 7.0+ 使用库以C ++ 依存关系 PHP 7.0以上 海湾合作委员会10+ 建筑 $ git submodule init $ git submodule update $ phpize && ./configure $ make -j 16 $ make install 支持的...
本文实例讲述了PHP7安装Redis扩展的方法。分享给大家供大家参考,具体如下: linux中PHP7安装Redis扩展 1.依次执行 wget -c https://github.com/phpredis/phpredis/archive/php7.zip ...windowsPHP7安装Redis扩展 这里
为 PHP 添加 Memcache 扩展 1 - 下载与本机PHP版本对应的 php_memcache.dll 2 - 添加 Memcache 扩展 把 dll 文件拷到你的 php 目录的 ext 目录中,在 php.ini 中添加 extension=php_memcache.dll,重启服务器,在...
Leevel 高性能 PHP 扩展开发框架Leevel 是一个开源 PHP C 扩展开发框架,采用 zephir 编写,是为了解决使用框架带来性能下降的经典矛盾,Leevel 是为了解决 QueryPHP 性能而开发,可以与同版本的 QueryPHP 混合使用...
下面介绍在windows环境下本扩展的安装,在安装本扩展之前你首先要确认你本地环境中已经安装好了wamp(windows+apache+mysql+php) 安装步骤: 1、下载扩展包,本地下载 2、解压所下载下来的安装包,你可以看到如下几个...