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

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

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

なお今回はWindowsを使用している前提で手順をご紹介します。
Mac OSでの環境構築は以下の記事をご覧ください。

https://qiita.com/kmmch/items/5ee5b665e9256f205287

# 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インストール
今回はXAMPPと呼ばれるツールを使います。
XAMPPを使うことでWEBサーバーやデータベース、PHPなどミドルウェアを自分で調達することなくDrupal環境を構築できます。
## XAMPPのインストール
以下のリンクからXAMPPをダウンロードします。

https://www.apachefriends.org/jp/index.html

インストーラがダウンロード出来たらインストールを進めます。

## Drupalソースコードのダウンロード
Drupal.orgよりDrupalのソースコードをダウンロードします。
以下のリンクにアクセスしてソースコードをダウンロードします。

https://www.drupal.org/download

ダウンロードが完了したらzipフォルダを展開します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/7c561c0d-5318-ca33-602c-91cf108a92b3.png)

展開が完了したらdrupal-10.2.2フォルダにアクセスします。
すると同名のフォルダがありますが、こちらの配下にあるファイルがDrupalのコアファイルです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/09109265-0f81-d0cb-670b-d6e63c5baa68.png)

XAMPPのドキュメントルートにアクセスしてDrupalのコアファイルを任意のフォルダに配置します。

:::note warn
XAMPPのドキュメントルートはインストール時の設定にもよりますが、
とくに変更していなければC:\xampp\htdocsです。
:::

まずドキュメントルートにdrupal-10.2.2をコピーしてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/0cceec8f-048f-9c49-6b4d-46138c7f1c69.png)

コピーしてきたフォルダの名前をmy-drupal-siteに変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/ec47a571-eee4-caf6-d816-ba344479bcf2.png)

以上でソースコードの準備は完了です。

## WEBサーバーを起動する
XAMPPのコントロールパネルからApacheを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/eda7e3a2-adcc-8778-a1b5-7cde70a72b3a.png)

## データベースを起動する
Apacheと同様にMySQLも起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/aafeb706-eb3e-47b6-1f6f-3c27d0a0e7f8.png)

## Drupal用データベースを作成する
MySQLのAdminをクリックしてphpMyAdminを開きます。

***データベースを作成する*** にmy-drupal-siteを入力し、文字コードは***utf32_general_ci***を選択します。
作成をクリックしてデータベースを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/e601ecb5-4a11-0646-9762-85b52e6446dd.png)

## Drupalのインストール
ここからはブラウザからインストールを進めていきます。
ブラウザを開いてhttp://localhost/my-drupal-siteにアクセスします。

最初に言語を選択します。
***日本語***を選択して***Save and continue***をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/302e50d1-1acf-0fbf-cc74-bc0e7fcb750c.png)

インストールプロフィールは標準を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/f05e1f7d-9f01-91ff-2db0-4bfb7472b8c9.png)

データベースの構成で先ほど作成したデータベースの情報を入力します。
データベース名にmy-drupal-siteを、
ユーザー名にrootを入力して次へ進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/f00a8780-59a5-625a-0d4c-5d1fa72e6d75.png)

サイトの環境設定ではサイト名やサイト管理者のメールアドレスを設定します。
必須項目（赤い*のついている項目）を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/02780ae2-5747-ea8f-0c9f-152828c31065.png)

ようこそと書かれたトップページが表示されればインストールは完了です！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/399e99b1-cb47-1cd4-9449-8c62e67a0a35.png)

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

サイトの状態でエラーを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/7bd7fce7-da68-61f2-734a-1121dbf5d36a.png)

私の環境では以下のエラーが確認できました。

- 信頼の置けるホストの設定：settings.php の trusted_host_patterns が設定されていません。セキュリティ面で脆弱となる恐れがあるため、設定することを強くおすすめします。

ローカル環境なので重大なエラーではありませんが後学のために解消しておきます。

### ホストの設定
localhostを信頼できるホストとして設定します。
sites/default/settings.phpを修正します。
```settings.php
// 修正前
# $settings['trusted_host_patterns'] = [];

// 修正後
$settings['trusted_host_patterns'] = [
  '^localhost$',
];
```
サイトの状態を確認してエラーが消えていれば対応完了です。

# さいごに
今回はローカル環境へのDrupalインストール方法についてご紹介しました。

これからDrupal導入や開発を検討しており、動作検証や機能確認をしたい方はぜひ今回の記事を参考に触ってみてください。

MacOSでの環境構築手順も知りたい方は以下の記事もご覧ください。

https://qiita.com/kmmch/items/5ee5b665e9256f205287