我最近购买了一台新的 MacBook,并尝试对其进行配置以进行 PHP 开发。
操作系统是OSX 10.8 Mountain Lion,我使用内置的Apache2和PHP 5.3.13堆栈。
我需要安装一些扩展:mcrypt 和 intl。我重新编译了这两个扩展(从源代码,无论是从 PECL 还是从 PHP 5.3.13 的 tarball,使用“phpize”,然后“./configure”等等),并完美安装和激活。
我遇到了获取文本扩展。我尝试使用 PHP 5.3.13 tarball 中包含的扩展,我可以编译并安装它。解释器已成功加载扩展,但是...它不起作用!事实上,当我调用例如bindtextdomain函数,我收到一个 PHP 错误,说它不存在。
此外,“make test”返回一些错误。
依赖项(gettext 库)是使用 MacPorts(版本:0.18.1.1,修订版 2)安装的。
有什么提示吗?谢谢。
答案1
我最近也一直在为此烦恼。从 MacPorts ( port install gettext
) 安装了 gettext 并尝试从正确版本的 php 源配置 php-gettext 后,它会创建扩展,但 php 中只有 gettext() 和 bindtextdomain() 函数可用。
仔细查看 configure 的输出,可以看到如下行checking for ngettext in -lintl... no
一位同事指出,Mac 有自己的精简版 gettext,因此认为 configure 正在使用该 libintl 来检查 MacPorts 版本的库。
一些信息发布在论坛上在回答某人在 FreeBSD 上遇到不同软件的类似问题时,我向他展示了一些标志,以强制它首先查看 MacPorts 目录。我使用了下面的 configure 行,现在所有 gettext 函数都可以在 PHP 中使用:
./configure --with-gettext=/opt/local CFLAGS=-I/opt/local/include CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib