安装与配置 #
一、环境要求 #
1.1 系统要求 #
| 要求 | 最低版本 | 推荐版本 |
|---|---|---|
| PHP | 8.2+ | 8.3+ |
| Composer | 2.0+ | 最新版 |
| 内存 | 256MB | 512MB+ |
| 磁盘空间 | 100MB | 500MB+ |
1.2 PHP扩展 #
bash
# 必需扩展
php -m | grep -E 'ctype|iconv|pcre|session|simplexml|tokenizer'
# 推荐扩展
php -m | grep -E 'intl|openssl|pdo|pdo_mysql|mbstring|xml|zip|curl'
# 检查PHP配置
php -i | grep -E 'memory_limit|upload_max_filesize|post_max_size'
1.3 Composer安装 #
bash
# macOS/Linux
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# 验证安装
composer --version
二、安装Symfony CLI #
2.1 安装Symfony命令行工具 #
bash
# macOS (使用Homebrew)
brew install symfony-cli/tap/symfony-cli
# Linux
curl -sS https://get.symfony.com/cli/installer | bash
# 验证安装
symfony --version
2.2 检查系统配置 #
bash
# 检查Symfony要求
symfony check:requirements
# 输出示例
# [OK] Your system is ready to run Symfony projects
三、创建Symfony项目 #
3.1 使用Symfony CLI创建 #
bash
# 创建完整版项目
symfony new my_project --full
# 创建精简版项目
symfony new my_project
# 创建指定版本
symfony new my_project --version=6.4
3.2 使用Composer创建 #
bash
# 创建完整版项目
composer create-project symfony/website-skeleton my_project
# 创建精简版项目
composer create-project symfony/skeleton my_project
3.3 项目类型对比 #
| 类型 | 说明 | 适用场景 |
|---|---|---|
| website-skeleton | 完整版,包含常用组件 | 传统Web应用 |
| skeleton | 精简版,最小化安装 | API、微服务 |
3.4 完整版包含的组件 #
text
website-skeleton 包含:
├── Doctrine ORM 数据库ORM
├── Twig 模板引擎
├── WebProfiler 调试工具栏
├── Monolog 日志组件
├── MakerBundle 代码生成器
├── Form 表单组件
├── Validator 验证组件
├── Security 安全组件
└── PHPUnit 测试框架
四、项目配置 #
4.1 环境变量配置 #
bash
# .env 文件
APP_ENV=dev
APP_SECRET=your-secret-key-here
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=8.0"
# .env.local (本地覆盖,不提交Git)
APP_ENV=dev
APP_DEBUG=true
DATABASE_URL="mysql://root:password@127.0.0.1:3306/symfony_db"
4.2 数据库配置 #
yaml
# config/packages/doctrine.yaml
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
driver: pdo_mysql
server_version: '8.0'
charset: utf8mb4
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
4.3 常用配置文件 #
text
config/
├── packages/ # 环境配置
│ ├── dev/ # 开发环境
│ ├── prod/ # 生产环境
│ ├── test/ # 测试环境
│ ├── doctrine.yaml # Doctrine配置
│ ├── framework.yaml # 框架配置
│ ├── routing.yaml # 路由配置
│ ├── security.yaml # 安全配置
│ └── twig.yaml # Twig配置
├── routes/ # 路由定义
├── bundles.php # Bundle注册
├── services.yaml # 服务配置
└── routes.yaml # 主路由配置
五、运行项目 #
5.1 使用Symfony CLI #
bash
# 进入项目目录
cd my_project
# 启动开发服务器
symfony server:start
# 后台运行
symfony server:start -d
# 查看服务器状态
symfony server:status
# 停止服务器
symfony server:stop
5.2 使用PHP内置服务器 #
bash
# 启动服务器
php -S localhost:8000 -t public/
# 指定路由文件
php -S localhost:8000 -t public/ public/index.php
5.3 访问项目 #
text
开发环境地址:
http://localhost:8000
调试工具栏:
http://localhost:8000/_profiler
六、开发工具配置 #
6.1 IDE推荐 #
| IDE | 推荐插件 |
|---|---|
| PhpStorm | Symfony Plugin, PHP Annotations |
| VS Code | PHP Intelephense, Symfony Snippets |
| Sublime Text | PHP Companion, Symfony Snippets |
6.2 PhpStorm配置 #
text
1. 安装Symfony Plugin插件
2. Settings → Languages & Frameworks → PHP → Symfony
3. 启用Plugin,设置项目路径
4. 配置Composer自动加载
6.3 调试配置 #
ini
; php.ini 配置Xdebug
[xdebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
七、Composer使用 #
7.1 常用命令 #
bash
# 安装依赖
composer install
# 更新依赖
composer update
# 添加依赖
composer require doctrine/orm
# 添加开发依赖
composer require --dev phpunit/phpunit
# 移除依赖
composer remove doctrine/orm
7.2 Symfony Flex #
Symfony Flex是Composer插件,简化配置:
bash
# 安装组件时自动配置
composer require logger
# 安装特定版本
composer require doctrine/orm:^2.0
# 查看可用recipes
composer recipes
7.3 常用组件安装 #
bash
# API开发
composer require api
# 安全认证
composer require security
# 表单组件
composer require form validator
# ORM数据库
composer require doctrine
# 日志组件
composer require logger
# 调试工具
composer require --dev profiler
八、版本管理 #
8.1 .gitignore配置 #
gitignore
# .gitignore
# 忽略本地环境配置
/.env.local
/.env.local.php
/.env.*.local
# 忽略依赖目录
/vendor/
# 忽略缓存和日志
/var/
!/var/.gitkeep
# 忽略IDE配置
.idea/
.vscode/
*.swp
*.swo
# 忽略系统文件
.DS_Store
Thumbs.db
8.2 初始化Git仓库 #
bash
# 初始化仓库
git init
# 添加所有文件
git add .
# 提交
git commit -m "Initial commit"
九、生产环境配置 #
9.1 环境优化 #
bash
# 切换到生产环境
APP_ENV=prod
# 清理缓存
php bin/console cache:clear --env=prod
# 预热缓存
php bin/console cache:warmup --env=prod
# 安装依赖(无开发依赖)
composer install --no-dev --optimize-autoloader
9.2 安全配置 #
bash
# 生成APP_SECRET
php -r 'echo bin2hex(random_bytes(16)) . PHP_EOL;'
# 检查安全漏洞
symfony security:check
9.3 性能优化 #
bash
# 优化自动加载
composer dump-autoload --optimize --no-dev --classmap-authoritative
# 合并配置缓存
php bin/console cache:pool:prune
十、常见问题 #
10.1 权限问题 #
bash
# 修复var目录权限
chmod -R 777 var/
# 使用ACL(推荐)
HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | head -1 | cut -d\ -f1)
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
10.2 Composer内存不足 #
bash
# 临时增加内存
COMPOSER_MEMORY_LIMIT=-1 composer install
# 永久设置
php -d memory_limit=-1 /usr/local/bin/composer install
10.3 清除缓存 #
bash
# 清除所有缓存
php bin/console cache:clear
# 清除特定缓存池
php bin/console cache:pool:clear cache.app
十一、总结 #
本章学习了:
- 环境要求和PHP扩展
- Symfony CLI安装使用
- 项目创建方法
- 环境变量和配置文件
- 开发服务器运行
- 开发工具配置
- 生产环境优化
下一章将学习 目录结构。
最后更新:2026-03-28