VirtualBox上にWeb開発環境を作る

#参考書籍
小笠原 種高. ゼロからわかる Linux Webサーバー超入門［Apache HTTP Server対応版］

#VirtualBox,CentOSインストール
参考書籍の『CHAPTER 2 サーバーを構築しよう』に従って下記を実施

1. VirtualBoxのダウンロード 
2. VirtualBoxのインストール
3. CentOS7 のイメージ の ダウンロード
4. 仮想マシン（仮想コンピューター）の作成
5. CentOS7のインストール

##結果
1~5まで書籍通りでOK

##参考
[VirtualBoxのダウンロードサイト](https://www.virtualbox.org/wiki/Downloads)
VirtualBox：VirtualBox-6.1.16-140961-Win.exe
[CentOS7のイメージのダウンロードサイト](https://www.centos.org/download/)
Centos：CentOS-8.2.2004-x86_64-dvd1.iso

#apacheインストールしてブラウザアクセス出来るようにする
##yumを使ってapacheをインストール

```shell
yum install httpd
```

###インストール時の問題（１）
下記アラームが発生

```shell
 could not retrieve mirrorlist http //mirrorlist.centos.org/
 
 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=<repoid> ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>
        or
            subscription-manager repos --disable=<repoid>

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:
```

下記を参考にDNSとGATEWAYを設定
[VirtualBoxのCentOS7で yum install したら Could not retrieve mirrorlist となった時の対応方法](https://qiita.com/ponsuke0531/items/e036dfa4dd1e69086e13)

###インストール時の問題（２）
上記対策後、下記アラームは残ったまま

```shell
 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=<repoid> ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>
        or
            subscription-manager repos --disable=<repoid>

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:
```

下記を参考に
[Mac + DockerでCentOSを立ち上げたらyumが全く使えなかった話](http://masyumaroking.com/39)

/etc/yum.repos.d/CentOS-Base.repoの$releaseverを'7'で直書きに変更

```shell
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://mirror.centos.org/centos/7/updates/$basearch/
```
※[base],[updates],[extras]の3か所とも変更実施

正常にインストール完了

#Apacheを起動させる
##起動コマンド
```shell
 systemctl start httpd
```

##起動確認コマンド
```shell
 systemctl status httpd
```
##自動起動させる
```shell
systemctl enable httpd
```
##自動起動の確認
```shell
systemctl is-enabled httpd
```
##viでhtmlファイルを作成する
書籍通りでOK

##ファイウォールでポートを開放する
##publicゾーンにhttp,httpsを許可
 
```shell
firewall-cmd --zone = public --add-service = http --permanent
```

```shell
firewall-cmd --zone = public --add-service = https --permanent
```

##リロード

```shell
firewall-cmd --reload
```

##ipアドレスを確認する

```shell
ip a

~~~省略
inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.255 .....
~~~省略

```

##ipアドレスを使ってブラウザからアクセスする
プラウザに"xxx.xxx.xxx.xxx/index.html"
を入力する
###結果
上記で作成したhtmlがただしく表示される

##SSHでアクセスする
###SSH機能をサーバーにインストール
標準インストールでSSHがインストールされているので作業不要

###SSHクライアント(TeraTerm)のインストール
書籍通りで問題なし

##Filezilaでのファイルやりとり
※参考書籍はWinSCPを使っているがここでは既にインストールされているFilezilaを使って接続する
<ファイル>⇒<サイトマネージャー>⇒<新しいサイト>を選択
- プロトコル:SFTP
- ホスト:上記で調べたIPアドレスを設定
- ログオンタイプ:パスワードを尋ねる
- ユーザー:root

#PHP環境を構築する
##インストール

```shell
yum install php 
```

##Apache再起動
設定を反映させるため

'''shell
systemctl restart httpd
```
※書籍はyum restart httpdになっているが誤記 

##PHPファイルブラウザで確認
- PHPファイルを"/var/www/html"かに作成する
- ブラウザで確認する

###結果
ただしく表示された

#課題
##バージョンが5系なので7系を使用する方法を確認する
###参考
[CentOS7のPHPを5.6／7.0／7.1／7.2／7.3系にバージョンアップする](https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0)
##SQLサーバーを構築する
###参考
[データベースサーバー構築(MySQL)](https://centossrv.com/mysql.shtml)