PHP未启用openssl扩展会导致SSL函数失败等问题,需通过修改php.ini、集成环境图形界面、Linux包管理器、Homebrew重装或验证测试等方法启用并确认生效。

如果您在浏览器中运行PHP脚本时遇到SSL相关函数调用失败、cURL HTTPS请求报错或Composer无法连接远程仓库等问题,则可能是PHP未启用openssl扩展。以下是开启openssl扩展的多种方法:
一、修改php.ini文件启用openssl
openssl扩展默认编译进PHP,但可能被注释禁用。需编辑PHP配置文件php.ini,取消对openssl扩展的注释。
1、找到php.ini文件所在路径,可通过phpinfo()页面或命令行执行php --ini确认。
2、使用文本编辑器打开php.ini文件。
立即学习“PHP免费学习笔记(深入)”;
3、搜索extension=openssl或extension=php_openssl.dll(Windows)或extension=php_openssl.so(Linux/macOS)。
4、若该行以分号;开头,则删除分号使其生效:extension=openssl(PHP 8.0+推荐写法)或extension=php_openssl.dll(Windows旧版本)。
5、保存php.ini文件。
6、重启Web服务器(如Apache或Nginx)或PHP-FPM服务。
二、通过PHP安装包管理器启用(Windows XAMPP/WAMP)
集成环境通常提供图形化开关,避免手动编辑配置文件出错。
1、打开XAMPP控制面板,点击Apache右侧的Config按钮。
2、选择PHP (php.ini),在打开的文件中定位openssl配置项。
3、取消注释extension=openssl并保存。
4、在XAMPP控制面板中停止再启动Apache服务。
5、对于WAMP,左键点击系统托盘图标,依次选择PHP → PHP Extensions → openssl,勾选后等待自动重启。
三、Linux下通过包管理器安装并启用openssl支持
部分Linux发行版的PHP最小化安装不包含openssl扩展,需单独安装扩展包并确保模块加载。
1、Ubuntu/Debian系统执行:sudo apt install php-opcache php-curl php-xml php-zip php-mbstring(其中php-curl依赖openssl)。
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速
2、CentOS/RHEL系统执行:sudo yum install php-common php-cli php-curl 或 sudo dnf install php-common php-cli php-curl。
3、确认openssl扩展文件存在:ls /usr/lib/php/*/openssl.so 或 find /usr -name "openssl.so" 2>/dev/null。
4、若php.ini中无对应extension指令,在/etc/php/*/mods-available/目录下创建openssl.ini,内容为extension=openssl。
5、启用配置:sudo phpenmod -s ALL openssl(Debian/Ubuntu)或手动在php.ini中添加扩展行。
6、重启Web服务器:sudo systemctl restart apache2 或 sudo systemctl restart php-fpm。
四、macOS使用Homebrew安装PHP时启用openssl
Homebrew安装的PHP默认启用openssl,但若使用自定义编译或旧版本,可能需重新链接依赖。
1、确认已安装OpenSSL:brew install openssl。
2、查看当前PHP是否链接到Homebrew OpenSSL:php -i | grep -i openssl,检查OpenSSL Library Version和OpenSSL Header Version是否非空。
3、若未启用,重新安装PHP并强制绑定:brew reinstall php --with-openssl(适用于旧版brew)或升级至新版后执行brew unlink php && brew link php。
4、验证扩展是否加载:php -m | grep openssl应输出openssl。
五、验证openssl是否成功启用
启用操作完成后,必须验证扩展是否实际载入且功能可用,避免配置未生效或路径错误。
1、创建测试文件test_openssl.php,内容为:
2、在浏览器中访问该文件,返回bool(true)表示扩展已加载。
3、进一步测试HTTPS请求能力:。
4、命令行执行:php -r "print_r(openssl_get_cipher_methods());",若输出加密算法列表则表明功能完整。










