必须用composer create-project symfony/website-skeleton myapp创建完整Web项目,进入目录后执行php -S localhost:8000 -t public启动服务器,访问https://www.php.cn/link/fcbb3a1c04ec11f1506563c26ca63774看到带Web Profiler图标的欢迎页即成功。

想在五分钟内看到第一个 Symfony 页面,关键不是从 skeleton 模板起步,而是跳过手动集成 Twig、Doctrine 和 Web Profiler 的繁琐步骤,直接用官网推荐的完整堆栈模板创建项目并启动服务——这一步卡住的人,90% 是因为用了 skeleton 或漏掉了 -t public 参数。
创建带 Web 工具的完整项目
执行 composer create-project symfony/website-skeleton myapp。这个命令会自动安装 Twig、MakerBundle、Flex、WebProfilerBundle 和 Doctrine,比 symfony new myapp --webapp 更早兼容 Symfony 6.4+ 的默认行为。
进入项目目录:cd myapp。
运行 php bin/console about,确认输出中同时出现 【Flex: enabled】 和 【Environment: dev】 ——如果 Environment 显示 prod 或 missing,说明 .env 文件未生成或 APP_ENV 被意外覆盖,需检查根目录是否存在 .env.local。
启动内置服务器并验证欢迎页
执行 php -S localhost:8000 -t public。注意必须带 -t public,否则请求无法命中 front controller,浏览器只会看到 “No input file specified”。
打开浏览器,访问 https://www.php.cn/link/fcbb3a1c04ec11f1506563c26ca63774。页面显示绿色 Symfony 标志 + “Welcome to Symfony” 文字,且右下角出现 Web Profiler 小图标(黑色小方块),才算真正就绪。
如果页面空白或报错 404,先检查 public/index.php 是否存在;若存在但仍失败,运行 ls -l public/ 确认 index.php 权限为 644,且无 .htaccess 干扰(PHP 内置服务器不读该文件)。
快速改出你的第一行动态内容
第一步:运行 php bin/console make:controller HomeController,它会生成 src/Controller/HomeController.php 和 templates/home/index.html.twig。
第二步:编辑 src/Controller/HomeController.php,将 index() 方法内的 return 改为:return $this->render('home/index.html.twig', ['name' => '李四']);
第三步:打开 templates/home/index.html.twig,把默认内容删掉,写入:<h1>你好,{{ name }}!</h1>
刷新 https://www.php.cn/link/fcbb3a1c04ec11f1506563c26ca63774,页面应显示 “你好,李四!”。这一步验证了控制器→模板→变量传递的完整链路,不是静态 HTML 假象。


















