【问题标题】:PHP on Mac OS X Lion: where is gettext module?Mac OS X Lion 上的 PHP:gettext 模块在哪里?
【发布时间】:2011-09-16 16:01:01
【问题描述】:

我有一台全新的 Mac,预装了 Lion。 我启用了 Apache,即 PHP 模块。

phpinfo() 有效,但不支持 gettext。

在 php.ini 中写入 extension=php_gettext.so 没有帮助。 所以我尝试在文件系统中locate它,但似乎没有可用的 PHP 扩展。

OS X Lion 中的 PHP 扩展在哪里?

【问题讨论】:

    标签: php macos gettext osx-lion


    【解决方案1】:

    编辑:只要您将 MAMP 更新为最新版本,刚刚经过测试,仍然适用于 Mavericks。这是完整的教程:

    我设法使用来自MAMP 的gettext.so 和Mac OS X Apache/PHP 本机服务器使其工作。这是如何做到的:

    1. 下载并安装 MAMP(不需要专业版)
    2. 将为 php 5.5.10 构建的 MAMP gettext.so 复制到 Mavericks 的本地 php 扩展文件夹:

      sudo cp /Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20100525/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20100525/

    3. 通过添加以下新行来更新 Mavericks 的 /etc/php.ini 文件:

      extension=/usr/lib/php/extensions/no-debug-non-zts-20100525/gettext.so

    4. 重启apache:

      sudo apachectl restart

    之后您可以使用_() 和gettext() 函数。

    感谢 @MountainAsh 注意到我们无法在此过程之后删除 MAMP,因为 gettext 使用了 MAMP 库之一。

    【讨论】:

    • 在评论第 3 步更改为 sudo cp /Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20100525/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20100525/ 时,第 5 步无法(卸载),因为 gettext.so 在 PHP 加载时调用 /Applications/MAMP/Library/lib/libiconv.2.dylib
    • 除了我上面的 cmets,您可以从 MAMP 的 800+MB 有效负载中删除所有内容,只保留以下文件和目录结构:/Applications/MAMP/Library/lib/libiconv.2.dylib & /Applications/MAMP/Library/lib/libintl.8.dylib 将其降至 1.2 MB跨度>
    【解决方案2】:

    到目前为止,OS X 不包括 gettext(因为我从 10.4 开始第一次尝试)。您必须自己构建它。我遵循以下过程并在 10.6 下工作(取自 Apple 论坛讨论线程)。它现在仍在 10.7 中工作。请注意,这是安装 gettext 模块,而不是 php_gettext。尽管它们几乎以某种方式起作用,但初始化据说是不同的。请记住,将链接交换为正确的 PHP 版本。我认为 10.7 附带 PHP 5.3.6。您需要搜索它。

    以 root 身份尝试此操作(或之前发出 sudo -s):


    mkdir -p /SourceCache

    cd /SourceCache

    curl -O http://ftp.gnu.org/pub/gnu/gettext/gettext-0.17.tar.gz

    tar xzf gettext-0.17.tar.gz

    cd gettext-0.17

    MACOSXDEPLOYMENTTARGET=10.6 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bindatload" ./configure

    制作

    进行安装


    cd /SourceCache

    curl -O http://www.opensource.apple.com/source/apachemod_php/apache_modphp-53/php-5.3.0.tar.bz2

    tar xjf php-5.3.0.tar.bz2

    cd /SourceCache/php-5.3.0/ext/gettext

    php化

    MACOSXDEPLOYMENTTARGET=10.6 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bindatload" ./configure

    制作

    进行安装


    完成后,编辑/创建 /etc/php.ini 并添加: extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.so

    下一期: sudo apachectl 优雅

    祝你好运!

    【讨论】:

    • 正如我在下面的答案中所说,您可以将 MAMP 中的 gettext.so 与 Lion/Mountain Lion 版本的 PHP 一起使用。这很简单,对我来说就像一个魅力
    • 对于其他路过的人:我已经在运行 10.5.8 的基于 PowerPC 的 Mac 上成功构建了 gettext-0.19.3。 make check 因 'lang-bash' 失败,但除此之外,它安装得很好。
    【解决方案3】:
    /usr/lib/php/extensions/
    

    你会在这里找到它们...

    在 Lion 的 PHP 版本中似乎没有包含 gettext。

    【讨论】:

      【解决方案4】:

      对我来说,从http://php-osx.liip.ch 重新安装当前的 PHP 版本(OS X 10.10.5 Yosemite 上的 5.5.29)是最简单的解决方案 - 不再需要构建自己的 gettext.so 扩展。

      【讨论】:

        猜你喜欢
        • 2012-03-09
        • 2013-12-08
        • 2012-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-12
        • 2012-03-22
        • 2012-04-05
        相关资源
        最近更新 更多