VirtualBox + Ubuntu + Apache + Laravel

# やりたいこと
VirtualBoxにUbuntuを入れてApacheをインストール→Laravelのプロジェクトを作成してホストPCからアクセスまでの流れをメモ

# 環境
Windows 10 Home バージョン22H2
VirtualBox バージョン 6.1.40 r154048 (Qt5.6.2)
Ubuntu 20.04.1
Apache 2.4.41
Laravel 8.83.26

# VirtualBoxにUbuntuサーバを作成

参考：Oracle VM VirtualBoxにUbuntu Server 20.04LTSをインストール  |  LIFEWORK Blog

https://lifework-blog.com/install-ubuntu-server-on-virtualbox/

Windows向けVirtualBoxをダウンロード、インストールします。

https://www.virtualbox.org/wiki/Downloads

Ubuntuのイメージファイルをサイトからダウンロードします。

https://ubuntu.com/download/server

Ubuntuの仮想環境を作成します。

# LAMP環境の作成
VirtualBoxのUbuntuにLAMP環境を作って、WebディレクトリをホストOSと共有する方法 &#8211; CodeAid-Lab（コードエイド・ラボ）：

https://codeaid.jp/blog/vbox-lamp/

Apache, PHP, MySQL, phpMyAdminをインストールします。
```console:Apache
user@ubuntu:~$ sudo apt install apache2
user@ubuntu:~$ apachectl -V
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2022-06-14T13:30:55
user@ubuntu:~$
```
```console:PHP
user@ubuntu:~$ sudo apt install php
user@ubuntu:~$ php -v
PHP 7.4.3 (cli) (built: Nov  2 2022 09:53:44) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
user@ubuntu:~$
```
```console:MySQL
user@ubuntu:~$ sudo apt install mysql-server
user@ubuntu:~$ sudo service mysql start
user@ubuntu:~$ sudo mysql
```
```console:phpMyAdmin
user@ubuntu:~$ sudo apt install phpmyadmin
```

Laravelのプロジェクトを作成します。
参考：
【入門】Ubuntu 20.04にLaravel8をインストールする方法 - お空きれい：https://osorakirei.com/how-to-install-laravel8/
Composerをインストールします。
```console:
user@ubuntu:~$ sudo apt install curl php-cli php-mbstring git unzip
user@ubuntu:~$ php -r "copy ( 'https://getcomposer.org/installer', 'composer-setup.php' ) ;";
user@ubuntu:~$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer;
```

Apacheのドキュメントルートディレクトリに作業用ディレクトリを作成します。
```console
user@ubuntu:~$ sudo mkdir /var/www/html/works/
user@ubuntu:~$ cd /var/www/html/works
user@ubuntu:/var/www/html/works$
```
`/var/www/html/works`内にexampleという名前のプロジェクトを作成します。
```console
user@ubuntu:/var/www/html/works$ composer create-project laravel/laravel example
```

# ネットワークの設定
参考：
UbuntuのApache設定ファイル｜アイシーティーリンク株式会社 公式ブログ｜note：

https://note.com/ictlink/n/nc494c4242bcb

`/etc/Apache2/sites-available/`内に`example.conf`ファイルを作成します。
```console
user@ubuntu:~$ sudo nano /etc/Apache2/sites-available/example.conf
```
```apache:example.conf
<VirtualHost *:80>
    ServerName example.com:80
    DocumentRoot /var/www/html/works/example/public/
    <Directory "/var/www/html/works/example/public/">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>
```
Windowsのhostsファイルを編集
コントロール パネル>ネットワークとインターネット>ネットワーク接続
VirtualBoxと名前が接続設定のプロパティを見ます。
「この接続は次の項目を使用します」の中から「インターネットプロトコルバージョン4(TCP/IPv4)」を選択して、プロパティを表示します。
「次のIPアドレスを使う」に入っているIPアドレスをメモします。
"C:\Windows\System32\drivers\etc\hosts"という名前のファイルを管理者権限で編集します。
先ほどメモしたIPアドレスと、example.confに入れたServerNameを追記し、保存します。

Apacheを起動して、ホスト側のブラウザからアクセスできれば完了です。

# 参考
Oracle VM VirtualBoxにUbuntu Server 20.04LTSをインストール  |  LIFEWORK Blog
https://lifework-blog.com/install-ubuntu-server-on-virtualbox/
VirtualBoxのUbuntuにLAMP環境を作って、WebディレクトリをホストOSと共有する方法 &#8211; CodeAid-Lab（コードエイド・ラボ）
https://codeaid.jp/blog/vbox-lamp/
【入門】Ubuntu 20.04にLaravel8をインストールする方法 - お空きれい
https://osorakirei.com/how-to-install-laravel8/
UbuntuのApacheの設定関係：
Ubuntu+Apache2の設定ファイルの場所とか構成とかメモ
https://penpen-dev.com/blog/ubuntuapache2/
UbuntuのApache設定ファイル｜アイシーティーリンク株式会社 公式ブログ｜note
https://note.com/ictlink/n/nc494c4242bcb
VirtualBox内にLaravelをインストールしてホストブラウザで表示 - Qiita
https://qiita.com/ka8210/items/1dcf4e69047a21f44ad2