Drupal11をwindows11にインストール(環境構築)

前に一度チャレンジしたらつまずいたのでリベンジしようという試みです。

主にこちら様の記事をベースに進めます。

https://qiita.com/nekihcom/items/82b8b8a5f57e534f163e

## XAMPPのインストール

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

win用のインストーラーをダウンロード＆実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/59a74c5d-8658-677b-819f-f2b20a3eccb3.png)

Next連打です。私はC直下に既にxamppフォルダがあった(挫折の名残)ので削除して進めました。

もしインストール場所を変更する場合は、その場所を忘れないようにしてください。

## Drupalのダウンロード

https://www.drupal.org/download

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/0abbf59b-ecc0-5d7e-5c0c-5a888488b741.png)

執筆時の最新バージョンはdrupal-11.0.5でした。ダウンロード＆解凍します。

## DrupalをXAMPPフォルダに移動

先ほど解凍した「drupal-(任意のバージョン)」フォルダを、C:\xampp\htdocsに移動させます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/273d4d1e-2563-43dc-f83b-92c15d8c486d.png)

そして、フォルダ名を変えます。ここでは「drupalwebsite」とします。これがDrupalのURLになるので覚えておきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/3b674e7d-d802-298d-1195-1261f52f3bbf.png)

これでソースコードの準備は完了しました。不具合がなければよいのですが…。

## XAMPPでサーバーとDBを起動
XAMPPを開きます。一応、毎回「管理者として実行」しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/7529be3e-9fdd-9904-6cba-76070a7fd526.png)

そうしたら、サーバー(Apache)とデータベース(MySQL)をスタートさせましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/f76902e3-89dc-9463-746a-b197f1834a1a.png)

特にエラーも吐かれずホッとしています。

## Drupal用データベースを作成

MySQLのAdminをクリックしてphpMyAdminを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/c10b86d2-94e6-c206-3447-a7540980d643.png)

上部のタブで「データベース」を選択し、名前を入力しましょう。ここでは「drupalDB」としています。

文字コードは、参考サイト同様にutf32_general_ciを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/45c69b80-1f4a-1858-e569-67593e24576f.png)

「作成」をクリックしましょう。

## Drupalのインストール

Drupalのインストールをブラウザから進めます。

http://localhost/drupalwebsite

※xampp/htdocsの中に入れたDrupalの任意のフォルダ名がそのままURLになります

最初に言語を選択します。もちろん「日本語」で進めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/52b1cb94-2a32-330d-21ea-10e5f83d0491.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/031c08f4-950c-718d-6cb9-b258a60280d1.png)

すると…。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/55e2fb49-e423-7df7-c910-7faaffc0a953.png)

きましたね、エラー。きていない人は飛ばしてください。同じエラーが出た人は、一緒に落ち着いて解決していきましょう。

### エラーの原因

エラーを翻訳すると下記のようになります。

「あなたのPHPインストールが古すぎます。Drupalは少なくともPHP 8.3.0を必要とします。継続的なサポートを最大限に受けるためには、PHP バージョン8.3.0以上にアップグレードすることをお勧めします。詳細については、PHPのバージョンサポートドキュメントとDrupalのPHP要件ページをご覧ください。」

試しにコマンドプロンプトでPHPのバージョンを確認してみると…。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/199b4e55-a50f-c5d6-ca8b-0d08429c25a6.png)

「PHP 8.3.12」とあります。なんだ、8.3以上じゃないか。じゃあなんでDrupalは8.2と勘違いしているんだと。

理由はわかりません。ただ、XAMPPのshellで同じようにバージョンを確認したら、Drupalの指摘どおりでした。クライアント側とサーバー側で、参照しているPHPが異なっているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/c9f865e8-18dd-12e4-41dd-8474652b0df2.png)

### PHPのアップデート

では、アップデートを行っていきます。まずは最新のPHPをダウンロードしましょう。

https://www.php.net/downloads.php

「Windows donwloads」をクリックし…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/9efc7b0b-bad9-b196-aea9-540d7d931de2.png)

Thread Safeのzipをダウンロード＆解凍します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/1675a9b1-de8b-dfa2-0bb8-0a67ec809c26.png)

解凍後のフォルダを、XAMPPフォルダ内の「php」フォルダと差し替えます。

①XAMPPフォルダに移動
②「php」フォルダの名前を「php_old」に変更
③解凍後のフォルダの名前を「php」にして、XAMPP直下に格納

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/2221131d-7cf5-bab4-340d-2493f62ea398.png)

これにてアップデートは完了です。

### 各種エクステンションを有効にする

再度Drupalを開いてみると…おやおや新しいエラーがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/e511f037-48de-d850-b2c8-664d6fe36e19.png)

どちらもエクステンションの問題のようです。まずは「gd」エクステンションのほうから対処します。

そのためには通常「php.ini」ファイルを編集するのですが、現在xampp/phpの中を探してもそれらしいファイルはありません。ですが「php.ini-development」というファイルがありました。これを同フォルダ内に複製して、名前を「php.ini」に設定しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/c858df6f-8dcd-070f-5d6c-1c6283c16c99.png)

そしたら「php.ini」をメモ帳で開いて、問題となっている「gd」で検索をかけてみましょう。私の場合は941行目に見つかりました。コメントアウトされているので、頭のセミコロンを削除して有効にしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/da4896a7-b4e6-c181-c132-350ee6767c11.png)



これでエラーが解決されたはずです。メモ帳を保存して、再度Drupalを開きましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/4bdd6932-4c72-30f4-0169-d54616639010.png)

先ほどまで表示されていたエラーが消えました。それでは、残りのエラーの原因であるPDOデータベースエクステンションを有効にしていきましょう。

もう一度「php.ini」を開き、下記エクステンションのセミコロンを削除して有効にしてください。

```
extension=pdo_sqlite
extension=pdo_mysql
extension=mysqli
```

更に、これを下記のように修正してください。

```
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_mysqli.dll
```

「＝」以降は、xampp/php/extフォルダ内にあるファイル名です。つまりこれらのファイルを参照させます。

「php.ini」を保存してDrupalを開くと、ひとまずエラーはなくなったことがわかります。警告はありますが、「とりあえず進む」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/aadb086b-dc92-e615-bdb2-567da373984a.png)

## データベース設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/950c9629-f8e1-e289-7637-057a31c6c153.png)

データベース名には先ほど設定した「drupalDB」を、ユーザー名には「root」
を設定します。「保存して次へ」をクリックしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/686e8177-26a2-7f95-2334-79d8af6b16db.png)

データベースのバージョンが低いようです。またこのパターンか。
ではバージョンアップしましょう。

### データベースのアップデート

https://dlm.mariadb.com/browse/mariadb_server/

こちらから以下のように進み、ソースコードをダウンロード＆解凍します。

「Community Server 11.5（執筆時最新）」
「Community Server 11.5.2」
「winx64-packages/」
「mariadb-11.5.2-winx64.zip」

次に、xamppフォルダの「mysql」フォルダと差し替えます。下記の手順です。

①「mysql」のフォルダ名を「mysql_old」に変更
②解凍後のフォルダをxamppフォルダに移動
③そのフォルダ名を「mysql」に変更

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/a46b7f26-6ec1-aee1-1afe-32bc0d9f98ce.png)

次に、下記手順でフォルダを整理します。

①「mysql_old」から「backup」と「data」フォルダを「mysql」フォルダにコピー
②mysql_old/bin から「my.ini」ファイルを、mysql/binにコピー

これでアップデートが完了しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/ad16f8c1-bebd-8744-30c2-73a78b103879.png)

ようやくエラーが消えましたので、Drupalをインストールします(感激)

環境設定画面が表示されるので、必須項目を埋めて完了しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/841c86d1-b983-dc63-8718-23fff927494a.png)

おおお…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514795/fe3c82d4-1866-7547-696d-86533fecc368.png)

キターーーーーーーー！！！！おつかれさまでした！！！！！！私はこの勢いでDrupalを学習します！！！！！ここまで説明で何か変なところあったらご指摘ください！！！！！！！それでは！！！！！！！











## 参考
https://qiita.com/nekihcom/items/82b8b8a5f57e534f163e

https://blog.templatetoaster.com/change-php-version-xampp/

https://www.infosolutionsgoa.com/tutor/upgrading-php-mariadb-xampp.html