どうも、若松です。

ひょんなことからLaravelを触ることになったので、AmazonLinux2で一から動かしてみます。

コマンド一覧

# PHPインストール
amazon-linux-extras -y install php7.3
yum install -y php-pecl-zip php-mbstring php-dom

# Composerインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

# 環境変数設定
export COMPOSER_ALLOW_SUPERUSER=1
export COMPOSER_HOME="/composer"
export PATH="$PATH:/composer/vendor/bin"

# Laravelインストール
composer global require "laravel/installer"

# Laravelプロジェクト作成
laravel new

# Laravelサーバー起動
php artisan serve --host 0.0.0.0

コマンド詳細

PHPインストール

amazon-linux-extras -y install php7.3
yum install -y php-pecl-zip php-mbstring php-dom

PHP7.3はextrasリポジトリに格納されています。
AmazonLinux2では通常のyumリポジトリの他にextrasリポジトリを利用することができます。
extrasリポジトリは専用の amazon-linux-extrasコマンドで利用できます。

Composerインストール

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

Composerのインストールは公式のコマンドをそのまま使用します。
https://getcomposer.org/download/

環境変数設定

export COMPOSER_ALLOW_SUPERUSER=1
export COMPOSER_HOME="/composer"
export PATH="$PATH:/composer/vendor/bin"

意味は以下のとおり

変数名 意味
COMPOSER_ALLOW_SUPERUSER 1 rootでのインストールを許可
COMPOSER_HOME /composer Composerのインストール先
PATH $PATH:/composer/vendor/bin vender配下のbinにPATHを通す

Laravelインストール

composer global require "laravel/installer"

ComposerでLaravelをインストールします。
vender配下にlaravelコマンドが配置されます。

Laravelプロジェクト作成

laravel new

Laravelのプロジェクトを作成します。
プロジェクトを作成すると以下のようなファイル群が配置されます。

# ll
total 396
drwxr-xr-x  6 root root     84 Jul  6 05:12 app
-rw-r--r--  1 root root   1686 Jul  6 05:17 artisan
drwxr-xr-x  3 root root     34 Jul  6 05:12 bootstrap
-rw-r--r--  1 root root   1550 Jul  6 05:17 composer.json
-rw-r--r--  1 root root 167312 Jul  6 05:17 composer.lock
drwxr-xr-x  2 root root    247 Jul  6 05:12 config
drwxr-xr-x  5 root root     72 Jul  6 05:12 database
-rw-r--r--  1 root root   1125 Jul  6 05:17 package.json
-rw-r--r--  1 root root   1156 Jul  6 05:17 phpunit.xml
drwxr-xr-x  4 root root     98 Jul  6 05:12 public
drwxr-xr-x  6 root root     53 Jul  6 05:12 resources
drwxr-xr-x  2 root root     75 Jul  6 05:12 routes
-rw-r--r--  1 root root    563 Jul  6 05:17 server.php
drwxr-xr-x  5 root root     46 Jul  6 05:12 storage
drwxr-xr-x  4 root root     83 Jul  6 05:12 tests
drwxr-xr-x 40 root root   4096 Jul  6 05:18 vendor
-rw-r--r--  1 root root    538 Jul  6 05:17 webpack.mix.js
-rw-r--r--  1 root root 207745 Jul  6 05:17 yarn.lock

Laravelサーバー起動

php artisan serve --host 0.0.0.0

artisanサブコマンドを用いてサーバーを起動します。
hostオプションでListenアドレスを指定しない場合は localhostでListenされます。

ブラウザでサンプルを表示

http://[IPアドレス]:8000にアクセスすることで以下のサンプルを表示します。

まとめ

AmazonLinux2でLaravelのサンプルを表示するまでをまとめました。
次はDockerで同様のサンプル表示までまとめていきたいと思います。

元記事はこちら

AmazonLinux2でLaravelを起動する