答案是:三步完成——确认PHP(≥8.2)、Composer、Apache可用;用Symfony CLI执行symfony new my_project --full创建项目;Apache指向public目录并启用mod_rewrite,配合hosts绑定symfony.local。

在 Windows 上安装 Symfony 并配置 Apache,核心是三步:确保 PHP 环境可用、用现代方式创建 Symfony 项目、把项目正确挂到 Apache 下运行。不用手动解压旧版包,也不用折腾 PEAR 或 path 里反复加路径——2026 年主流做法已统一为 Symfony CLI + Composer,干净、可复现、兼容 PHP 8.2+。
一、确认并准备基础环境
打开命令提示符(CMD)或 PowerShell,逐条执行检查:
-
PHP 版本 ≥ 8.2:运行
php -v,若提示“不是内部命令”,说明 PHP 未加入系统 PATH —— 去「系统属性 → 高级 → 环境变量 → 系统变量 → Path」末尾添加你的 PHP 安装目录(如C:\php),重启终端再试; -
Composer 已安装:运行
composer --version,无响应则去 getcomposer.org 下载安装程序(.exe)一键安装; -
Apache 正常运行:确保 WAMP/XAMPP/Manual Apache 已启动,浏览器访问
http://localhost能看到欢迎页; -
关闭 register_globals 和 magic_quotes_gpc(若使用旧版 PHP):编辑
php.ini,确认这两项为Off;新版 PHP(≥8.0)已移除,无需操作。
二、用 Symfony CLI 创建项目(推荐方式)
这是目前最稳定、最省心的初始化方式,自动检测环境、下载依赖、生成结构清晰的项目:
- 下载并安装 Symfony CLI:
访问 symfony.com/download,下载 Windows 版symfony-cli-windows-amd64.exe(或 ARM64),重命名为symfony.exe,放入任意 PATH 目录(如C:\Windows或你自己的F:\bin); - 验证安装:
symfony -v应输出版本号(如v5.12.0); - 创建新项目:
symfony new my_project --full
(--full表示带 Webpack Encore、Doctrine、Twig 等常用组件;若只需最小骨架,用--webapp); - 进入项目:
cd my_project,运行php -S localhost:8000 -t public可快速验证项目能跑起来(临时内置服务器)。
三、配置 Apache 指向 Symfony 项目
Apache 不能直接指向项目根目录,必须指向 public/ 子目录,并启用重写规则支持路由(如 /admin/user)。
- 打开 Apache 的
httpd.conf(WAMP 在wamp64/bin/apache/conf/httpd.conf;XAMPP 在xampp/apache/conf/httpd.conf); - 确认以下模块已取消注释(去掉前面的
#):LoadModule rewrite_module modules/mod_rewrite.soLoadModule headers_module modules/mod_headers.so - 在文件末尾添加虚拟主机配置(替换
F:/my_project为你的实际路径):
<VirtualHost *:80>
ServerName symfony.local
DocumentRoot "F:/my_project/public"
<Directory "F:/my_project/public">
AllowOverride All
Require all granted
Options -Indexes
</Directory>
</VirtualHost>
- 保存后,编辑系统 hosts 文件:
C:\Windows\System32\drivers\etc\hosts,用管理员权限记事本打开,末尾新增一行:127.0.0.1 symfony.local - 重启 Apache(WAMP/XAMPP 面板点重启,或命令行
httpd -k restart); - 浏览器访问
http://symfony.local—— 应看到 Symfony 默认欢迎页(含 “Congratulations” 字样)。
四、常见问题快速处理
如果页面报错或白屏,按顺序排查:
-
403 Forbidden:检查
DocumentRoot路径是否拼写正确,且 Apache 有读取该目录权限(WAMP/XAMPP 通常默认允许); -
500 Internal Server Error:查看 Apache 错误日志(
logs/error.log),大概率是.htaccess重写失败 —— 确认AllowOverride All已设,且mod_rewrite已启用; -
空白页 + 无错误:检查
public/index.php是否被意外修改;运行php bin/console cache:clear --env=prod清理生产缓存; -
“The /var directory is not writable”:以管理员身份运行 CMD,执行:
mkdir F:\my_project\var\cache\prodmkdir F:\my_project\var\log
再给var/目录赋写入权限(右键 → 属性 → 安全 → 编辑 → 添加 Users → 勾选“写入”)。


















