【问题标题】:Php homebrew "Symbol not found: _compiler_globals" while loading php intl extension as apache module在将 php intl 扩展加载为 apache 模块时,Php homebrew “找不到符号:_compiler_globals”
【发布时间】:2018-04-30 16:25:02
【问题描述】:

我通过自制软件安装了 php56

brew install php56

将其加载到 httpd.conf 中的 apache 中

LoadModule php5_module    /usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so

一切似乎都很好。 但是当我添加 php-intl

brew install php56-intl

国际,不加载,我收到以下错误:

PHP Core Warning 'yii\base\ErrorException' with message 'PHP Startup: 
Unable to load dynamic library '/usr/local/opt/php56-intl/intl.so' - dlopen(/usr/local/opt/php56-intl/intl.so, 9): 
Symbol not found: _compiler_globals
Referenced from: /usr/local/opt/php56-intl/intl.so
Expected in: flat namespace in /usr/local/opt/php56-intl/intl.so' 

奇怪的是,使用 php-cli(/usr/local/bin/php) 可以正常工作,只有在加载为 apache 模块时才会出现错误。

我的错误配置是什么?

【问题讨论】:

  • 试试brew reinstall php56-intl --build-from-source
  • 这不起作用,但由于某种原因,您的回答引导我查看 /usr/local/etc/httpd/httpd.conf 并且那里还有一个不同的 php 版本。 /usr/local/Cellar/php56/5.6.32_8/libexec/apache2/libphp5.so 。在我更改 apache 模块以加载它之后,一切正常。我不确定该配置的用途(我的系统中没有使用它),但它具有正确的模块链接。谢谢,您的回答以某种奇怪的方式确实有帮助!

标签: php macos apache homebrew intl


【解决方案1】:

您可以先尝试brew search intl,如下所示:

➜ brew search intl
==> Searching local taps...
homebrew/php/php53-intl                 homebrew/php/php55-intl                 homebrew/php/php70-intl                 intltool
homebrew/php/php54-intl                 homebrew/php/php56-intl                 homebrew/php/php71-intl
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...

然后选择正确的版本'intl'进行安装,例如:

brew search intl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 2014-11-22
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2012-11-16
    相关资源
    最近更新 更多