作業のゴール
macOS環境上に、Docker (Lando) を使って検証用のDrupal10環境を立ち上げる。
これによって、Drupalモジュールを手元でさくっと検証したり、動作デモが簡単にできる。
また、本番からDBをコピー+StageFileProxyモジュールなどを使えば、本番の動作検証も可。
作業の概要
- PHP Composer で Drupalソースコード一式を持ってくる
- Landoを使い、Docker上にApplication, Databaseの各サーバをまとめて立ち上げ
- Drupalをインストール
準備
一番面倒だけども、全部サーバ立ち上げるより圧倒的に楽。
- macOSのPC(Windowsでも同様なはず)
- Docker ( https://www.docker.com/ )
- Lando ( https://lando.dev/ )
- PHP, Composer ( https://getcomposer.org/ )
作業
Composer create-project
PHP Composer で Drupalソースコード一式を持ってくる作業。
作業
ターミナルで実行
$ composer create-project drupal/recommended-project drupal-poc
補足
まずは適当なフォルダを切って、そこをターミナルで開く。今回は、drupal-poc とした。
そこで、composer の create-project を実行すればDrupalのプロジェクトが一式持ってこれる。
回線速度次第だが、一瞬で終わる。
今回、プロジェクト名に drupal-poc としたが、その名前のフォルダが新たに作られ、配下にファイル一式がDLされている。
注目するフォルダは、プロジェクト直下の web ディレクトリ。
ここが、Apacheなどで設定する DocumentRoot に当たる部分。
composer create-projectで作ると、web が DocumentRoot の名前になる。
Acquia上で作ると docroot の名前になってたりする。
参考記事
Using Composer to Install Drupal and Manage Dependencies | Using Composer | Drupal Wiki guide on Drupal.org
https://www.drupal.org/docs/develop/using-composer/manage-dependencies
Lando init
Landoを使い、Docker上にApplication, Databaseの各サーバをまとめて立ち上げる作業。
作業
- Dockerを立ち上げておく
- プロジェクトルートに移動し、Landoインストールする
$ cd drupal-poc
$ lando init
? From where should we get your app's codebase? current working directory
? What recipe do you want to use? drupal10
? Where is your webroot relative to the init destination? web
? What do you want to call this app? drupal-poc
補足
lando init を実行すると、順番に質問されるので回答する。
Acquia, Pantheon, Drupal10, LAMP... などLandoで作れるサーバ環境が出てくるので選ぶ。
また、webroot には、前述の通りDocumentRootを指定するので、webと記載する。
ここまでできれば、Drupalのコードだけが入ったサーバ環境がDocker上にできる。
続いて、Docker上のサーバ群を立ち上げて、サーバへのDrupalインストールをすすめる。
参考記事
Getting Started | Lando
https://docs.lando.dev/drupal/getting-started.html
Lando start
作ったDocker上のサーバ群を立ち上げる
作業
$ lando start
補足
docker-compose up に近い作業。
初回はイメージのダウンロードなどで時間がかかる。
出来上がると、各サーバのURLが表示される。
ちなみに、Lando関連は次のコマンドをよく使う。
- lando init
- lando 環境を新たに立ち上げるときに使う
- Drupal以外にもオプションを選んで利用可能
- .lando ファイルがプロジェクトルートに出来上がる
- lando start と lando stop
- 環境の立ち上げと停止
- ターミナル上ではバックグラウンドで動く(stopし忘れに注意)
- lando info
- DBのホスト名など、立ち上げた各環境の情報を一覧できる
- lando db-import path/to/dumpfile と lando db-export path/to/exportfile
- DB dumpを吸ったり吐いたり
- lando destroy
- 今までの作業をなかったコトにする。全部消す。
Drupal のインストール
立ち上げたAppサーバに入り、Drupalのインストールを行う。
今回はWeb経由で(ターミナル経由でのインストールもできるが今回はやらない)
作業
- lando info で DBの接続情報を確認する
- lando startのときに表示されていたAPPSERVERのURLにアクセスする
- 表示されたDrupalインストールの画面に従ってインストールする
補足
lando info では
ブラウザを開き、drupal-poc.lndo.site へアクセスする。
おそらく、Drupalのインストール画面が開くはず。
言語の選択
僕は日本語しかわからないので日本語にして次へ
プロフィールの選択
おそらく "標準" で事足りるはず。
Drupalを触ってみたい、デモしたいだけであればUmamiでいいかも→都度作ってlando destroy
必要条件の検証
とくに何もせず、勝手に先に進んでくれる
データベースのセットアップ
lando info で調べた情報を入れる。
service: 'database' に記載の情報を入れていく。
creds: { database: 'xxx', password: 'xxx', user: 'xxx' } あたりを指定する。
高度なオプションを開き、ホストを internal_connection: { host: 'xxx', port: 'xxx' } のとおりに指定する。
もし設定が誤っていればエラーが出てくる。
サイトのインストール / 翻訳のセットアップ
指定したDatabaseにインストールが始まる。
サイトの環境設定
すきに指定する。例えばこんな感じ。
ここで設定したユーザー名が1番目のユーザー(一番権限が強い)となる。
完成
参考記事
- Docker+Landoで簡単、Drupalローカル環境の構築方法 | Acquia