You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL环境下启动PHP内置服务的Bash函数卡住无法打开浏览器问题

问题根因

Bash 默认同步执行命令,前一条命令完全执行退出后才会运行下一条。你定义的函数中php -S localhost:"$1"是前台阻塞运行的,进程会持续挂起监听请求,不会主动退出,因此后续的浏览器启动命令根本没有执行机会。只有你手动终止PHP进程后,第二条命令才会触发,自然此时PHP服务已经关闭,无法正常访问。

修复后的自定义函数

只需要把PHP启动命令放到后台运行即可,修改.bashrc中的函数代码如下:

phpLocal(){
        # 末尾加 & 表示将PHP服务放到后台运行,不阻塞后续命令
        php -S localhost:"$1" &
        # 可选:加0.5秒延迟,确保PHP服务启动完成再打开浏览器,避免刚打开时访问失败
        sleep 0.5
        cmd.exe /C start http://localhost:"$1"
}

修改完成后执行source ~/.bashrc让配置生效,再运行phpLocal 8200即可符合预期运行。

补充说明

如果后续需要停止对应端口的PHP后台服务,可以执行以下命令:

# 把8200替换为你实际使用的端口即可
lsof -t -i:8200 | xargs kill -9

内容的提问来源于stack exchange,提问作者Wally

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:48:03