Drupal 8 开发笔记

目标是知识付费平台(视频+会员订阅),选型结果为 Drupal 8。

开发方法用服务器 Docker 加 VS Code Remote 远程开发。

一、准备工作

1、服务器配置

服务器操作系统:Ubuntu 18.04

安装 Docker、docker-compose、git

2、本地配置远程开发

本地操作系统:macOS Mojave 10.14.4

安装 VS Code Insiders、Remote Development 插件

微软在 5 月 3 日的 PyCon 2019 大会上,发布了 VS Code Remote,利用它开发者可以连接到远程服务器上进行开发。历史真是轮回,最早硬件性能差的时候,就是瘦工作站的模式,所有的运算处理工作都由中央计算机完成,等到了 PC 电脑性能变高了,大部分工作都放到了本地。现在性能更高了,工作方式又变回去了,开发者不用在本地搭建开发环境,可以在统一的远程环境进行开发了。

给微软点赞。

(1)安装 VS Code Remote

该功能目前仅支持在 Insider 版本中使用,最终也会在 Stable 版本中提供。安装好 VS Code Insiders 后,在插件库中搜索 Remote Development 进行安装。

(2)编辑 SSH 配置文件

点击 Remote-SSH 标签,在展开的面板中点击 CONNECTIONS 右侧的齿轮图标,点击选择第一行的文件进行编辑。

格式为:

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host alias
    HostName hostname # ip 地址
    User user
	IdentityFile ~/.ssh/id_rsa

这里注意需要把本地的公钥上传到远程服务器,并开启公钥认证方式。

登录服务器的各项信息配置正确的话,保存后就能进行连接。

(3)打开服务器项目文件

连接成功后,像打开本地文件一样打开远程服务器的文件进行编辑。

二、Drupal 8 配置

1、启动 Drupal 容器

只包含 web 部分的配置。我有另外一台云数据库服务器,所以没有在容器配置数据库。

进入项目目录,写入 docker-compose.yml 文件,内容如下:

version: '3'
services:
  web:
    image: "drupal:${DRUPAL_VERSION:-latest}"
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./app/modules:/var/www/html/modules
      - ./app/profiles:/var/www/html/profiles
      - ./app/themes:/var/www/html/themes
      - ./app/sites:/var/www/html/sites
      - ./config/php/conf.d/php.ini:/usr/local/etc/php/conf.d/php.ini

启动容器:

docker-composer up -d

2、安装 Drupal 8

浏览器打开 http://ip:8080 按提示完成在线安装。需要注意文件夹的所属和权限。如提示不能写入、复制等错误,执行:

chown www-data:www-data ./app -R
chmod a+w ./app/sites -r

3、安装 PHP Composer、drush

(1)安装 composer

Drupal 8 系统核心、扩展、模板的管理与升级,官方推荐使用 composer,它可以自动地安装依赖,减少一些折腾。

推荐手工安装 composer:

# 在服务器上下载 composer.phar
wget -c https://getcomposer.org/composer.phar
# 将脚本从服务器上拷贝到容器中,CONTAINER_NAME替换为 Drupal 容器的名称
docker cp ./composer.phar CONTAINER_NAME:/usr/local/bin/composer
# 进入 Drupal 容器内部
docker exec -it CONTAINER_NAME bash
# 赋予 compser 执行权限
chmod +x /usr/local/bin/composer

测试是否安装成功,输入 composer 回车,看到下面界面即为成功。

(2)安装 Drush

Drush 是 Drupal 的命令行管理工具,可以更快效率地执行一些命令,比通过后台界面操作要快很多。用 composer 安装:

composer require drush/drush

4、升级 Drupal 核心

composer outdated "drupal/*"
composer update --dry-run
composer update drupal/core --with-dependencies
drush updatedb
drush cr

5、安装 PHP 7.2-bcmatch 扩展

Drupal 的 Commerce(电商)模块要求 PHP-bcmatch 扩展,而 Drupal 官方 Docker 并没有安装,需要自行安装。

进入 Drupal 容器内部运行:

docker-php-ext-install bcmath

然后重启 apache 使扩展生效:

/etc/init.d/apache2 restart

6、安装扩展

composer 安装扩展的命令形式为:

composer require drupal/module_name

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注