MAMPでWordPressをインストールする方法

業務で古いバージョンのWordPressのローカル環境を作る必要があったのですが、つまずいたポイントがあったので書いておこうと思います。

## 環境
macOS Big Sur 11.3.1
MAMP 6.5


## 今回入れるPHPとWoedPressのバージョン
PHP: 5.6.40
WoedPress: 3.1.4
（フロントエンド4年目の私には触ったことのないUIのWPでした・・！）


## 手順
今回はMAMPのインストールは済んでいる前提で書いていきます。
まだの方はご自身でインストールしてください！

1. 使用するPHPのバージョンを設定する
2. phpMyAdminにてデータベースを作成する
3. WordPress公式より該当バージョンのファイルをダウンロードしてくる
4. wp-config.phpを設定する
5. ローカルにアクセスする
6. 画面に従って入力しWordPressをインストールする
7. 再度ログイン → 完了


## 使用するPHPのバージョンを設定する
MAMPを起動したら「PHP Version」をクリックして使用したいPHPを選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/9dee2993-e261-acad-2f97-fc96a38b43fe.jpeg" width="480" height="389" alt="img01@2x.jpg" />

ですが今回使用したい php5.6.40 がないので、選択できるように変更していきます。

まずは Finderから `/Applications/MAMP/bin/php` へ移動します。
PHPがいくつか格納されているので、その中から使用したいバージョン以外のファイル名の先頭に_（アンダーバー）をつけて除外します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/906df2e4-bf6e-8584-7462-ffdcf8ce3d99.jpeg" width="712" height="200" alt="img02@2x.jpg" />

※ここにないバージョンのPHPを使用したい場合は一番近いものを選択するのがいいかと思います。数年前はMAMPの公式ページにPHPのダウンロードページがあった気がするのですが、今は無くなってしまったようです。

最後にMAMPを再起動して再び確認すると使用できるPHPが変更されているので、該当を選択し「Start」をクリックします。


## phpMyAdminにてデータベースを作成する
MAMP右上にある「WebStart」をクッリックします。すると、ブラウザでスタートページが表示されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/4e8736ca-d289-a2fe-4ae2-b73694c24ac8.jpeg" width="480" height="389" alt="img08@2x.jpg" />

表示されたら左上の「Tools」タブからphpMyAdminをクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/0ad028a3-0df4-bcec-ae2a-6ea92ee6d681.jpeg" width="350" height="318" alt="img03@2x.jpg" />
phpMyAdminが立ち上がったら、上のタブから一番左の「Databases」を選択します。

Create database の箇所に任意のデータベース名を入力し、照合順序を `utf8_general_ci`（mysqlのデフォルト）にしたら「Create」をクリックしてデータベースを作成します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/39e158c3-c99e-2e86-3f01-a0db1892e6ab.jpeg" width="451" height="151" alt="img04@2x.jpg" />


## WordPress公式より該当バージョンのファイルをダウンロードしてくる
公式の「全てのリリース」ページから使用したいバージョンのWordPressをダウンロードします。
https://ja.wordpress.org/download/releases/


## wp-config.phpを設定する
作業ディレクトリを作成して先ほどダウンロードしたWordPress一式を追加します。
今回はsampleというディレクトリを作成します。

### ファイル構成（WoedPress3.1.4の場合）
```bash
/
└── sample
    ├── wp-admin
    ├── wp-content
    ├── wp-includes
    ├── license.txt
    ├── index.php
    ├── readme.html
    ├── wp-activate.php
    ├── wp-blog-header.php
    ├── wp-comments-post.php
    ├── wp-config-sample.php
    ├── wp-config.php // これを作成
    ├── wp-cron.php
    ├── wp-links-opml.php
    ├── wp-load.php
    ├── wp-login.php
    ├── wp-mail.php
    ├── wp-settings.php
    ├── wp-signup.php
    ├── wp-trackback.php
    └── xmlrpc.php
```

追加したWordPressの中から `wp-config-sample.php` をコピーもしくはリネームで `wp-config.php` を作成します。

次に、wp-config.phpをエディタで開き、必要な設定をしていきます。

### MySQLの設定
まずは以下の3項目を設定します。

- WordPressのためのデータベース名
- MySQLデータベースのユーザー名
- MySQLデータベースのパスワード

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/4fdfdfbe-ea41-77a9-4e12-029cbe5f20df.jpeg" width="467" height="275" alt="img05@2x.jpg" />

MySQLデータベースのユーザー名とMySQLデータベースのパスワードはMAMPのスタートページのMySQLに載っている `root` を指定します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/4707303b-e1f8-0a7d-f954-797a37a67031.jpeg" width="480" height="359" alt="img06@2x.jpg" />

```php
/** WordPress のためのデータベース名 */
define('DB_NAME', 'test_db'); // phpMyAdminで作成したデータベース名を指定

/** MySQL データベースのユーザー名 */
define('DB_USER', 'root'); // MAMPの場合はrootを指定

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'root'); // MAMPの場合はrootを指定
```


### 認証用ユニークキーの設定
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256909/bd4d2ab5-e288-adf7-3ccc-2d2f41623180.jpeg" width="587" height="321" alt="img07@2x.jpg" />

コメント↓に書いてあるように、
> {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成することもできます。

https://api.wordpress.org/secret-key/1.1/salt/ へアクセスして生成し、画像の赤枠内を上書きします。

以上で wp-config.php の設定は完了です。


## ローカルにアクセスする
ローカルのURLを叩いてアクセスします。
パスの最後に `/wp-admin/` をつけてアクセスしてみましょう。
例) http://ローカルのパス/wp-admin/

無事にWordPressのインストール画面が開いたら成功です！
画面に従って以下を入力します。

- サイトのタイトル
- ユーザー名
- パスワード
- メールアドレス

入力後、**検索エンジンでの表示** のチェックを外し、インストールできたら再びログインします。
無事にダッシュボードに入れたら完了です！


## ローカルにアクセスしようとしたらエラーを吐いた場合
今回つまずいたところがここです。
新しいWordPressを入れる場合は問題なくインストールできたのですが、今回の3.1.4を入れる際に下記のようなエラーがでてしまい、上手くインストールができませんでした。
検索してみたらMySQLのバージョンが新しくなったことで起こるエラーのようです。

```bash
WordPress database error: [Invalid default value for 'comment_date']・・・
WordPress database error: [Invalid default value for 'link_updated']・・・
WordPress database error: [Invalid default value for 'post_date']・・・
WordPress database error: [Invalid default value for 'user_registered']・・・
・・・
```


### エラーの解決法
MAMPの `/Applications/MAMP/conf` に `my.cnf` ファイルを作成して設置することで解決することができました。
一度MAMPを停止して `my.cnf` に下記の記述を加えて保存し、MAMPを再起動します。

```my.cnf
[mysqld]
# vi /etc/my.cnf
sql_mode=NO_ENGINE_SUBSTITUTION
```

再起動が終わったら再びインストールを試してみてください。
無事にインストールできれば完了です！


## 最後に
M1 MacになってまだDockerを使っておらず、急いでいたためMAMPにて作業しました。
が、結果エラーで時間を取られてしまったのでdockerのほうが早かったかもと思っています。
あとでdockerで作成してみたらそちらも記事にしたいと思います^^


## 参考記事
- [【MAMP / MySQL5.7】ONLY_FULL_GROUP_BYをMAMPで無効にする](https://entersquare.jp/web-develop/1020/)
- [MAMP(MacOS)でのmy.cnfファイルの作成方法](https://qiita.com/yyy752/items/60d00ce945b58e48fde0)
- [SQLSTATE[HY000]: General error: 1364 Field **** doesn't have a default value](https://qiita.com/21century_girl_/items/5be2606b3bfa98514952)