LAMP環境構築(1) - VirtualBoxへのCentOSインストールほか

# Apache

## apacheの検索

「windows apache」で検索した。
検索結果より、下記リンクを開いた。
https://programming-style.com/apache/reference/install-win/

## Apacheダウンロード

「Apache Lounge」内、「Downloads」からZIPファイル（Apache 2.4.52 Win64[Apache VS16 Binary] httpd-2.4.52-win64-VS16.zip）をダウンロードした。
ZIPファイルを展開した。

## 環境変数の追加

「コマンドプロンプト」からの操作をしやすくさせるため、Apache実行フォルダパスを環境変数Pathに追加した。

## Apache初期設定

Apacheフォルダ内、confフォルダにあるhttpd.confをメモ帳によって編集した。

### ServerRoot設定

３８行め「Define SRVROOT "c:/Apache24"」を、
「Define SRVROOT "c:\apache"」のように修正した。

### ServerName設定

２２８行め
>#ServerName www.example.com:80

を、
「ServerName localhost:80」のように修正した。

### 設定内容チェック

コマンド「httpd -t」を用いて、設定内容をチェックした。
実行結果「Syntax OK」を得た。

## Apache起動・停止

Apacheインストールフォルダ内「\bin\httpd.exe」を実行した。
Google Chromeを開き、アドレスバーに「http://localhost」と入力し、アクセスしたところ、「It works!」と表示された。これで、Apacheが正常に起動していることが確認できた。

# VirtualBox

## VirtualBoxのダウンロード&セットアップ

https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html

##仮想マシンの新規作成

Oracle VM VirtualBox マネージャーで[新規]をクリックした。

以下の要領で、[作成]、[次へ]を押した。

名前：　CentOS-Stream-8
マシンフォルダー：　C:\UserのユーザーファイルのVirtualBox VMs/
タイプ：　Linux
バージョン：　Red-Hat (64bit)
メモリサイズ：　1024MB


### 仮想ハードディスクの作成

以下の要領で、[作成]、[次へ]を押した。

ハードディスク：　仮想ハードディスクを作成する
ファイルタイプ：　VDI
物理ハードディスクにあるストレージ：　可変サイズ
ファイルの場所：　C:\UserのユーザーファイルのVirtualBox VMs/CentOS-Stream-8・CentOS-Stream-8.vdi
ファイルのサイズ：　8GB

# CentOS

CentOS-Stream-8-x86_64-20220215-dvd1.iso
http://isoredirect.centos.org/centos/8-stream/isos/x86_64/

# VirtualBoxへCentOSをインストール

VirtualBoxを起動後、[設定]タブにおいて、「無効な設定が見つかりました。」と表示され、[OK]が押せないトラブル。

## トラブルシューティング（１）

https://zenn.dev/sirver/articles/a303f76746ec91

PCを再起動し、BIOSを起動した。【Virtualization Technology】を【Enabled】に変更した。

コントロールパネルの【Windows 機能の有効化または無効化】において、【Windowsハイパーバイザー】【仮想マシンプラットフォーム】にチェックを入れ、設定を保存、再起動した。

インストール中、黒い画面から進まない事象が発生した。

## トラブルシューティング（２）

「centos 8 virtualbox インストール　進まない」で検索した。

https://postgresweb.com/virtualbox-centos-installerror

VirtualBoxの古いバージョンをダウンロードした。

仮想マシン"CentOS-Stream-8"のセッションを開けませんでした。

メッセージは以下。

>Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).

>終了コード : E_FAIL (0x80004005)
コンポーネント: ConsoleWrap
インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}


https://zenn.dev/miwarin/articles/c4e3d056752047
より、解決法を得る。

>Control Panel > Programs > Programs and Features > Turn Windows features on or off > Unselect Hyper-V > OK

「Windowsハイパーバイザープログラム」のチェックを外し、OKをクリック。

>... making sure to restart Windows TWICE, as my testing indicates that it actually takes 2 restarts to fully uninstall Hyper-V.

上記の通り、「2回」再起動。

再度、VirtualBoxを開き、CentOSを起動させると、インストールが開始された。

空き領域不足でエラーとなってしまったのでトラブルシューティング。

### トラブルシューティング（３）

Oracle　VM　VirtualBox マネージャーを開き、[ファイル]-[仮想メディアマネージャー]をクリック。使用するハードディスクをダブルクリックし、[属性]-[サイズ]の項で、32GBに変更した。

VirtualBoxのOSを起動したところ、以下のエラーがコマンドラインに表示されたので、トラブルシューティング。

>FATAL: Could not read from the boot medium! System haulted.

## トラブルシューティング（４）

https://microsoftcream87.hateblo.jp/entry/2017/05/07/094242

上記のサイトにたどり着き、「ISOファイルが必要」という旨の記述を見て、ストレージの設定を見てみると、ISOファイルが空になっているので、空のDVDイメージを除去して再び登録した。

仮想マシンを起動したところ、インストールの設定画面に進み、トラブル解決した。

## CentOSのインストール

###言語設定

```
# cd ..
# cd /usr/local/src
# wget https://ftp.tsukuba.wide.ad.jp/software/apache/httpd/httpd-2.4.46.tar.gz
ftp.tsukuba.wide.ad.jp(ftp.tsukuba.wide.ad.jp)をDNSに問いあわせています…失敗しました：　名前またはサービスが不明です。
wget: ホストアドレス `ftp.tsukuba.wide.ad.jp' を解決できませんでした。
```
仮想サーバーで使用可能なデバイスを表示するCentOSのNetwork Managerのコマンド。
```
nmcli dev
```
TYPEが"ethernet"のDEVICE名「enp0s3」を覚える。

ホストPCに戻る。Windowsキーと[r]を同時に押して、「cmd」を入力し、[Enter]を押し、コマンドプロンプトを起動する。
「ipconfig」を入力して[Enter]を押す。
「イーサネットアダプタ：VirtualBox Host Only Network」の「IPv4アドレス」のIPアドレスを覚える。
コマンドプロンプトは後で使うので閉じずに、仮想マシンの端末に戻る。

```
nmcli connection modify [DEVICE名] ipv4.addresses "[IPアドレスのホストアドレス].[新しいネットワークアドレス]/24"
```

手動でIPアドレスを設定するためのコマンド
```
nmcli connection modify [DEVICE名] ipv4.method manual
```


デバイスに接続する
```
nmcli connection modify [DEVICE名] connection.autoconnect yes
```

再び、デバイスのステータスを確認する。
```
nmcli dev
```
「enp0s3」の状態[STATE]が「接続済み」となっている（はず）。

IPアドレスの確認

```
ip a
```
→inetの項のIPアドレスが上で設定したものと一致するか確認する。

コマンドプロンプトに戻って、ネットワークが通ったか確認する。

```
ping [IPアドレス]
```

コマンドプロンプトを終了。

https://www.youtube.com/watch?v=x2o6E5oW-wk

実際にやってみた。
```
nmcli dev
```
[STATE]がすでに「接続済み」となっていた。

```
ip a
```
enp0s3のinetが「8.8.8.8/32」であった。→？

```
sudo systemctl restart NetworkManager.service
```
```
ip a
```
まだ、enp0s3のinetが「8.8.8.8/32」であった。

一度仮想マシンを再起動した。
```
ip a
```
IPアドレスが設定した値になった。

VirtualBoxマネージャーの「ファイル」＞「ホストネットワークマネージャー」をクリックして、ホストネットワークマネージャーを開いた。
ネットワーク「VirtualBox Host-Only Ethernet Adapter」を選択し、「プロパティ」をクリックした。「DHCPサーバー」のタブをクリックした。アドレス下限が「~.101」であることを確認した。→設定したIPアドレスが下限の範囲を超えていることが原因なのでは？

上記と同様にして、DHCPサーバーのアドレス範囲を超えないIPアドレスを再設定した。
仮想マシンを再起動した。
```
ip a
```
IPアドレスが設定した値になった。

ホストマシンの「コマンドプロンプト」で
```
ping [IPアドレス]
```
を実行したが、
```
宛先ホストに到達できません
```

ホストマシンも再起動すべき？

→いまここ