MacOS Catalina下启用PHP 8.2的OpenSSL模块求助(MacPorts环境)
解决MacPorts安装PHP 8.2后OpenSSL扩展未启用的问题
1. 找到PHP 8.2的正确配置文件路径
MacPorts安装的PHP配置路径和系统默认的不一样,先执行命令确认当前加载的配置文件位置:
php --ini
如果输出里Loaded Configuration File显示(none),说明当前PHP没加载有效的配置文件,需要手动生成。
2. 生成可用的php.ini配置文件
MacPorts会在/opt/local/etc/php8.2/目录下提供配置模板,复制模板生成正式配置文件:
sudo cp /opt/local/etc/php8.2/php.ini-production /opt/local/etc/php8.2/php.ini
如果是开发环境,也可以用php.ini-development模板。
3. 配置扩展路径并启用OpenSSL
编辑生成的php.ini文件:
sudo nano /opt/local/etc/php8.2/php.ini
- 找到
extension_dir项,去掉开头的分号,设置为MacPorts的PHP扩展目录(版本不同目录后缀可能有变化,可先去/opt/local/lib/php8.2/extensions/下查看):extension_dir = "/opt/local/lib/php8.2/extensions/no-debug-non-zts-20220829" - 找到
extension=openssl行,去掉开头的分号;如果没找到,直接在文件末尾添加这行。
4. 验证扩展是否加载
保存配置后,执行命令检查OpenSSL扩展是否已加载:
php -m | grep openssl
如果输出openssl,说明扩展启用成功。如果是Web环境用了PHP-FPM,需要重启服务:
sudo port unload php82-fpm && sudo port load php82-fpm
5. 重新执行Composer命令
现在再尝试安装依赖:
php composer.phar require google/apiclient
补充:检查PHP与OpenSSL的依赖关联
如果以上步骤无效,确认MacPorts安装的PHP 8.2是否关联了OpenSSL:
port deps php82
如果输出里没有OpenSSL相关依赖,重新安装PHP 8.2并指定OpenSSL:
sudo port install php82 +openssl
内容的提问来源于stack exchange,提问作者Tyler
相关产品推荐
相关产品推荐

