woprrr/drupal8-composer-template

Woprrr贡献者骨架

8.3.0 2018-05-04 14:14 UTC

This package is auto-updated.

Last update: 2024-09-29 00:57:49 UTC


README

Drupal 8 骨架在独立的容器中 dockerized(Nginx、PHP-FPM、MySQL 和 PHPMyAdmin)。

概述

  1. 安装前提条件

    在安装项目之前,请确保满足以下前提条件。

  2. 克隆项目

    我们将从GitHub上的仓库下载代码。

  3. 配置Xdebug [可选]

    我们将为IDE(PHPStorm或Netbeans)配置Xdebug。

  4. 运行应用程序

    到这一点,我们将所有项目组件都已就位。

  5. 使用Makefile [可选但强烈建议初学者使用]

    在开发过程中,您可以使用Makefile来执行重复操作。

  6. 使用Docker命令

    在运行时,您可以使用docker命令来执行重复操作。

安装前提条件

目前,此项目主要针对Unix (Linux/MacOS)创建。也许它可以在Windows上运行。

所有必需的组件都应适用于您的发行版。其中最重要的是

通过输入以下命令检查docker-compose是否已安装

which docker-compose

检查Docker Compose兼容性

以下内容是可选的但会使生活更美好

which make

要使用的镜像

在安装第三方网络服务器(如MySQL或Nginx)时,请务必小心。

本项目使用以下端口

克隆项目

要安装Git,请下载它并按照说明进行安装

git clone -b drupal8-skeleton-docker git@github.com:woprrr/drupal8-composer-template.git

转到项目目录

cd drupal8-composer-template

项目树

.
├── LICENSE
├── Makefile
├── README.md
├── app
│   └── Drupal
│       └── parameters.yml.dist
├── composer.json.dist
├── composer.require.json
├── composer.required.json.dist
├── composer.suggested.json.dist
├── config
├── data
│   └── db
│       ├── dumps
│       └── mysql
├── doc
├── docker-compose.yml
├── etc
│   ├── nginx
│   │   ├── default.conf
│   │   └── default.template.conf
│   ├── php
│   │   └── php.ini
│   └── ssl
├── scripts
│   └── Composer
│       ├── DrupalExportConf.php
│       ├── DrupalHandlerBase.php
│       ├── DrupalInstall.php
│       └── DrupalUpdate.php
└── settings
    ├── development.services.yml.dist
    ├── phpunit.xml.dist
    ├── services.yml
    ├── settings.local.php.dist
    └── settings.php

配置Xdebug

如果您使用的是除PHPStormNetbeans之外的IDE,请参阅Xdebug文档的远程调试部分。

为了更好地将Docker集成到PHPStorm中,请使用文档

  1. 获取您的本地IP地址

    sudo ifconfig
  2. 编辑php文件etc/php/php.ini并根据需要注释或取消注释配置。

  3. 使用您的IP设置remote_host参数

    xdebug.remote_host=192.168.0.1 # your IP

运行应用程序

  1. 设置项目环境变量

    通过编辑.env文件来设置您的项目,并自定义所有环境变量。特别是所有Drupal_*变量对于下一步和定制您的drupal实例至关重要。

  2. 初始化/安装项目依赖项

    make docker-start

    请稍等,这可能需要几分钟...

    sudo docker-compose logs -f # Follow log output
  3. 安装Drupal实例

    make drupal-si

    或指定配置实例的名称

    make drupal-si my_configuration_name

    所有可用的配置都在您的settings/settings.local.php文件中定义

    # Config directories
    $config_directories = array(
      my_configuration_name => '/absolute/path/to/config'
    );

    配置的典型工作流程示例

    # Config directories
    $config_directories = array(
      dev => getcwd() . '/../config/dev',
      preprod => getcwd() . '/../config/preprod',
      prod => getcwd() . '/../config/prod',
      stage => getcwd() . '/../config/stage',
    );
  4. 打开您的浏览器

  5. 停止并清除服务

    sudo docker-compose down -v
  6. 停止并删除骨架所有更改的痕迹

    sudo make docker-stop

    删除所有文件以将骨架重置为其初始状态。

与Drupal配置工作流程玩耍

  1. 导出您当前的配置实例

    make drupal-config-export

    或者使用Docker Compose

    docker-compose exec -T php composer export-conf
  2. 在您的第一个Drupal实例安装后,编辑.env文件,并将以下变量DRUPAL_INSTALL_PROFILE=standard更改为DRUPAL_INSTALL_PROFILE=config_installer。这将使您能够通过./config/*导出的配置状态重新安装/更新您的Drupal实例。

  3. 从导出的配置重新安装或更新您的实例

    重新安装:通过删除当前Drupal数据库并完全重新导入./config sh make drupal-si

    更新:使用以下Drupal命令(up-db / ent-up )。

    脚本处理每个动作后,将您的Drupal实例切换到maintenance模式,并在每个动作后自动切换在线。

    make drupal-update
  4. 在更高级的使用中,您还可以指定Drupal配置名称

    make drupal-si preprod || make drupal-update preprod

    或者使用Docker Compose

    docker-compose exec -T php composer site-install preprod || docker-compose exec -T php composer site-update preprod

生命周期示例

  1. 启动项目容器

    sudo make docker-start
  2. 编辑.env文件。

  3. 安装Drupal 8实例

    sudo make docker-si
  4. 导出Drupal配置文件

     ```sh
     make drupal-config-export
     ```
     **Or with a specific destination**
     ```sh
     make drupal-config-export my_configuration_name
     ```
    
  5. 启用从配置模式重新安装:通过将DRUPAL_INSTALL_PROFILE=standard更改为DRUPAL_INSTALL_PROFILE=config_installer来编辑.env文件。

  6. 从导出的配置重新安装项目:sh make drupal-si

  7. 更新当前实例:编辑您的/config文件夹中的一个配置yml文件,例如:system.site.site_name,并使用以下方法处理以从配置更新您的Drupal实例:

     ```sh
     make drupal-update
     ```
    

    您指定的系统.site.site_name yml文件中的网站名称将更改。

  8. 还有其他提示?呼叫帮助;):显示帮助

    make help

使用Makefile

在开发过程中,您可以使用Makefile执行以下操作

使用Docker命令

使用composer安装包

docker-compose exec -T php composer install

使用composer要求包

docker-compose exec -T php composer require drupal/core

使用composer更新PHP依赖项

docker-compose exec -T php composer update

使用PHPUnit测试PHP应用程序

docker-compose exec -T php bin/phpunit -c ./web/core ./web

使用CODER修复标准代码

docker-compose exec -T php composer phpcs ./web/modules/ or specify more specific path.

使用CODER检查标准代码

sudo docker-compose exec -T php ./app/vendor/bin/phpcs -v --standard=PSR2 ./app/src

检查安装的PHP扩展

sudo docker-compose exec php php -m

处理数据库

MySQL外壳访问

sudo docker exec -it mysql bash

以及

mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD"

备份所有数据库

mkdir -p data/db/dumps
source .env && sudo docker exec $(sudo docker-compose ps -q mysqldb) mysqldump --all-databases -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" > "data/db/dumps/db.sql"

恢复所有数据库的备份

source .env && sudo docker exec -i $(sudo docker-compose ps -q mysqldb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/db.sql"

备份单个数据库

注意:将"YOUR_DB_NAME"替换为您自定义的名称。

source .env && sudo docker exec $(sudo docker-compose ps -q mysqldb) mysqldump -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" --databases YOUR_DB_NAME > "data/db/dumps/YOUR_DB_NAME_dump.sql"

恢复单个数据库的备份

source .env && sudo docker exec -i $(sudo docker-compose ps -q mysqldb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/YOUR_DB_NAME_dump.sql"

PDO连接MySQL

<?php
    try {
        $dsn = 'mysql:host=mysql;dbname=test;charset=utf8;port=3306';
        $pdo = new PDO($dsn, 'dev', 'dev');
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
?>

或使用Drush检查您的数据库配置是否正确

    docker-compose exec -T php bin/drush --root="/var/www/html/web" sql-connect

帮助我们

任何想法、反馈或(希望不是!)