安装与配置 #

一、环境要求 #

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