VirtualBox+CentOSでApache・PHP・MySQLをインストール

##何をしているか
Mac上でVirtualBoxの仮想環境にCentOSをインストールが完了している状態からスタートしています。
Apache・PHP・MySQLをインストールするところまでをおこないます。

##環境情報
ホストOS：MacOS Big Sur 11.5.2
ゲストOS：CentOS7-x86_64
VirtualBox 6.1.28
Apache 2.4.6
PHP 7.4
MySQL 5.4

##apacheのインストール

###インストール
```:実行コマンド
yum install -y httpd
```
complete!と表示されれば完了。

###apacheの起動
```:実行コマンド
systemctl start httpd.service
```
###起動確認
```:実行コマンド
systemctl status httpd
```
Active: active（running）と表示されていればOK

###自動的に起動するように設定したい場合
```:実行コマンド
systemctl enable httpd.service
```

###サーバにアクセスするためFirewallを解放する
```:実行コマンド
firewall-cmd --add-service=http --permanent
```

ここまでで一旦、VirtualBoxで立ち上げたサーバをシャットダウンします。

```:実行コマンド
shutdown -h now
```

###サーバにアクセスするためのネットワーク設定
「localhost:8889」と入力し、仮想環境で立ち上げたサーバにアクセスできるようにしたいため、VirtualBoxの仮想環境の設定を変更します。

対象の仮想環境を選択し、「設定」→「ネットワーク」でネットワークの設定画面を開き、割り当てを「NAT」にします。

「高度」をクリックすると、下に設定項目が表示されるので「ポートフォワーディング」をクリックします。

![スクリーンショット 0003-10-31 22.39.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/518144/2a864690-8a75-29d6-bd52-8b7e102c9b65.png)

下図のように設定します。
※sshの穴も開けておくと、ホストOSからゲストOSのサーバにssh接続できるので便利です。
![スクリーンショット 0003-10-31 22.40.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/518144/7ed875df-6694-cdab-c29d-8eb8162be088.png)

任意のブラウザを開き「localhost:8889」と入力し、仮想環境に構築したサーバにアクセスします。
下図が表示されればアクセス成功です。

![スクリーンショット 0003-10-31 22.47.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/518144/2de56197-387c-66ff-41c7-bb33a7ad6737.png)

###ホストOSからsshで接続する
先程のポートフォワーディングで、sshの穴を開けていれば、ホストOSからssh接続が可能です。

```:実行コマンド
ssh -p 2021 root@localhost
```
VirtualBoxで立ち上げた仮想環境は、拡張機能を追加しないと、ウィンドウサイズが固定で、コピー＆ペーストもできません。

sshで接続すると作業が捗るためおすすめです。


##PHPのインストール
###Remi repositoryをインストール
今回、PHPは7.4をインストールしたいのですが、CentOS7で「yum install php」とするとphp5.4.16がインストールされてしまいます。
Remiという方が作成したレポジトリを使うことで、PHP7系をインストール可能です。

下記コマンドを実行し、Remi repositoryをインストールします。

```:実行コマンド
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
```

###PHP7.4をインストール
Remi repositoryがインストールされていれば、そのレポジトリを使ってphp7.4がインストール可能です。

```:実行コマンド
yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
```

###インストールを確認
```:実行コマンド
php -v

PHP 7.4.25 (cli) (built: Oct 19 2021 15:18:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
```
PHP 7.4.25がインストールされていることを確認。

###phpの動作確認を行う
まずはapacheを再起動します。
```:実行コマンド
systemctl restart httpd
```
phpのドキュメントルートはCentOS7では「/var/www/html/」です。
ドキュメントルートにtest.phpを作成します。

```:実行コマンド
vi /var/www/html/test.php
```
phpinfoを表示するよう下記コードを記入して保存

```php:test.php
<?php
phpinfo();
```

ブラウザを開いて「localhost:8889/test.php」にアクセス。

PHP Version 7.4.25が表示されれば、PHPの動作確認はOK。

![スクリーンショット 0003-10-31 23.11.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/518144/9787e6ba-1964-f0b8-4b69-89a03c2a9b65.png)


##MySQLのインストール
###mariaDBを削除
デフォルトでmariaDBがインストールされています。
競合を避けるためmariaDBを削除します。

```:実行コマンド
yum remove mariadb-libs
```

###インストール
CentOS7を使用しているため「el7」を選択します。

```:実行コマンド
yum install -y http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
```

```:実行コマンド
yum install -y mysql-community-server
```

###起動
```:実行コマンド
systemctl start mysqld
```
###自動起動の設定
```:実行コマンド
systemctl enable mysqld
```


以上で、Apache+PHP+MySQLのインストールは完了です。


##参考にさせていただいたサイト
https://qiita.com/karaimonoOitii/items/9ccbec9685b44d589972
https://www.hiroski.com/2020/04/202004-php74-install.html
https://manabiact.com/virtualbox-lamp-setup/