Drupal8では公式サイトからzip形式で取得できるDrupal一式の他にcomposerを利用したエンジニア向けの環境構築方法があります。
今回はcomposerを利用した環境構築の手順をご紹介したいと思います。

composerとは?

composer とはPHPにおけるパッケージ管理システムです。
composerを利用することによってcomposer.jsonによるパッケージ管理を行い、各人や環境で利用するパッケージを共通化することが出来ます

drupal-composer/drupal-projectを利用するメリット・デメリット

今回ご紹介する drupal-composer/drupal-project を利用して構築する場合の メリット・デメリットは以下のようなものがあります。

メリット

  • Drupalコアやコントリビュートモジュール等はすべてcomposerで管理される為、モジュール本体のバージョン管理が楽に行える
    (更新は composer update で一括して行うことが可能)
  • 公開用のルートディレクトリが web となる為、余計なファイル(README等の公開には不要なファイル)をWEB上に公開しない為、セキュアになる
    drupal-paranoia を導入するとよりセキュアにすることも可能

デメリット

  • 公開用のルートディレクトリが web となる為、WEBサーバ(apache, nginx等のミドルウェア)の設定変更が必要となる
  • composerを利用したことが無い人には多少敷居が高い

drupal-composer/drupal-projectでの環境構築

それでは、環境構築手順をご説明します。

composer create-project の実行

以下のコマンド1つでDrupalを動かすために必要なライブラリ等が一式取得できます
[サイトディレクトリ名] には任意の名前を入力してください。

composer create-project drupal-composer/drupal-project:8.x-dev [サイトディレクトリ名] --stability dev --no-interaction

コマンドが正常終了すると、以下のように各種ディレクトリやファイルが作成されます。

.
├── LICENSE
├── README.md
├── composer.json
├── composer.lock
├── drush
├── load.environment.php
├── phpunit.xml.dist
├── scripts
├── vendor
└── web

Drupalサイトインストール

http://localhost 等公開したURLへアクセスするとzip形式でダウンロードした場合と同様にインストール画面が開きます。

開発のヒント

Drupalのバージョンを任意のものに変更したい!

デフォルトでは最新のDrupal8が取得されます。何らかの理由によりバージョンを変更したい場合、以下のコマンドで変更することが可能です

# 例:8.6.1に変更する場合 ※8.6.1を任意のバージョンに変更してください
composer require drupal/core:8.6.1 webflo/drupal-core-require-dev:8.6.1

コントリビュートモジュールをインストールしたい!

コントリビュートモジュールは以下のコマンドで入手することが可能です

# 例:webformを導入する場合

# コントリビュートモジュールのダウンロード
composer require drupal/webform

# コントリビュートモジュールの有効化
drush en -y webform

Drupalコアやコントリビュートモジュールのバージョンアップを行いたい

composerを利用している場合、 composer update で基本的にはバージョンアップ可能ですが、状況に応じて必要なコマンドを入力します

# 例:すべてのパッケージをアップデートする
composer update
# 例:特定のモジュールのみをアップデートする
composer update drupal/webform --with-dependencies
# 例:コアのみをアップデートする
composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

言葉での説明ばかりになってしまいましたが、drupal-composer/drupal-projectを利用した環境構築のご紹介でした
皆様も良ければ上記の方法を利用して環境構築をお試しください