[Symfony 系列] 一、安装和配置

架构设计

服务器:Ubuntu 20 x64

Mysql: 8.0

PHP: 8.1

Symfony: 6.1

Docker 中部署 Symfony+Caddy, apt 安装数据库,方便数据库升级为独立的数据库服务器。

安装

下载最新版 Symfony Docker 环境到本地,下载地址:https://github.com/dunglas/symfony-docker

集成环境包含了 PHP、Web 服务器、数据库,使用前需要关闭或删除不需要的设置。

修改 docker-compose.yml 配置

找到数据库配置,关闭或删除代码

###> doctrine/doctrine-bundle ###
  # database:
  #   image: postgres:${POSTGRES_VERSION:-13}-alpine
  #   environment:
  #     POSTGRES_DB: ${POSTGRES_DB:-app}
  #     # You should definitely change the password in production
  #     POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ChangeMe}
  #     POSTGRES_USER: ${POSTGRES_USER:-symfony}
  #     # 这个表示允许所有ip访问
  #     ALLOW_IP_RANGE: 0.0.0.0/0
  #   volumes:
  #     - db-data:/var/lib/postgresql/data:rw
      # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
      # - ./docker/db/data:/var/lib/postgresql/data:rw
###< doctrine/doctrine-bundle ###

修改数据库连接参数

DATABASE_URL: mysql://user:password@127.0.0.1:3306/symfony61
# DATABASE_URL: postgresql://${POSTGRES_USER:-symfony}:${POSTGRES_PASSWORD:-ChangeMe}@database:5432/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-13}

创建新的Symfony应用

SYMFONY_VERSION=6.1.* SERVER_NAME=symfony.localhost HTTP_PORT=9010 HTTPS_PORT=9011 HTTP3_PORT=9011 docker-compose -f docker-compose.yml up --build

浏览器打开:https://symfony.localhost:9011/ 显示调试界面安装成功

包安装

cd /project

#查看运行的Container
docker ps -l 
#CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS     PORTS   NAMES 
#917e3eec0e5c   symfonybi_caddy   "caddy run --config …"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:443->443/udp, 2019/tcp   symfonybi-caddy-1

#进入容器
docker exec -it symfonybi-caddy-1 /bin/sh 
#/srv/app #

注释路由

Symfony 默认在 YAML 中定义路由,安装 annotations 使用注释或属性定义路由。

composer require annotations

使用方法

// src/Controller/TestController.php

use Symfony\Component\Routing\Annotation\Route;

class TestController 
{
    /**
     * @Route("/test/index")
     */
    public function index(): Response
    {
        //..
    }
}

调试工具

php bin/console debug:router 
#搜索
php bin/console debug:router |grep /test/index

[1]Symfony.官方文档[DB/OL]https://symfony.com/doc/6.1/setup.html

发表评论