国内初始化Symfony项目必须配阿里云镜像、清缓存、用website-skeleton骨架并加--prefer-dist--no-dev参数,否则90%卡在Loading composer repositories;验证需见mirrors.aliyun.com/composer日志及欢迎页。

直接用 composer create-project 初始化 Symfony 项目,关键不是“能不能跑”,而是“别卡在第一步”。国内环境下不配镜像、不清缓存、不加参数,90% 会卡在 Loading composer repositories——这不是网速问题,是 packagist.org 根本连不上。
一、必须先配中文镜像
执行这条命令(注意拼写和斜杠):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效:
-
composer config -g repo.packagist输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}或至少是完整 URL 字符串 - 如果输出空、
null、或仍是https://packagist.org,说明没写进去,重试 - 漏掉
repo.packagist的repo(比如写成repos.packagist)、漏掉composer类型、URL 少末尾斜杠,都会静默失效
二、务必清空 Composer 缓存
旧缓存里存着 packagist.org 的元数据,哪怕镜像已换,它仍会尝试从海外源解析,导致卡在 DNS 或 TLS 握手:
composer clear-cache- 尤其之前失败过,缓存大概率已污染,这步不能跳
三、选对骨架 + 加关键参数启动
新手别用 symfony/skeleton(太精简),直接上带 Web 堆栈的完整版:
composer create-project symfony/website-skeleton myapp --prefer-dist --no-dev -vvv-
--prefer-dist:强制下载 ZIP 包,跳过 Git 克隆(避免 dev-main 分支拉取失败) -
--no-dev:跳过 PHPUnit、PHPStan 等开发依赖,省 60%+ 时间和空间 -
-vvv:看日志确认是否真从mirrors.aliyun.com/composer下载(出现该 URL 才算到位)
四、进项目后快速验证是否成功
进入目录后立刻做三件事:
-
cd myapp && php bin/console about—— 看到 Flex: enabled 表示配置中枢就位 -
php -S localhost:8000 -t public启动内置服务器(注意是-t public,不是index.php) - 浏览器打开 https://www.php.cn/link/fcbb3a1c04ec11f1506563c26ca63774,看到 Symfony 欢迎页才算真正成功
五、让页面动起来:加一个控制器
欢迎页是静态的,要验证 MVC 流程,三步走:
php bin/console make:controller HomepageController- 编辑
src/Controller/HomepageController.php,把index()方法改成:return $this->render('homepage/index.html.twig', ['name' => '张三']); - 在
templates/homepage/index.html.twig中写:你好,{{ name }}!
- 访问 https://www.php.cn/link/fcbb3a1c04ec11f1506563c26ca63774/,看到带名字的标题,MVC 就通了











