frankenphp改端口后浏览器必须显式输入完整地址(如http://localhost:8080),否则默认请求:80或:443导致连接拒绝;docker需确保-p映射与server_name一致,toml中address绑定影响可访问范围,https非443端口也须带端口号访问。

改了 FrankenPHP 端口,浏览器地址必须显式带上新端口号,否则默认走 :80 或 :443,必然 404 或连接拒绝。
FrankenPHP CLI 模式下改了 --addr 后怎么访问
CLI 启动时用了 --addr :8080(或 --addr 127.0.0.1:8080),那浏览器必须输完整地址:
-
http://localhost:8080(推荐,最稳) -
http://127.0.0.1:8080(等效,但某些 PHP 逻辑里$_SERVER['HTTP_HOST']可能含端口) - 不能只输
http://localhost——它会默认连 :80,而 FrankenPHP 根本没监听那里
常见错误:改了端口却还用 http://localhost 访问,结果页面空白或报 ERR_CONNECTION_REFUSED。
Docker 启动时改了 SERVER_NAME=:8080,但 -p 映射错位怎么办
SERVER_NAME=:8080 告诉 FrankenPHP 的 Caddy 在容器内监听 :8080,但 Docker 必须同步把宿主机端口映射过去,否则外部根本触达不了:
- ✅ 正确:
docker run -e SERVER_NAME=:8080 -p 8080:8080 dunglas/frankenphp - ❌ 错误:
-p 8080:80—— 容器内监听 :8080,但你把宿主机 8080 转发到了容器的 :80(那里没服务) - ⚠️ 表面能通但有隐患:
-p 8080:8080+SERVER_NAME=:80—— 容器内监听 :80,宿主机 8080 转发过去虽能访问,但$_SERVER['HTTP_HOST']会是localhost:8080,Laravel、Symfony 等框架生成的 URL 可能带错端口
frankenphp.toml 里改了 server.address,访问时要注意什么
TOML 配置中改了 address = "127.0.0.1:9000",意味着 FrankenPHP 服务只绑在本地回环的 :9000,不监听 0.0.0.0:
- 只能从本机访问:
http://127.0.0.1:9000或http://localhost:9000 - 不能用局域网 IP(如
http://192.168.x.x:9000)访问——绑定地址限制了网络接口 - 想局域网可访问?得改成
address = ":9000"(注意前面没 IP,表示监听所有接口) - 改完必须重启 FrankenPHP 进程,配置不会热重载
HTTPS 端口不是 :443 时,浏览器地址怎么写
本地开发用 mkcert 通常配 :4433 这类非特权端口,此时 HTTPS 地址必须包含端口:
- ✅ 正确:
https://localhost:4433 - ❌ 错误:
https://localhost—— 浏览器强制走 :443,FrankenPHP 没监听,直接连接失败 - 证书必须匹配域名,
localhost和127.0.0.1都得在证书的 SAN(Subject Alternative Name)里,否则 Chrome 会拦截
端口数字本身不改变 HTTPS 加密行为,只是网络层寻址标识;但漏写它,整个请求就发不到 FrankenPHP。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











