我正在尝试在 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 相比,它应该非常简单。
Apache 似乎没有正确加载 PHP 扩展。首先,通过在浏览器中检查
phpinfo()
来确保 Apache 使用正确的 php.ini。在您的 php.ini
中,尝试使用 extension=zip.so
而不是完整路径。进行更改后,使用 sudo apachectl restart
重新启动 Apache。如果仍然不起作用,请检查 Apache 的错误日志 (/var/log/apache2/error_log
) 了解更多详细信息。这应该使 ZipArchive 在命令行和浏览器中都可用。