VirtualBoxにCentOS7を入れてApache、MySQL、PHPのインストール作業を行う(LAMP)

業務でPHPアップグレード作業を行う際に仮想環境で検証を行いました。
結構詰まったところもあったので備忘録として残しておこうと思います。

# VirtualBoxのインストール
https://www.virtualbox.org/wiki/Downloads

上記URLにアクセスしてダウンロードを行います。
筆者のPCはMacなので`OS X hosts`をクリックしてダウンロード実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/daba8988-968e-e2fe-5c66-32a933974cc1.png)

案内に沿って作業します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/291ffa43-39a7-8db3-77cf-37b3160e7456.png)

アイコンをクリックするとインストーラーが起動するので「続ける」ボタンをクリックします。続いて「インストール」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/8d3912c4-c36c-de7b-36c0-3d6d8270185c.png)

アプリケーションのVirtualBoxのアイコンをクリックすると次の画面が起動するので「新規」を押します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/1e63a730-94b8-0767-41fe-09d4fe43e3eb.png)

名前には任意の文字を、タイプをLinuxにしてRedHat(64-bit)を選択し続きボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/6bf74177-0eb3-6147-703d-e601f31895c6.png)

メモリーサイズ、ハードディスクの設定を行い作成ボタンを押します。(デフォルトでチェックされているもので進めて問題ないです)

作成完了すると以下の画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/2ae8d60c-a779-6626-1b79-9f234c24a70f.png)

いったんVirtualBoxの画面から離れて下準備を行います
下記のURLからCentOSのイメージファイルをダウンロードします。
https://www.centos.org/download/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/40348829-f64b-a7e9-4f52-0d7764046ba1.png)

x86_64をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/af185461-7c47-e661-a53b-f92d7c0984da.png)

どこでも良いですが今回は一番上のをクリック
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.9.2009/isos/x86_64/

色々ありますが、	CentOS-7-x86_64-Minimal-2009.iso　をクリック(違いはこちらのサイトに説明があります。https://linuxfan.info/centos-7-iso-image-comparison)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/152a56f1-bdf4-ab39-bc24-9924d61c6967.png)

VirtualBoxの画面に戻り「起動」→「通常起動」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/22e11f7c-0ad6-2353-fa89-b42051050c65.png)

右側のフォルダアイコンをクリックして先ほどダウンロードしたファイルをセットします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/06bca27b-2d4c-f606-a602-37ae0efb8289.png)

startをクリックして次の画面になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/c6831f54-827c-f2e9-4dc8-1c529aa6c50a.png)

しばらくすると画面にたくさん文字が走り最終的に以下の画面になっていれば成功です。
言語を日本語にして続けるボタンを押します。(画像は英語)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/fbf6041b-c12c-f471-0a98-1be5e53e143d.png)

インストールの開始ボタンを押します。警告が出て押せない場合は警告マークの付いている箇所をクリックして開き、そのまま閉じると開始ボタンが押せる様になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/833edd37-b810-f60b-997b-ad6138b0514a.png)

rootパスワードを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/d34493aa-7523-3d77-d38d-4b7d04f55e7e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/af58c470-8794-835a-b655-56a232a9c5d2.png)

自動で始まるインストールとセットアップが終わったら再起動ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/aa8d27e4-16dd-6f84-c988-3f87a8cb4552.png)

rootと入力して先ほど設定したパスワードを入力してログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/e580b4a8-46b4-33b8-5b55-534c099bbd1d.png)

ここまででCentOSのインストール作業は完了です。


# Apache、PHP、MySQLのインストール
インストールするためにはネットワークが繋がっていないといけないのですが、VirtualBoxにLinuxをインストールしたデフォルト状態ではネットワークが繋がっていません。

enp0s3に関する設定を行います。

```
nmcli c modify enp0s3 ipv4.dns 8.8.8.8
```

エラーが表示されなければ成功です。

次にファイルを編集します。

```
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
```

ONBOOT=no となっている部分をyesに書き換えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/97ad2eff-5005-5cbe-471c-bb9ec1053697.png)

サーバーを再起動

```
systemctl restart network
```

再起動後に
```
yum list httpd
```
とコマンドを入力してエラーが表示されなければOK


Linuxではyumというパッケージマネージャーを使ってyumコマンドで簡単にリポジトリからPHPやApacheなどがインストールできますが、デフォルトのリポジトリでは不足していたり、最新でないものがある様なのでepalとremiというパッケージも利用する様にします。

```
yum -y install epel-release.noarch
```

```
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
```


```
vi /etc/yum.repos.d/remi.repo
```

でenabled=0をenabled=1に書き換えて保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/a5fe60d8-3970-2b9b-ade5-5f487a5ca1ad.png)


## Apacheのインストール

```
yum -y install httpd
```

Apacheを起動

```
systemctl start httpd
```

サーバー起動時にApacheを自動起動する設定

```
systemctl enable httpd
```

サーバーにアクセスするためにはまずサーバーの側のfirewallでwebサイトに利用するポートを開放する必要があります。

```
firewall-cmd --add-service=http --permanent
```

いったんサーバーの電源を切ります

```
shutdown -h now
```

VirtualBox管理画面でサーバーの部分にカーソルを置き右クリック→設定をクリックしネットワークのところから「ポートフォワーディング」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/afa7d25a-fc47-c1ca-8d74-ba2adcca1731.png)

右上の＋マークのアイコンを押して画像の設定にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/373f8059-9187-87dd-3b39-f91211979936.png)

設定が完了したら再度VirtualBoxの管理画面で起動を行います。

http://localhost:50080/ にアクセスして以下の画面が表示されれば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/c0536811-960f-f04f-5a23-e4bcc74e8a71.png)

## MySQLインストール

```
yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-community-server
```

MySQL起動
```
systemctl start mysqld
```

MySQL自動起動設定
```
systemctl enable mysqld
```

初期設定されているパスワードを確認
```
cat /var/log/mysqld.log | grep root
```

```
2022-03-26T09:05:27.314019Z 1 [Note] A temporary password is generated for root@localhost: [ここにパスワードの文字が記載]
```

```
mysql -u root -p
Enter password: //上記のパスワードでログイン
```

パスワードの変更を行わないとデータベースが操作できないので設定します。
※8文字以上かつ英大文字・小文字・数字・記号を含めないとエラーで返されます。

```
mysql> SET PASSWORD = PASSWORD('任意のパスワード')
```

データベースを確認してみましょう。

```
mysql> SHOW DATABASES;
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/3e377d39-f1c7-4214-e487-01a47dd224cf.png)

上記の様に表示されるはずです。



## PHPのインストール
```
yum -y install --enablerepo=epel,remi,remi-php74 php php-mbstring
```
※今回は最低限のファイルしかインストールしていません。実際は使用する環境に合わせて他のライブラリもインストールする必要があります。


Apacheの再起動をします。

```
systemctl restart httpd
```

PHPの動作確認様ファイルを作成します。

```
vi /var/www/html/test.php
```

以下のコードを記述します

```
<?php
    echo 'PHP-OK';
?>
```

`http://localhost:50080/test.php`　に接続して以下の表示になっていれば成功です。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008745/4e5674c0-fcfe-f6b5-cee7-e32a2faea7d0.png)

以上で完了です！お疲れ様でした。

## 参考記事

https://manabiact.com/virtualbox-linux-setup/

https://manabiact.com/virtualbox-lamp-setup/

https://qiita.com/nooboolean/items/7efc5c35b2e95637d8c1

https://blog.fudi55.net/archives/1902.html

https://onoredekaiketsu.com/upgrade-to-php-7-4/

https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0