woprrr / drupal8-composer-template
Woprrr贡献者骨架
Requires
- php: >=5.6
- composer/installers: ^1.2
- cweagans/composer-patches: 1.6.0
- drupal-composer/drupal-scaffold: ^2.2
- fxp/composer-asset-plugin: ^1.4
- incenteev/composer-parameter-handler: ~2.0
- wikimedia/composer-merge-plugin: ^1.3
Requires (Dev)
- drupal-composer/drupal-scaffold: ^2.1.0
Conflicts
- drupal/core: 7.*
This package is auto-updated.
Last update: 2024-09-29 00:57:49 UTC
README
Drupal 8 骨架在独立的容器中 dockerized(Nginx、PHP-FPM、MySQL 和 PHPMyAdmin)。
概述
-
在安装项目之前,请确保满足以下前提条件。
-
我们将从GitHub上的仓库下载代码。
-
配置Xdebug [
可选]我们将为IDE(PHPStorm或Netbeans)配置Xdebug。
-
到这一点,我们将所有项目组件都已就位。
-
使用Makefile [
可选但强烈建议初学者使用]在开发过程中,您可以使用
Makefile来执行重复操作。 -
在运行时,您可以使用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
如果您使用的是除PHPStorm或Netbeans之外的IDE,请参阅Xdebug文档的远程调试部分。
为了更好地将Docker集成到PHPStorm中,请使用文档。
-
获取您的本地IP地址
sudo ifconfig
-
编辑php文件
etc/php/php.ini并根据需要注释或取消注释配置。 -
使用您的IP设置
remote_host参数xdebug.remote_host=192.168.0.1 # your IP
运行应用程序
-
设置项目环境变量
通过编辑
.env文件来设置您的项目,并自定义所有环境变量。特别是所有Drupal_*变量对于下一步和定制您的drupal实例至关重要。 -
初始化/安装项目依赖项
make docker-start
请稍等,这可能需要几分钟...
sudo docker-compose logs -f # Follow log output -
安装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', );
-
打开您的浏览器
- https://:8000(Web前端)。
- https://:3000(Web前端HTTPS)。
- https://:8080 PHPMyAdmin(用户名:dev,密码:dev)
-
停止并清除服务
sudo docker-compose down -v
-
停止并删除骨架所有更改的痕迹
sudo make docker-stop
删除所有文件以将骨架重置为其初始状态。
与Drupal配置工作流程玩耍
-
导出您当前的配置实例
make drupal-config-export
或者使用Docker Compose
docker-compose exec -T php composer export-conf -
在您的第一个Drupal实例安装后,编辑
.env文件,并将以下变量DRUPAL_INSTALL_PROFILE=standard更改为DRUPAL_INSTALL_PROFILE=config_installer。这将使您能够通过./config/*导出的配置状态重新安装/更新您的Drupal实例。 -
从导出的配置重新安装或更新您的实例
重新安装:通过删除当前Drupal数据库并完全重新导入./config
sh make drupal-si更新:使用以下Drupal命令(up-db / ent-up )。
脚本处理每个动作后,将您的Drupal实例切换到
maintenance模式,并在每个动作后自动切换在线。make drupal-update
-
在更高级的使用中,您还可以指定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
生命周期示例
-
启动项目容器
sudo make docker-start
-
编辑
.env文件。 -
安装Drupal 8实例
sudo make docker-si
-
导出Drupal配置文件
```sh make drupal-config-export ``` **Or with a specific destination** ```sh make drupal-config-export my_configuration_name ``` -
启用从配置模式重新安装:通过将
DRUPAL_INSTALL_PROFILE=standard更改为DRUPAL_INSTALL_PROFILE=config_installer来编辑.env文件。 -
从导出的配置重新安装项目:
sh make drupal-si -
更新当前实例:编辑您的
/config文件夹中的一个配置yml文件,例如:system.site.site_name,并使用以下方法处理以从配置更新您的Drupal实例:```sh make drupal-update ```您指定的系统.site.site_name yml文件中的网站名称将更改。
-
还有其他提示?呼叫帮助;):显示帮助
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
帮助我们
任何想法、反馈或(希望不是!)