Symfony是一个流行的PHP框架,结合Docker可以快速搭建开发环境。以下是详细安装步骤:
确保已安装: - Docker Desktop (Windows/Mac) 或 Docker Engine (Linux) - Docker Compose
# 安装Symfony CLI (如果尚未安装)
curl -sS https://get.symfony.com/cli/installer | bash
# 创建新项目
symfony new my_project --full --docker
mkdir symfony-docker && cd symfony-docker
docker-compose.yml
文件:version: '3.8'
services:
php:
image: php:8.2-fpm
volumes:
- ./:/var/www/html
working_dir: /var/www/html
depends_on:
- mysql
- redis
nginx:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./:/var/www/html
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: symfony
MYSQL_USER: symfony
MYSQL_PASSWORD: symfony
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
mysql_data:
docker/nginx/default.conf
:server {
listen 80;
index index.php;
server_name localhost;
root /var/www/html/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}
docker-compose run --rm php bash -c "composer create-project symfony/website-skeleton ."
docker-compose up -d
访问 http://localhost:8080
应该能看到Symfony欢迎页面。
# 进入PHP容器
docker-compose exec php bash
# 在容器内运行Symfony命令
docker-compose exec php bin/console make:controller
# 安装依赖
docker-compose exec php composer require [package]
# 查看日志
docker-compose logs -f
在.env
文件中配置数据库连接:
DATABASE_URL="mysql://symfony:symfony@mysql:3306/symfony?serverVersion=8.0"
创建数据库和迁移:
docker-compose exec php bin/console doctrine:database:create
docker-compose exec php bin/console make:migration
docker-compose exec php bin/console doctrine:migrations:migrate
在docker-compose.yml
的php服务中添加:
environment:
XDEBUG_MODE: develop,debug
XDEBUG_CONFIG: client_host=host.docker.internal
volumes:
- ./docker/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
创建docker/php/conf.d/xdebug.ini
:
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=yes
# 安装常用扩展
docker-compose exec php docker-php-ext-install pdo pdo_mysql
# 安装Composer
docker-compose exec php curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 清理开发依赖
docker-compose exec php composer install --no-dev --optimize-autoloader
# 缓存预热
docker-compose exec php bin/console cache:clear --env=prod --no-debug
通过以上步骤,您已经建立了一个完整的Symfony Docker开发环境,可以快速开始项目开发。