【備忘録】mac＋Homebrew＋ApacheでphpMyAdminを起動する

# メモ
MacでApacheを利用しphpMyAdminを起動したかったが、Apacheにphpモジュールが無くて割と苦戦したので記録として備忘録作りました。
※記録日は2023.2.25、バージョンによって違う可能性があるためご注意！

# 環境
| OS、ツール         |          バージョン| 
|:-----------------|------------------:|
| macOS Monterey   |             12.5.1|
| Homebrew         |             4.0.3 |
| Apache           |            2.4.55 | 
| PHP              |            8.2.3  |
| mysql            |            8.0.32 |

# Homebrew🍺のインストール
既にインストール済みかもしれないが念の為

① [Homebrew公式ページ](https://brew.sh/index_ja)へ移動して、インストール直下のコマンドをコピー
![スクリーンショット 2023-02-25 15.17.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193957/7c9e1e71-de74-9e00-9c99-9b0059d8d570.png)

② ターミナルを起動してペーストし実行
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

# brew🍺経由で必要なものダウンロード
既に入っていたら特に必要ないです
### ① mysqlをインストール
ターミナルで以下実行
```
$ brew install mysql
```

### ② Apacheのインストール
ターミナルで以下実行
```
$ brew install httpd
```

### ③ PHPのインストール
ターミナルで以下実行
※バージョンはお好みでどうぞ！
```
$ brew install php@8.2
```

### ④ phpMyAdminのインストール
ターミナルで以下実行
```
$ brew install phpmyadmin
```
ダウンロード時に以下のようなメッセージが出てくるので、コピーして取っておいてください。
後でhttpd.confの設定ファイルをいじる際に使います。
```
 Alias /phpmyadmin /usr/local/share/phpmyadmin
    <Directory /usr/local/share/phpmyadmin/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        <IfModule mod_authz_core.c>
            Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Allow from all
        </IfModule>
    </Directory>
```

# httpd.confの設定変更
Apacheの設定ファイルを開く。（ターミナル経由もしくはフォルダから）
※自分の環境では以下にありました
usr/local/etc/httpd/httpd.conf
![スクリーンショット 2023-02-25 15.51.55（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193957/279af9dc-efcc-9296-e281-8baee59559b1.png)

以下手順で書き換えを実施。
### ① Listenディレクティブの設定
ポート番号の設定をする、今回は80を利用。
```
Listen 80
```
### ② ServerNameディレクティブの設定
Apacheサーバのホスト名とポート番号を設定する。
初期設定だと以下のようにコメントアウトされているのでご注意。
```
#ServerName www.example.com:80
```
#を外しローカル環境を設定。
```
ServerName localhost:80
```
### ③ DirectoryIndexディレクティブの設定
ServerNameにリクエストした際にindex.phpを返すように追記をする。
※初期設定ではindex.htmlのみ記載されている。
```
DirectoryIndex index.html index.php
```
### ④ phpのモジュール有効化
今記事で書きたかった最大のポイント
この設定をしないと、Apacheを起動してもphpとして実行されない。
>モジュールが有効でない場合、以下のようにテキストのみの表示になる。
>![スクリーンショット 2023-02-25 16.20.00（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193957/27d80520-025b-3076-dcca-96222a80343e.png)

phpのモジュールを追記する。
※自分の環境では以下にありました
usr/local/opt/php@8.2/lib/httpd/modules/libphp.so
```
# php モジュールの場所は自環境に合わせて変更してください
LoadModule php_module /usr/local/opt/php@8.2/lib/httpd/modules/libphp.so

<IfModule php_module>
  AddType application/x-httpd-php .php
</IfModule>
```

### ⑤ phpMyAdminの設定追記
最後尾にphpMyAdminをインストールした際にメモしたログを追記する。
```
# phpmyadmin
Alias /phpmyadmin /usr/local/share/phpmyadmin
    <Directory /usr/local/share/phpmyadmin/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        <IfModule mod_authz_core.c>
            Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Allow from all
        </IfModule>
    </Directory>
```

# phpmyadmin.config.inc.phpの設定変更
phpMyAdminの設定ファイルを開く。（ターミナル経由もしくはフォルダから）
※自分の環境では以下にありました
usr/local/etc/phpmyadmin.config.inc.php

下記手順で設定を変更。

### ① blowfish_secretに適当な32文字以上の文字列を設定
※暗号化のためのキーなので覚えなくていいです、ほんとに適当でいいです。
```
$cfg['blowfish_secret'] = '適当な32文字';
```

### ② サーバ、ホスト名の設定を変更
localhostから127.0.0.1に変更する。
```
$cfg['Servers'][$i]['host'] = 'localhost';
```
```
$cfg['Servers'][$i]['host'] = '127.0.0.1';
```

### ③ DB設定のコメントアウトを外す
下記のテーブル情報取得設定のコメントアウトを外す。
```
 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
 $cfg['Servers'][$i]['relation'] = 'pma__relation';
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
 $cfg['Servers'][$i]['history'] = 'pma__history';
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
 $cfg['Servers'][$i]['recent'] = 'pma__recent';
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
 $cfg['Servers'][$i]['users'] = 'pma__users';
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
```

# Apacheを起動する
ターミナルで以下コマンドを実行し、Apacheを起動する。
※既に起動している場合は注意されるのでrestartもしくはstopしてからstartする。
```
$ sudo apachectl start
```

# mysqlを起動する
ターミナルで以下コマンドを実行する。
```
$ mysql.server start
```

>初回の場合は下記初期設定を実施する。
>ターミナルで以下実行し設定を行う。
>```
>$ mysql_secure_installation
>```
>最初はY（Yes）で返答し、次のパスワードの強度設定は２で設定。
>```
>Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:2
>```
>新規パスワードを設定する。（8文字以上、数字、大文字と小文字の混在、特殊文字の使用）
>```
>New password:設定したいパスワード
>Re-enter new password:再入力
>```
>以降はYで返答して問題ないです。

# ローカル環境へアクセスする

[localhost/phpmyadmin/](http://localhost/phpmyadmin/)にアクセスする。
以下のように表示されていたら成功！！！お疲れ様です
![スクリーンショット 2023-02-25 17.00.57（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193957/7a6c73cf-11e1-9920-a323-57a1b402842d.png)

>わかりづらかったらすいません