GCEにDBを利用したHPを移行する(作成中)

運営していたHPをXFREEからGCE(Google Compute Engine)に移行することにしました。
理由は、
・XFREEでは制限が多い(SQL開発ツールでDB操作ができなかったりする)、
・HPの操作中に止まることがある
・GCEというかクラウドを使っているというのが、なんだかかっこいい
からです。
AWSも考えましたが、どうやっても永久無料で運営していくのが無理なので止めました。
この記事では、移行の際に得た知見をまとめます。

# 環境
``` 
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
```

# ブラウザでWebページを表示する
GCEのインスタンスは作成前提で進めます。

## PHP
PHP7.0をインストールします。
PHP7.0をインストールするためにはRemiリポジトリが必要で、
Remiリポジトリからソフトウェアをインストールするにはepelリポジトリが必要です。
epelリポジトリはインストール済みのため、Remiリポジトリをインストールします。
``` 
$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
``` 
php7.0をインストールします。
``` 
$ sudo yum install -y --enablerepo=remi,remi-php70,epel php php-devel php-mbstring php-mysqlnd php-mcrypt p
hp-pear php-gd php-fpm php-pecl-xdebug php-opcache php-pecl-memcached
$ php -v
PHP 7.0.33 (cli) (built: Nov 15 2021 10:51:40) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies
    with Xdebug v2.9.0, Copyright (c) 2002-2019, by Derick Rethans
``` 

## Apache
Apacheはインストール済みですが、起動していないはずなので起動します。
``` 
$ sudo systemctl start httpd
``` 
ついでに、再起動時に自動起動するようにします。
``` 
$ sudo systemctl enable httpd
``` 
上記を実行すると、以下のようにApacheが起動してサービスがenabledになっていることが確認できます。
``` 
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-05-28 14:07:15 UTC; 3min 5s ago
``` 

### ファイアウォールの設定
GCEのファイアウォールの設定で、
HTTP トラフィックとHTTPS トラフィックをオンにしてください。

### アクセスしてみる
Webブラウザでhttp://IPアドレス
にアクセスします。
以下、テストページが出れば成功。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697344/6e95a494-3850-aa0b-a2c8-0e924f4667f9.png)

## 作成したHTMLファイルがWebページとして表示されるか確認する
``` 
$ sudo vi /var/www/html/index.html
<html>
<head>
    <title>Hello hoge</title>
</head>
<body>
    <h1>Test hoge</h1>
</body>
</html>              
``` 
再度http://IPアドレス
にアクセスします。
以下のように表示されるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697344/89c10fc7-9541-418e-a876-0abc141ff03d.png)

# MySQLをインストールする
MySQL8.0をインストールします。
## MariaDB関連削除
``` 
$ rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
$ sudo yum remove mariadb-libs
$ rm -rf /var/lib/mysql/
``` 
## リポジトリ追加
[ここ](https://dev.mysql.com/downloads/repo/yum/)で、
リポジトリのURLを確認します。
![MySQL Community Downloads.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697344/3b1650cd-966e-75f1-fa4e-0ff25981906b.png)
インストールコマンドは
``rpm -ivh https://dev.mysql.com/get/{rpmファイル名}``
です。{rpmファイル名}は、OSによって変わります。
今回はCentOS7なので、上図の反転部分が入ることになります。
``` 
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
``` 

## インストール
以下コマンドでインストールするのですが、
```
sudo yum install mysql-community-server
```
下のエラーでインストールできないと思います。
```
GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022"
```
新しいGPGキーをインストールしてください。
```
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
```
実行後、再度mysqlをインストールすると今度は成功するはずです。


# 参考文献
https://www.wakuwakubank.com/posts/491-php-install/
https://qiita.com/S-Masakatsu/items/63b9e0e7a869d2aafc4b
https://qiita.com/zaburo/items/7518a432d915c061983f
https://ja.stealthsettings.com/gpg-key-retrieval-failed-errno-14-curl37-couldnt-open-file-rpm-gpg-key-centos-7.html
https://blog.katsubemakito.net/mysql/mysql-update-error-gpg