为什么我的 php 扩展是针对 PHP4 而不是 PHP5 进行编译的

为什么我的 php 扩展是针对 PHP4 而不是 PHP5 进行编译的

我正在尝试为 Dreamhost PS 编译 memcache。

库已创建但未显示在 phpinfo 中。Apache 日志显示库未加载,因为“未定义符号:第 0 行 Unknown 中的 OnUpdateInt”

我读到 OnUpdateInt 是在 PHP4 中定义的,而 OnUpdateLong 是在 PHP5 中定义的。因此问题在于编译配置认为它应该使用 PHP4 进行编译。

PHP 的 SAPI 版本是 5.2.10(phpinfo 中显示)。CLI 是 4.4.9(php -v 显示)

我的问题:如何使库的编译与我服务器上的 PHP5 兼容而不是 php4。

答案1

似乎您想更新 PATH 以“选择” PHP 5 而不是 PHP 4。编译过程将使用在您的路径中找到的任何 PHP。要查找当前安装:

which php

PHP info 应该会显示 PHP 5 版本的路径。要测试它,您可以php -v使用 PHP 5 版本的完整路径运行(例如,如果它在,/usr/local/bin您可以使用/usr/local/bin/php -v)。然后您可以更新您的路径:

# for bash
export PATH=/usr/local/bin:$PATH

然后php -v应该在这之后打出更新的版本。

如果它们都“并排”安装(例如 aphpphp5二进制),则需要使用配置选项(假设您正在从源代码编译 memcached)。我不熟悉 Dreamhost 如何进行该设置。

相关内容