EC2へのphpMyAdminのインストール手順：「tar: yarn.lock: Cannot open」のエラー対応とphpMyAdminのapache設定

# 概要
* EC2インスタンスにWordpressを導入後、phpMyAdminをインストールしました。ウェブでアクセスするまでの対応をしたので、その手順をまとめておきます。
    * tarコマンドの権限エラー、phpmyadminのapache設定エラーにも遭遇したので対応方法も記します。
* EC2インスタンスにWordpressをインストールした前回の記事はこちら：
    * [WordpressをEC2インスタンスにインストールする方法（Apacheのバーチャルホスト設定方法・Wordpress用DB作成方法も解説）](https://qiita.com/Ryo-0131/items/a6dab55ea5b54b6e10b7)
* phpMyAdminとは：MySQLデータベースをウェブブラウザから操作するための無料のオープンソースツールです。SQLコマンドを覚える必要がなく、WebベースのGUIで簡単に操作できるため、初心者でも使いやすいということで知られていますね。情報やサポートも充実しています。

## 環境
* Mac
    * 機種ID：MacBookPro18,3
    * macOS：Monterey
    * チップ：Apple M1 Pro
    * メモリ：16GB
* サーバー（AWS EC2インスタンス）
    * OS：Ubuntu 18.04.3 LTS
    * Web Server：Apache/2.4.29

## 手順
* まずはECインスタンスにSSH接続します。
* phpMyAdmin関連パッケージをインストールします。
    * yumでパッケージ管理をしている場合はyumでインストールしてください。
    * yum：Red Hat系（Fedora、CentOSなど）
    * apt：Debian系（Ubuntu、Debianなど）

```bash
$ sudo apt-get install php-mbstring php-fpm
# yumの場合はsudo yum install php-mbstring php-fpm -y
```

* Apacheを再起動します。

```bash
$ sudo service apache2 restart
#　最近のLinux Distributionであればsudo systemctl restart httpd
```

* Apacheウェブサーバーのドキュメントルートに移動します。
    * 今回作成してあるWebページは、このディレクトリの下にある前提です。

```bash
$ cd /var/www/html
```

* 例：公開ページのディレクトリがあるところ
    * `/var`：変化するデータを格納するためのディレクトリ
    * `/www`：Webサーバーのディレクトリ
    * `/html`：ウェブページのHTMLコンテンツが格納されるディレクトリ

```bash
$ cd /var/www/html/wpsample_homepage
```

* phpMyAdminをダウンロードします。
    * wgetは、指定されたURLからファイルをダウンロードすることができる、コマンドラインツールの1つです。

```bash
$ sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
````

* phpMyAdmin フォルダを作成して、その中に先ほどダウンロードした圧縮フォルダを展開します。

```bash
$ sudo mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
rm phpMyAdmin-latest-all-languages.tar.gz
```

* しかし！ここで私の環境では、この後ずら〜〜〜とエラーメッセージが返ってきてました(°_°)
    * 最後は2行は以下です。

```bash
tar: yarn.lock: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
```


## エラー①：tarコマンドのアクセス権限エラー
* このエラーは、tarコマンドがファイルやディレクトリのアクセス権限に関する問題を抱えているから発生するとのこと。
* まずは、tarコマンドを実行しているユーザーに、先ほどダウンロードした圧縮フォルダへのアクセス権限を与えます。また、読み取りアクセス権を追加。

```bash
$ sudo chown $USER phpMyAdmin-latest-all-languages.tar.gz
$ sudo chmod +r phpMyAdmin-latest-all-languages.tar.gz
```

* `$USER`のところは、ubuntuとかが入ります。分からない方は、以下コマンドで現在ログインしているユーザー名の確認が可能です。

```bash
$ whoami
```

* 次に、sudo mkdirコマンドを使用する場合、作成されたディレクトリの所有者がrootになることがあります。これが原因で、tarコマンドが`yarn.lock`ファイルを読み取ることができない場合があるとのこと。
* phpMyAdminディレクトリの所有者を現在のユーザーに変更します。

```bash
$ sudo chown -R $USER:$USER phpMyAdmin
```


* 再度tarコマンドを実施します。

```bash
$ tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
```

* 圧縮フォルダは削除しておきましょう。

```bash
$ sudo rm phpMyAdmin-latest-all-languages.tar.gz
```

* よし、これで完了！と思って、`http://IPアドレス（orパブリックDNS）/phpmyadmin/`にアクセスしてみますが、Not Found Errorになります。な、なぬっ。。。！！

```bash
Failed to load resource: the server responded with a status of 404 (Not Found)
```

## エラー②：phpMyAdminのApache設定エラー
* 調べてみると、phpMyAdmin関連の設定をApacheに反映させる必要があるらしい。以下のファイルを編集します。
    * `/etc/apache2/apache2.conf`または`/etc/httpd/conf/httpd.conf`

```bash
$ cd /etc/apache2/
$ sudo vi apache2.conf
```

* 設定ファイルの最後に以下の行を追加。

```conf
Include /etc/phpmyadmin/apache.conf
```

* この`apache.conf`は、ApacheがphpMyAdminにアクセスするために必要な設定（AliasディレクティブやDirectoryディレクティブ）が含まれています。phpMyAdminのApache設定を管理するために重要なファイル。
* 念の為、追加した設定ファイルがあるか確認しておきましょう。

```bash
$ cd /etc/phpmyadmin
$ ls -a
```

* 確認が取れました。Apacheを再起動します。

```bash
$ sudo systemctl restart apache2
```

* `http://IPアドレス（orパブリックDNS）/phpmyadmin/`にアクセスすると、無事にphpmyadminが表示されました！
* めでたしめでたし〜！！

# 参考記事
* [【超初心者向け】WordPressをAmazon EC2インスタンスにインストールする](https://qiita.com/moomindani/items/9968df0d4396564bf74c)