PHP 模块通过命令行加载,但在 Mac OS 上不通过 Apache

问题描述 投票:0回答:1

我正在尝试在 Mac OS Big Sur 上设置 PHP 开发环境。 我使用的是操作系统附带的 Apache,但我使用的是 MacPorts for PHP。

我跑了:

$ sudo port install php83-zip

使用

$ php -ini

而且

phpInfo()
我可以确认命令行 PHP 和 Apache PHP 都使用相同的 php.ini 文件。

我创建了一个包含以下内容的小型 php 文件:

if (class_exists('ZipArchive')) {
    echo 'ZipArchive is available!';
} else {
    echo 'ZipArchive is not available.';
}

当我通过命令行运行该命令时,我得到“ZipArchive is available”。 当我通过浏览器查看时,我收到“ZipArchive 不可用。”

在 php.ini 中,我使用带扩展名的完整目录名;即:

extension=/opt/local/lib/php83/extensions/no-debug-non-zts-20230831/zip.so

我每次都重新启动 apachectl(在每个

stop
之后进行测试,并在每个
start
之后再次进行测试)。

关于如何让它发挥作用有什么想法吗?

我对其他模块也有类似的问题,但我在这里使用 ZipArchive 作为示例,因为与 mysql 相比,它应该非常简单。

php apache macports php-ziparchive
1个回答
0
投票

Apache 似乎没有正确加载 PHP 扩展。首先,通过在浏览器中检查

phpinfo()
来确保 Apache 使用正确的 php.ini。在您的
php.ini
中,尝试使用
extension=zip.so
而不是完整路径。进行更改后,使用
sudo apachectl restart
重新启动 Apache。如果仍然不起作用,请检查 Apache 的错误日志 (
/var/log/apache2/error_log
) 了解更多详细信息。这应该使 ZipArchive 在命令行和浏览器中都可用。

© www.soinside.com 2019 - 2024. All rights reserved.