출처: 2018/10/24:Drupal8 | 个人技术分享 (proteanbear.xyz)
导航
一、镜像运行Drupal8
1、目录分配
2、docker-compose.yml
二、Drupal8安装
1、选择语言
2、选择安装方式
3、检查安装需求
4、设置数据库
5、安装网站
6、安装翻译
7、设置网站
8、完成翻译
9、收尾(恢复安全权限)
三、修改配置
附:纯净版
↑ 回到顶部
Drupal8
2018/10/24:Drupal8
一、镜像运行Drupal8
1、目录分配
虽然网站使用容器运行服务,但是数据还是保存在单独的目录中比较好。网站目录分配如下
- ~/proteanbear.xyz:域名下内容
- ~/proteanbear.xyz/blog:个人博客
- ~/proteanbear.xyz/blog/drupal:Drupal内容
- ~/proteanbear.xyz/blog/drupal/storage:存储
- ~/proteanbear.xyz/blog/drupal/storage/modules:模块
- ~/proteanbear.xyz/blog/drupal/storage/profiles:配置
- ~/proteanbear.xyz/blog/drupal/storage/themes:主题
- ~/proteanbear.xyz/blog/drupal/storage/sites:网站
- ~/proteanbear.xyz/blog/drupal/storage/sites/default:默认站点
- ~/proteanbear.xyz/blog/drupal/storage/data:数据文件
- ~/proteanbear.xyz/blog/drupal/storage/pg_data:PostgreSQL数据库文件
2、docker-compose.yml
编写docker-compose.yml配置,可以直接运行多个容器服务。 搭建两个容器分别运行数据库(PostgreSQL)和Drupal(Apache+PHP7.2)服务,配置内容如下:
# Blog building with Drupal8+PostgreSQL.
# Access via 'https://proteanbear.xyz/'
version: "3.1"
services:
drupal:
image: drupal:8-apache
ports:
- 8000:80
volumes:
- ./storage/modules:/var/www/html/modules
- ./storage/profiles:/var/www/html/profiles
- ./storage/themes:/var/www/html/themes
- ./storage/sites:/var/www/html/sites
restart: always
postgre:
image: postgres:10
environment:
POSTGRES_PASSWORD: 数据库密码
PGDATA: /var/lib/postgresql/data/pgdata
restart: always
volumes:
- ./storage/data/pg_data:/var/lib/postgresql/data/pgdata
关于version,需根据docker的版本不同对应不同的版本,参见如下(也可查看官方文档):
- 3.7:18.06.0+
- 3.6:18.02.0+
- 3.5:17.12.0+
- 3.4:17.09.0+
- 3.3:17.06.0+
- 3.2:17.04.0+
- 3.1:1.13.1+
- 3.0:1.13.0+
- 2.4:17.12.0+
- 2.3:17.06.0+
- 2.2:1.13.0+
- 2.1:1.12.0+
- 2.0:1.10.0+
- 1.0:1.9.1.+
使用docker -v查看当前docker版本后,填写对应的version
关于ports:先设置为8000,等备案通过后更改为80
关于restart:默认值为 no ,即在任何情况下都不会重新启动容器;当值为 always 时,容器总是重新启动;当值为 on-failure 时,当出现 on-failure 报错容器退出时,容器重新启动。
然后在~/proteanbear.xyz/blog/drupal下运行:
$ docker-compose up
开启服务。
常用命令: docker-compose up:启动容器 docker-compose up -d:启动容器(后台) docker-compose ps:显示当前运行的容器 docker-compose down:关闭容器 详细参见官方文档
二、Drupal8安装
启动服务后,通过http://ip:8000/ 即可访问Drupal8,未安装则进入安装程序。
1、选择语言
有多种语言可以选择,选择中文。
选择非英文后会下载翻译包,多出翻译安装的步骤。
2、选择安装方式
安装方式包括标准、最小和自定义,这里选择标准。
3、检查安装需求
这里就会出现一些问题了,当然主要是我们缺少了些准备动作。
a:找不到文件目录
安装程序会在sites目录下创建default/files目录用作存储目录,这里可能因为权限原因无法创建,所以需要开启default目录的写入权限:
$ chmod a+w sites/default
也可以自己创建这个files目录并设置写入权限:
$ mkdir -p sites/default/files
$ chmod a+w sites/default/files
b:找不到默认配置文件/找不到配置文件
安装程序会在sites/default目录下创建settings.php配置文件,有可能创建失败。
实际上我猜想程序就是通过同目录下的default.settings.php复制创建的,但是我通过容器运行下连这个文件都没有,所以还提示了找不到默认配置文件这个错误。
可以手动创建它。因为连默认配置文件都没有,而且又是通过docker运行的,只能去镜像里寻找默认配置文件(default.settings.php)或者下载一个Drupal的包。我选择了后者,通过官网下载最新包(tar.gz的),解压(tar -xzvf tar.gz)后在对应目录中的sites/default中找到了default.settings.php默认配置文件。 复制文件到我们自己的目录中,通过默认配置文件(default.settings.php)创建配置文件(settings.php),并给予配置文件写入权限:
$ cp default.settings.php ~/proteanbear.xyz/blog/drupal/storage/sites/default
$ cd ~/proteanbear.xyz/blog/drupal/storage/sites/default
$ cp default.settings.php settings.php
$ chmod a+w settings.php
4、设置数据库
通过安装需求检查后,就进入数据库设置。填入如下:
- 数据库名:postgres
- 数据库用户:postgres
- 登录密码:docker-compose.yml中设置的密码
- 高级选项>主机名:drupal_postgres_1
- 高级选项>端口号:5432
- 高级选项>表前缀:drupal_
关于主机名:需要注意的是默认的高级选项中的主机名为localhost,因为是docker部署的这里需要修改,可以通过docker-compose ps命令查看当前运行的postgresql的服务主机名,这里为drupal_postgre_1。
然后就开始运行安装了。 这里还发生个小插曲,可能是网络原因这里没进入安装就卡死了,只好重启服务而应该是安装了一部分,还好是Docker下运行的,删除全部数据重新来了一次ㄟ( ▔, ▔ )ㄏ。
5、安装网站
6、安装翻译
7、设置网站
8、完成翻译
p>
9、收尾(恢复安全权限)
安装完成后需要最后收尾,为了安全起见要将刚刚授予了写权限的文件和目录的权限收回,包括sites/default目录和settings.php配置文件(sites/default/files目录需要存储上传文件,写权限需要保留),运行命令:
$ chmod go-w sites/default
$ chmod go-w settings.php
三、修改配置
完成后进入主页,选择管理下的配置功能,会有一个状态报告进入后有一个错误:
需要对配置进行修改,设置信任主机,编辑settings.php文件:
$ vim sites/default/settings.php
找到trusted_host_patterns加入自己的域名,详情参见官方说明
附:纯净版
// 1.docker安装
$ yum update
$ yum install docker docker-compose
$ service docker start
// 2.docker-compose.yml配置
$ mkdir -p ~/proteanbear.xyz/blog/drupal/storage/modules
$ mkdir -p ~/proteanbear.xyz/blog/drupal/storage/profiles
$ mkdir -p ~/proteanbear.xyz/blog/drupal/storage/themes
$ mkdir -p ~/proteanbear.xyz/blog/drupal/storage/sites/default
$ mkdir -p ~/proteanbear.xyz/blog/drupal/storage/data/pg_data
$ vim ~/proteanbear.xyz/blog/drupal/docker-compose.yml
version: "3.1"
services:
drupal:
image: drupal:8-apache
ports:
- 8000:80
volumes:
- ./storage/modules:/var/www/html/modules
- ./storage/profiles:/var/www/html/profiles
- ./storage/themes:/var/www/html/themes
- ./storage/sites:/var/www/html/sites
restart: always
postgre:
image: postgres:10
environment:
POSTGRES_PASSWORD: 数据库密码
PGDATA: /var/lib/postgresql/data/pgdata
restart: always
volumes:
- ./storage/data/pg_data:/var/lib/postgresql/data/pgdata
:wq
// 3.配置目录权限
$ wget https://www.drupal.org/download-latest/tar.gz
$ tar -xzvf tar.gz
$ cp drupal-*/sites/default/default.settings.php ~/proteanbear.xyz/blog/drupal/storage/sites/default/
$ cd ~/proteanbear.xyz/blog/drupal/
$ cp storage/sites/default/default.settings.php storage/sites/default/settings.php
$ chmod a+w storage/sites/default/
$ chmod a+w storage/sites/default/settings.php
$ mkdir storage/sites/default/files
$ chmod a+w storage/sites/default/files
//4.运行并访问安装
$ docker-compose up -d
//安装完成后
$ chmod go-w storage/sites/default/
$ chmod go-w storage/sites/default/settings.php
$ vim storage/sites/default/settings.php
$settings['trusted_host_patterns'] = [
'^www\.example\.com$',
];
-- INSERT
$ docker-compose down
$ docker-compose up -d
$ docker-compose ps
'프로그램 활용 > 웹서버' 카테고리의 다른 글
톰캣 세션 클러스터링 (0) | 2023.08.16 |
---|---|
Drupal + Apache + PostgreSQL (0) | 2023.07.27 |
NGINX와 NGINX Unit 앱 서버로 WordPress 설치 (0) | 2023.07.18 |
Windows 에서 Valet 으로 PHP 개발 환경 만들기 (0) | 2022.12.22 |
TMAX_WEBTOB_에러코드를 받았을때 특정 페이지로 이동 (0) | 2022.12.16 |