用symfony cli创建项目核心三步:先确保symfony命令全局可用(验证symfony -v输出版本号),再执行symfony new myapp --webapp生成完整骨架,最后用symfony server:start启动服务并验证php bin/console about、list及make:controller全通。

用 Symfony CLI 全局调用创建项目,核心就三点:CLI 工具必须可全局执行、项目命令要选对骨架、启动服务得用配套方式——跳过任一环节都可能卡在“找不到命令”或“页面 404”。
确保 symfony 命令能全局运行
安装后必须验证 symfony -v 能输出版本号(如 v5.17.1),否则后续所有命令都会失败。常见问题:
- macOS/Linux:安装后未将
~/.symfony/bin加入 PATH,需手动执行export PATH="$HOME/.symfony/bin:$PATH",并写入~/.zshrc或~/.bash_profile - Windows:PowerShell 默认禁用脚本执行,改用 CMD 或 Git Bash 运行;若提示“找不到路径”,检查是否安装了 x64 版本且系统为 64 位
- 重启终端是最快验证方式,避免因 shell 缓存导致误判
用 --webapp 创建即用型项目
执行 symfony new myapp --webapp 是目前最稳妥的起点。它不依赖 composer create-project,也不需要手动配环境变量或装 Bundle:
- 自动拉取
symfony/website-skeleton,内置 Twig、MakerBundle、WebProfiler、Doctrine 和 Flex 配置中枢 - 生成完整的
public/index.php和预设.env.local,APP_ENV=dev和APP_DEBUG=1已生效 - 项目名不能含空格或中文,否则 Composer 安装阶段会中断
- 不要用 --full:该参数在 Symfony 7.0+ 已弃用,强行使用可能生成缺失 Twig 或 Webpack Encore 的残缺骨架
启动服务必须用 symfony server:start
进入项目目录后,只认 symfony server:start,别用旧命令:
-
php bin/console server:run在 PHP 8.0+ 上大概率报错,且不支持 HTTPS 和 HTTP/2 -
php -S内置服务器无法代理静态资源和 .env 变量,访问 /_profiler 会失败 -
symfony server:start自动处理 TLS 证书、反向代理、日志轮转,首次运行还会自动打开浏览器 - 若提示 “Unable to find the 'symfony' binary”,说明当前目录下没有 symfony 可执行文件——这不是项目问题,而是 CLI 未全局可用
三步快速验证项目真跑通
欢迎页只是表象,真正确认环境就绪要看控制台输出:
- 运行
php bin/console about,确认三行同时存在:Flex enabled: yes、APP_ENV=dev、APP_DEBUG=1 - 运行
php bin/console list,看到make:controller、doctrine:migrations、server:start等超过 120 条命令 - 执行
php bin/console make:controller TestController,然后访问https://127.0.0.1:8000/test能返回页面,说明路由、内核、模板全链路通畅











