Ubuntu20.04＋PHP8＋Laravelv9 環境構築

## 概要
Ubuntu20.04＋Laravelv9の環境構築に関する情報を整理するために手順をまとめてみました。
2022年10月時点での各種アプリケーションのバージョンは以下のとおり。
- Ubuntu 20.04.3 LTS
- PHP 8.1.11
- Laravel Framework 9.36.4

### 1. Ubuntuのインストール
今回は↓のISOからインストールしました。
　ubuntu-20.04.3-live-server-amd64.iso

### 2. Apacheのインストール
`
~$ sudo apt update
`
`
~$ sudo apt install -y apache2
`
　インストール後はApacheを起動します。
```
~$ sudo systemctl start apache2
```
　状態確認を行います。
```
~$ sudo systemctl status apache2
```
　ブラウザからサーバアドレス（port指定なし）をたたいて"Apache2 Ubuntu Default Page"が表示されれば動いています。
　例）http://192.168.1.123/

### 3. PHP8のリポジトリを登録する
```
~$ sudo add-apt-repository ppa:ondrej/php
```
　Webサーバの種類を聞かれるので、今回はapache2なので2を入力してENTERを押す。
```	CAVEATS:
	1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
	2. If you are using apache2, you are advised to add ppa:ondrej/apache2
	3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline
```

### 4. PHP8のインストール
```
~$ sudo apt install -y php8.0 php8.0-intl php8.0-mysql php8.0-sqlite3 php8.0-gd php8.0-dom
```

　Apacheを再起動する
```
~$ sudo systemctl restart apache2
```
　phpinfo表示用のindex.phpを作成する
```
~$ sudo vi /var/www/html/index.php
```

　index.phpの記述内容は以下。
```php:php
<?php
    phpinfo();
?>
```

　ブラウザからアクセスして"PHP Version～"が表示されればPHPが正常にインストールされています。
　例）http://192.168.1.123/index.php


### 5. Composerをインストール

Composerをインストールするために必要なコンポーネントをインストール
```
~$ sudo apt install curl php-cli php-mbstring git unzip

	The following NEW packages will be installed:
	  libonig5 php-cli php-mbstring php8.1-cli php8.1-common php8.1-mbstring php8.1-opcache php8.1-readline unzip
	0 upgraded, 9 newly installed, 0 to remove and 72 not upgraded.
	Need to get 3,397 kB of archives.
	After this operation, 17.7 MB of additional disk space will be used.
	Do you want to continue? [Y/n]
```
　Yを指定して進めると、PHPが8.1になります。


Composerのインストーラーをダウンロード
```
~$ sudo php -r "copy ( 'https://getcomposer.org/installer', 'composer-setup.php' ) ;";
```

Composerをインストール
```
~$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer;

　ll settings correct for using Composer
　Downloading...
　Composer (version 2.4.3) successfully installed to: /usr/local/bin/composer
　Use it: php /usr/local/bin/composer

```

### 6. Laravelのインストール

プロジェクトを作成する。
example-appがプロジェクト名で任意
```
~$ composer create-project laravel/laravel example-app
```
　エラーが出る
```
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires laravel/pint ^1.0 -> satisfiable by laravel/pint[v1.0.0, ..., v1.2.0].
    - laravel/pint[v1.0.0, ..., v1.2.0] require ext-xml * -> it is missing from your system. Install or enable PHP's xml extension.
  Problem 2
    - phpunit/phpunit[9.5.10, ..., 9.5.x-dev] require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
    - Root composer.json requires phpunit/phpunit ^9.5.10 -> satisfiable by phpunit/phpunit[9.5.10, ..., 9.5.x-dev].
    
```

php8.1-xmlが足りないらしいので
```
~$ sudo apt-get install php8.1-xml
```

curlが足りないらしいので
```
~$ sudo apt-get install php8.1-curl
```

ディレクトリが中途半端にできているので削除する
```
~$ rm -R /home/user名/example-app
```

気を取り直してもう一度
```
~$ composer create-project laravel/laravel example-app
```

今度はエラーなし。

　サーバを立ち上げてアクセスする
```
cd /home/ユーザ名/example-app
~/example-app$ php artisan serve --host 192.168.1.123
```
　リンクが表示されているのでクリックしてブラウザ表示するとLaravelのページが表示される
　http://192.168.1.123:8000

コマンドラインでのLaravelバージョン確認
```
　php artisan -V
```