php 源码编译 不加载扩展独立的PHP扩展可以独立于PHP源码之外进行分发?源码编译安装php
2021-12-02
独立的 PHP 扩展可以独立于 PHP 源代码进行分发。要创建这样的扩展,需要准备两件事:
接下来我们将描述如何创建这些文件并将它们组合起来。
准备系统工具
如果想让扩展在系统上编译运行成功,需要准备以下工具:
以上都可以从ftp:///pub/gnu/获得。
注意:这些都是只能在类 Unix 环境中使用的工具。
改造现有的扩展
为了表明创建独立扩展很容易,我们先将PHP 中嵌入的扩展更改为独立扩展。安装PHP并执行以下命令:
$ /tmp/
$ cd /tmp/
现在你有一个空目录。我们将复制扩展目录中的文件:
$ cp -rp php-4.0.X/ext//*.
#注:看来这篇文章真的需要更新了
# 扩展部分已在 PHP7 中移除
至此,扩展完成,执行:
$
现在你可以在任何地方独立存储这个目录中的文件,并且这个扩展可以完全独立存在。
用户在编译时需要使用以下命令:
$ ./
[--with-php-=/path/to/php-]
[--with-=-DIR]
$ make
这样,模块就可以使用内置的客户端库或安装在目录中的。
注意:这意味着如果你想写一个PHP扩展,你需要已经安装了PHP,并且还需要下载一份PHP源代码。
定义一个新的扩展
我们将示例扩展命名为“”。
新扩展包含两个资源文件:foo.c 和 bar.c(有一些头文件,但这些不仅重要)。
示例扩展不引用任何外部库(这一点非常重要,因为用户不需要指定一些编译选项)。
该选项用于指定资源文件的名称,可以拥有任意数量的资源文件。
注:以上是.in文件中的配置选项,可以参考。
修改m4后缀的配置文件
m4 配置文件可以指定一些额外的检查。对于一个独立的分机,你只需要做一些宏调用。
(, 到,
[--- ])
如果测试 "$" != "no"; 然后
(, foo.c bar.c, $)
菲
自动设置正确的变量以确保扩展可以在共享模式下启动。
第一个参数是扩展名,第二个参数是资源文件。第三个参数 $ 由 /WITH 设置。
请始终使用或设置。即使您不打算发布您的 PHP 模块php 源码编译 不加载扩展,这些设置也可以确保您的模块和 PHP 主模块界面保持集成。
注意:and 应该用于定义模块是动态扩展还是静态编译成PHP,就像编译PHP时使用的---xxx和--with-xxx一样。
创建资源文件
您可以为 PHP 模块创建一些通用代码,也可以编写一些基本的函数定义和 C 代码来处理函数参数。具体信息可以查看..
不要担心没有例子。PHP 中有很多模块供您参考。选择一个简单的点开始并添加您自己的代码。
注意:基础模块所需的资源文件和配置文件可以自行生成,不需要自己创建。
修改自定义模块
将.m4文件和资源文件放在同一目录下,然后执行(编译PHP时安装PHP4.0及以上)。
如果你的不在系统环境变量中,则需要指定绝对路径微信公众号开发,例如:
$ /php/bin/
此命令会自动将必要的构建文件复制到当前目录并创建基于 .m4 的配置文件。
通过以上步骤,你就拥有了一个独立的分机。
安装扩展
可以使用以下命令编译和安装扩展:
$ ./
[--with-php-=/path/to/php-]
$ make
为模块添加共享支持
有时独立的扩展需要被其他模块共享和加载。接下来,我将解释如何为已经创建的 foo 模块添加共享支持。
在.m4文件中,使用/设置扩展名,这样就可以自动使用 --with-foo=[,..] 或 ---foo=[,..] 等指令作为编译参数。
在 .m4 文件中,使用 (foo,.., $) 启用要构建的扩展。
将以下代码添加到您的 C 语言资源文件中:
#
(富)
#
我在本段中已经提到了上述所有内容,但我再次强调一下。
PECL网站公约
如果您计划将您的扩展发布到 PECL 的网站,您需要考虑以下几点:
添加 或 到 .xml
版本信息需要在扩展头文件中定义,会调用这个宏来声明扩展版本:
# "1.2.3"
【编辑推荐】
PHP7 发布推迟待定。PHP7 正式版将作为开源发布。放弃PHPphp 源码编译 不加载扩展,转向PHP7发布时编写的配置和使用教程。15 个有用的 PHP 正则表达式 如何编写高性能代码?
【主编:电话:(010)】