0

我正在尝试为 C 库创建 PHP 扩展/包装器。我非常密切地关注了本教程扩展写作第一部分,并从同一作者那里购买了“扩展和嵌入 PHP”一书。

我正在使用 MAC 并安装了 MAMP。
我已经下载并安装了 make-3.82、autoconf-2.69、automake-1.9 和 libtool-2.4.2 没有问题。我在 Applications/MAMP/bin/php/php5.4.4/lib/php/extensions 文件夹中创建了一个 hello 文件夹,并完全按照说明创建了上面教程中列出的文件。

我做了这三个步骤:
$ phpize
$ ./configure --enable-hello
$ make

再次没有问题。

但是当调用 php -r 'echo hello_world();' 我收到“未定义的函数 hello_world”错误。

我知道上面列出的几个步骤不是推荐的方法。
我在错误的扩展文件夹中吗?extensions 文件夹不是推荐的文件夹,但我在任何地方都找不到 ext 文件夹。

这些添加的最新版本是否与旧版本一样工作,还是我需要回到早期版本?

是否有一套更新的指令来组合任何人都可以推荐的 PHP 扩展?

4

1 回答 1

1

在进一步的研究中,我发现我的 MAMP 安装缺少包含目录树,其中包含所有当前文档中提到的 ext 文件夹。我不知道这是否只是升级,但我将放弃它并切换到 Linux 环境进行开发。

编辑:所以在 Linux 上解决了同样的问题后,我在 etc/php5/apache2/conf.d 中发现了一个文件,该文件名为现有扩展名的名称,具有相同的 extension = {extension}.so 行,该行也在 php.ini 中。尼。当我使用自己的扩展信息复制该文件时,扩展开始起作用。这个文件不是我在我查看的任何文档中看到的任何内容。我不知道 MAMP 环境中是否有相应的文件也导致了那里的问题。

于 2013-09-19T12:42:54.743 回答