【问题标题】:Apache, PHP 5.6 or 7.0: Library not loaded: openssl/lib/libcrypto.1.0.0.dylib using HomebrewApache、PHP 5.6 或 7.0:未加载库:openssl/lib/libcrypto.1.0.0.dylib 使用 Homebrew
【发布时间】:2020-09-19 15:41:46
【问题描述】:

我正在尝试在 macOS 10.15 Catalina 上的 Apache httpd.conf 配置文件中加载 PHP 5.6 或 PHP 7.0 模块。但是在终端中使用 sudo apachectl start 启动 Apache 服务器时收到以下错误:

httpd: Syntax error on line 187 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so into server: dlopen(/usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so, 10): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib\n Referenced from: /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so\n  Reason: image not found

由于 PHP 版本 5.6、7.0 和 7.1 已被弃用并从 Homebrew 中删除,遵循this guide,我不得不使用旧的已弃用水龙头并通过运行安装 PHP 5.6 和 7.0:

brew tap exolnet/homebrew-deprecated
brew install php@5.6
brew install php@7.0

为了获得完整的信息,我尝试了 macOS 附带的 Apache 和通过 Homebrew 安装的最新 Apache 2.4.43,但这应该没什么区别。

所以问题是,如何解决这些错误并使用 Homebrew 在 macOS 上运行 PHP 5.6 和 7.0?

【问题讨论】:

    标签: php macos apache openssl homebrew


    【解决方案1】:

    解决方案是安装旧版本的 openssl 库。更具体地说,PHP 5.6 和 php 7.0 需要 openssl 1.0.2,您可以通过 Homebrew 在终端中运行以下命令来安装它:

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8b9d6d688f483a0f33fcfc93d433de501b9c3513/Formula/openssl.rb
    brew switch openssl 1.0.2t
    

    但是,在运行上述之后,当使用 PHP 5.6、php 7.0 或 php 7.1 时,可能会出现另一个“Library not loaded”的错误。特别是这个:

    httpd: Syntax error on line 183 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so into server: dlopen(/usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so, 10): Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib\n  Referenced from: /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so\n  Reason: image not found
    

    在这里,需要另一个较旧的库,在这种情况下为 icu4C。解决方案是运行以​​下命令:

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
    brew switch icu4c 64.2
    

    切换到 PHP 7.2、PHP 7.3 或 PHP 7.4 的注意事项

    由于 PHP 7.2、PHP 7.3 和 PHP 7.4 不能与上述 icu4c 库的旧版本 64.3 一起使用,因此当您需要切换到这些 PHP 版本时,例如,通过使用此 easy brew PHP switcher script,您还必须通过运行以下命令来切换 icu4c 库的版本:

    brew switch icu4c 67.1
    

    资源

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 2020-05-11
      • 2020-03-19
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      相关资源
      最近更新 更多