phpstudy 跑通 https 需同时启用 php 的 openssl 扩展(通过 php.ini 和 test.php 验证)并配置 apache 的 ssl 模块、自签名证书路径及虚拟主机,最后重启服务;缺一不可。

PHPStudy 要跑通 HTTPS,得同时满足两个基础条件:PHP 的 openssl 扩展已启用,且 Web 服务器(Apache 或 Nginx)已加载 SSL 模块并正确配置证书。缺一不可,否则访问 https://localhost 会报错、加密函数失效、或直接 500/404。
确认并启用 PHP 的 openssl 扩展
很多问题其实卡在这一步——看似勾选了扩展,但 PHP 进程并未真正加载。
- 打开 PHPStudy 控制面板 →「其他选项菜单」→「PHP 扩展及设置」→ 找到 php_openssl,确保已勾选
- 更关键的是验证:新建一个
test.php,内容为<?php var_dump(extension_loaded('openssl')); ?>,浏览器访问,输出bool(true)才算生效 - 若为 false,请检查对应 PHP 版本的
php.ini文件(用php --ini命令确认真实路径),确保含extension=php_openssl.dll(Windows)且php_openssl.dll确实存在于ext/目录下 - 修改后务必在 PHPStudy 中「重启 PHP 服务」,不是只重启 Apache/Nginx
Apache 下启用 SSL 模块与基础配置
PHPStudy 新版默认用 Apache,HTTPS 依赖 mod_ssl 模块和对应配置文件。
- 点击「其他选项菜单」→「网站设置」→「Apache 配置」→ 打开
httpd.conf - 取消以下两行注释(删除开头的
#):LoadModule ssl_module modules/mod_ssl.soInclude conf/extra/httpd-ssl.conf - 保存后关闭编辑器;若
conf/extra/httpd-ssl.conf不存在,可手动创建(内容见下一步)
配置自签名证书与虚拟主机(443 端口)
开发测试用自签名证书即可,重点是路径准确、格式合规、无密码保护。
- 用 OpenSSL 生成证书(管理员权限运行 CMD):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
Common Name 填localhost(若配域名,此处必须一致) - 将
server.crt和server.key放入PHPTutorialApacheconfssl(路径不存在请手动创建) - 确保私钥无密码:执行
openssl rsa -in server.key -out server.key覆盖原文件 - 编辑
conf/extra/httpd-ssl.conf,找到<virtualhost _default_:443></virtualhost>区块,修改为:
<virtualhost><br> DocumentRoot "D:/PHPTutorial/WWW"<br> ServerName localhost<br> SSLEngine on<br> SSLCertificateFile "D:/PHPTutorial/Apache/conf/ssl/server.crt"<br> SSLCertificateKeyFile "D:/PHPTutorial/Apache/conf/ssl/server.key"<br></virtualhost>
- 路径中的斜杠统一用正斜杠
/或双反斜杠\,单反斜杠易导致 Apache 启动失败
可选:HTTP 自动跳转 HTTPS
避免手动输 https,提升开发体验。
- 在
httpd.conf中你网站对应的<virtualhost></virtualhost>区块内,添加:
RewriteEngine On<br>RewriteCond %{HTTPS} off<br>RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- 同样需确认
mod_rewrite已启用(httpd.conf中LoadModule rewrite_module modules/mod_rewrite.so未被注释)
完成以上步骤后,在 PHPStudy 主界面先「停止」再「启动」Apache。访问 https://localhost,首次会提示不安全,点「高级」→「继续访问」即可。地址栏出现锁形图标,说明 HTTPS 已就绪。不复杂但容易忽略证书路径拼写、私钥密码、以及 PHP 和 Apache 两层 openssl 是否真正生效。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











