symfony cli 创建项目后不会自动启动服务器,必须手动执行 symfony server:start;该命令支持 https/http/2、自动证书和环境变量热重载,默认监听 127.0.0.1:8000,首次运行自动弹出浏览器。

用 Symfony CLI 创建项目后,不能自动启动内置服务器,必须手动执行启动命令。所谓“自动”,仅指 symfony new --webapp 会预装 Web 所需全部组件(如 WebServerBundle、Twig、MakerBundle),让项目具备即启即用的条件,但服务本身不会在创建完成后自动运行。
创建项目并准备启动
执行以下命令生成可直接跑 Web 的项目:
-
symfony new myapp --webapp(推荐,拉取website-skeleton,含public/、index.php、预设.env.local) - 确保项目目录下存在
symfony可执行文件(Linux/macOS 在~/.symfony/bin/,Windows 安装时已注册 PATH) - 进入项目:
cd myapp
启动内置开发服务器
运行唯一有效命令:
-
symfony server:start—— 这是官方推荐且唯一支持 HTTPS + HTTP/2 + 自动证书 + 环境变量热重载的方式 - 默认监听
https://127.0.0.1:8000和http://127.0.0.1:8000(自动代理) - 首次运行会弹出浏览器打开欢迎页;如未弹出,手动访问即可
验证是否真正就绪
别只看页面,三步快速确认环境无隐患:
-
php bin/console about→ 检查输出中是否有 Flex enabled: yes、APP_ENV=dev、APP_DEBUG=1 -
php bin/console list→ 确认看到make:controller、server:*等命令,说明 MakerBundle 和 WebServerBundle 已加载 -
php bin/console make:controller Test→ 创建后访问/test能返回响应,证明路由与内核通路完整
常见失败原因与绕过方式
如果 symfony server:start 报错或打不开页面,优先排查这几项:
-
端口被占:改用
symfony server:start --port=8001 -
证书问题(尤其 Windows):加
--no-tls启用纯 HTTP:symfony server:start --no-tls -
找不到 symfony 命令:确认终端已重启,或手动执行
~/.symfony/bin/symfony server:start -
权限不足(Linux/macOS):运行
chmod +x bin/console











