ローカル環境にDrupalをインストールしよう 〜Mac編〜

# はじめに
この記事ではDrupalをローカル環境（お手元のPC）にインストールする手順をご紹介します。

:::note info
ローカル環境は本番環境（＝WEBに公開されていて誰でもアクセスできる環境）と違い、動作検証や開発を自由に行える環境です。
そのため万が一トラブルが発生してもほかの方へ影響しないため、機能開発や検証の際には必ず利用されるものです。
:::

# Drupalの動作要件
| 構成要素 | 要件 |
|:-|:-|
| WEBサーバー  | Apache 2.4.7以上<br>Nginx 1.1以上  |
|  データベース | MySQL 5.7.8以上<br>MariaDB 10.3.7以上<br>Percona Server 5.7.8 以上<br>PostgreSQL 12以上<br>SQLite 3.26以上  |
| メモリ  | 最小1GB<br>※ライブラリを管理するためのComposerを使用するために必要です。  |
| PHP  |  8.1以上<br>8.1.6を推奨<br>最小64MBのメモリが必要 |

# ローカル環境の活用方法
## 本番環境に影響なく動作検証ができる
WEBサイトやシステムを運用していると、既存不具合の調査や新機能追加のための検証などが必要なケースがあります。

そこで本番環境をしてしまうと万が一操作ミスをしてしまった場合にシステムやサイトが停止してしまう恐れがあります。
そうなってしまうとサイトやシステムを使うエンドユーザーに悪影響を及ぼしてしまいます。

そのようなことを防ぐために本番環境に影響させず調査や検証をできるようにするための環境がローカル環境です。

## 基本無料で環境を使用できる
本番環境と同等の環境を用意するには、
システム構成にもよりますがサーバーやデータベースを再度調達するためには料金も必要になります。

今回ご紹介する手順を使えばクラウドサービスのサーバーやデータベースを調達することなく、
無料で環境を構築することができます。

そのためコストを抑えて検証や調査が可能になります。

# ローカル環境へのDrupalインストール
## Homebrewのインストール
DDEVを使うためにはHomebrewと呼ばれるコマンドラインの管理ツールが必要です。
最初にこちらをインストールします。

ターミナルで以下のコマンドを実行します。
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

## Dockerのインストール
次にDockerクライアントをインストールします。

ターミナルで以下のコマンドを実行します。
```
brew install docker
```

## Docker Desktopのインストール
Dockerで作成したコンテナをGUI上で管理できるようにするためにDocker Desktopをインストールします。

https://www.docker.com/ja-jp/products/docker-desktop/

Mac用のダウンロードをクリックしてダウンロード・インストールします。

## DDEVのインストール
DockerをインストールできましたのでDDEVをインストールします。
DDEV公式ページの手順を参考に進めていきます。

https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/

ターミナルで以下のコマンドを実行します。
```
# Install DDEV
brew install ddev/ddev/ddev

# Initialize mkcert
mkcert -install
```
実行完了したら以下のコマンドでインストールできているか確認します。
```
ddev -v
```
***ddev version v1.21.6*** のようにバージョンが表示されればインストール成功です。

## Drupalプロジェクトの作成
DDEVではプロジェクトと呼ばれる単位で環境を構築していきます。
任意のディレクトリを作成し、作成したディレクトリに移動します。
```
mkdir first-drupal
cd first-drupal
```
ddevを使ってDrupalをインストールします。
ターミナルで以下のコマンドを実行します。
```
ddev config --project-type=drupal10 --docroot=web --create-docroot
ddev start
ddev composer create "drupal/recommended-project"
ddev composer require drush/drush
```
これでDrupalのソースコードが揃いましたのでブラウザでアクセスしてインストールを進めます。
ターミナルで以下のコマンドを実行します。
```
ddev launch
```

## Drupalのインストール
ここからはブラウザを使ってインストールを進めていきます。
最初に言語を選択します。
日本語を選択してSave and continueをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/87ff99f1-91f8-348f-6e12-5b88a4a4f921.png)

インストールプロフィールは標準を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/3b61159d-a28e-89a6-e27d-c3984436b254.png)

サイトの環境設定ではサイト名やサイト管理者のメールアドレスを設定します。
必須項目（赤い*のついている項目）を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/fcfdb3b5-eaea-bdf1-7e1e-f1190f4d0183.png)

***ようこそ*** と書かれたトップページが表示されればインストールは完了です！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/bfaf628a-cec0-a67d-1389-3d0d0792142b.png)


## 警告への対応
インストールは完了しましたが警告が表示されていますので解消していきます。
ページ上部のメニューよりレポート > サイトの状態にアクセスします。
サイトの状態で警告を確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/85880d88-db9a-a76d-7a93-b7e0f09cd800.png)

私の環境では以下の警告が確認できました。

- PHP：It is recommended to upgrade to PHP version 8.2.0 or higher for the best ongoing support. 
- 更新の通知：更新の通知が有効になっていません。
- 構成ファイル：ファイル sites/default/settings.php は変更に対して保護されていないため、セキュリティー上の危険性があります。

これらの警告を解消していきます。

### PHPのバージョン変更
PHPのバージョンを8.1.13から8.2系にバージョンアップしていきます。
.ddev/config.yamlを修正します。
```
// 修正前
php_version: "8.1"

// 修正後
php_version: "8.2"
```

修正後下記コマンドでプロジェクトを再起動します。
```
ddev restart
```
PHPの警告が消えていれば対応完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/88517a6b-0f6b-8fa9-3dd4-b28ee1cc9613.png)

### 更新の通知の有効化
警告のメッセージにあるモジュール管理ページのリンクをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/19e8fb22-1973-d94e-39da-f3ee2b1efbed.png)

拡張ページでUpdate Managerを検索してインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/b602a03e-9d89-d3be-8a4d-665f89f28339.png)

サイトの状態に再度アクセスして警告が消えていれば対応完了です。

### 構成ファイルの書き込み無効化
書き込みを無効にするようメッセージでは促されていますがローカル環境では書き込みが可能でも問題ありません。
そのためローカル環境上ではこの警告を非表示にするよう対応していきます。

web/sites/default/settings.ddev.phpを開き、以下の通り修正します。
```settings.ddev.php
# 修正前
$settings['skip_permissions_hardening'] = TRUE;

# 修正後
$settings['skip_permissions_hardening'] = FALSE;
```

# さいごに
今回はローカル環境へのDrupalインストール方法についてご紹介しました。
これからDrupal導入や開発を検討しており、動作検証や機能確認をしたい方はぜひ今回の記事を参考に触ってみてください。