通过brew在macOS Monterey上安装PHP后找不到符号sqlite3_enable_load_extension

Posted

技术标签:

【中文标题】通过brew在macOS Monterey上安装PHP后找不到符号sqlite3_enable_load_extension【英文标题】:Can't find symbol sqlite3_enable_load_extension after install PHP on macOS Monterey via brew 【发布时间】:2022-01-08 15:03:15 【问题描述】:

通过 brew 安装 php,按照这样的说明进行操作

To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

Finally, check DirectoryIndex includes index.php
    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
    /usr/local/etc/php/8.1/

To restart php after an upgrade:
  brew services restart php
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/php/sbin/php-fpm --nodaemonize
==> Summary
????  /usr/local/Cellar/php/8.1.0: 512 files, 79.9MB
==> Running `brew cleanup php`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

启用 php 和 this 对 php.so 进行签名。

之后,当我运行 apachectl configtest 时,我得到了 error 像这样 httpd: Syntax error on line 190 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/Cellar/php/8.1.0/lib/httpd/modules/libphp.so into server: dlopen(/usr/local/Cellar/php/8.1.0/lib/httpd/modules/libphp.so, 0x000A): Symbol not found: _sqlite3_enable_load_extension\n Referenced from: /usr/local/Cellar/php/8.1.0/lib/httpd/modules/libphp.so\n Expected in: /usr/lib/libsqlite3.dylib

我该怎么办?

【问题讨论】:

【参考方案1】:

我为此苦苦挣扎了 2 天,直到最终放弃。 这可能不是您正在寻找的答案,但我通过 Brew 安装了 Apache 并使用了该 httpd 而不是操作系统随附的 httpd。 在那之后的 10 分钟内,一切都启动并运行起来了。

【讨论】:

谢谢兄弟。如果使用htttpd 而不是默认的Apache,它可以工作。现在,我只需使用phpstorm 将代码自动部署到远程测试服务器并使用xdebug 进行调试。

以上是关于通过brew在macOS Monterey上安装PHP后找不到符号sqlite3_enable_load_extension的主要内容,如果未能解决你的问题,请参考以下文章

macOS monterey 12.6.1安装homebrew + nginx + php + mysql

macOS monterey 12.6.1安装homebrew + nginx + php + mysql

ARM macOS Monterey 上的 /usr/local/bin 损坏

在 OS Monterey 中使用 brew 安装 PHP 时出错

.NET 5 虽然已安装但在 MacOS (Monterey) 中找不到

在macos上安装一个mysql (不用brew)