Symfony是一个流行的PHP框架,使用Docker可以快速搭建开发环境。以下是使用Docker安装Symfony的步骤:
安装Docker:确保已安装Docker和Docker Compose
创建Symfony项目:
docker run --rm -v $(pwd):/app composer create-project symfony/skeleton:"6.4.*" my_project
进入项目目录:
cd my_project
创建Docker Compose文件:
创建docker-compose.yml
文件,内容如下:
version: '3.8'
services:
app:
image: php:8.2-fpm
volumes:
- .:/var/www/html
working_dir: /var/www/html
depends_on:
- db
db:
image: mariadb:10.6
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: symfony
MYSQL_USER: symfony
MYSQL_PASSWORD: symfony
ports:
- "3306:3306"
nginx:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- .:/var/www/html
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
创建Nginx配置文件:
创建docker/nginx.conf
文件:
server {
listen 80;
server_name localhost;
root /var/www/html/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass app: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 up -d
访问应用:
打开浏览器访问 http://localhost:8080
Symfony官方提供了一个更完整的Docker解决方案:
克隆Symfony Docker仓库:
git clone https://github.com/dunglas/symfony-docker
创建Symfony项目:
cd symfony-docker
docker-compose build
docker-compose up -d
创建新Symfony应用:
docker-compose exec php symfony new --full my_project
访问应用:
打开浏览器访问 http://localhost:8000
权限问题:
sudo chown -R $USER:$USER .
安装额外扩展:
编辑Dockerfile
添加:
RUN docker-php-ext-install pdo pdo_mysql
清除缓存:
docker-compose exec php bin/console cache:clear
查看日志:
docker-compose logs -f
这样你就有了一个完整的Symfony开发环境,包含PHP、Nginx和MySQL数据库。