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を利用した環境構築のご紹介でした
皆様も良ければ上記の方法を利用して環境構築をお試しください
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。