AWSでlaravel6を動かす
前回までのステップでphpの実行が確認できている所からスタートになります。
参考
https://qiita.com/zushi_0905/items/1be42dc704d65f8a4ff7
環境
- AWS
- AL2(Amazon Linux2)
- Nginx
- php
- laravel
Composerのインストール
PHPのライブラリ管理のためのcomposerをインストールします。
curl -sS https://getcomposer.org/installer | php
パスが通ってるディクトリにファイルを移動
sudo mv composer.phar /usr/local/bin/composer
※下記コマンドでパスの通ってる場所を確認できる。
echo $PATH
下記コマンドでcomposerコマンドが実行できるかの確認
composer
laravelのインストール
laravelプロジェクトのインストール前にインストールディレクトリに移動して下記を実行する。
・php-mbstring
・php-pdo
・php-xml
が必要らしいのでインストール。
yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd php-xml
laravel_siteと言う名のlaravel_siteプロジェクトを作る。
下記コマンドを実行すると、実行環境のプレゼントディレクトリ直下にlaravelのプロジェクトが作成されるのでディレクトリを作成して移動してから実行する。
下記のバージョンによってコードも変わるので実行したいソースがあるバージョンを使用する事。
特に理由が無い場合は最新バージョンを入れる。
laravelの5.5系の場合
composer create-project --prefer-dist laravel/laravel laravel_site "5.5.*"
laravelの6.5系の場合
composer create-project --prefer-dist laravel/laravel laravel_site "6.5.*"
laravelの初期設定
上記をインストールした内容をlaravelの実行環境に反映させる為下記のコマンドを実行する。
composer update
AWSの最小構成で実行した場合メモリ不足でエラーが出ますので、スワップメモリの割り当てを下記のコマンドで実行します。
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1
.envの為のセキュリティーキーを作成する。こちらのコマンドを実行しないと、エラー500になるので注意
php artisan key:generate
laravelの動作確認
参考のサイトを見習って下記のartisanコマンドを実行する。
php artisan route
下記のコマンドが無いよとartisanコマンドを実行して怒られたら成功
Command "route" is not defined.
Did you mean one of these?
route:cache
route:clear
route:list
次にnginxの設定ファイルを編集し、laravelの実行環境を通します
sudo vi /etc/nginx/nginx.conf
nginx.confファイルのrootの記述されている後を実行ファイルのパスに変更します。作成したフォルダ/publicになります。
root laravelの実行環境のパス/public
/etc/nginx/nginx.confを下記のように編集する。
location / {
try_files $uri $uri/ /index.php?$query_string;
}
try_filesは第1の引数、第2の引数、第3の引数の順にアクセスを試行します。
この設定をしないとrouteが上手く動かない為に注意です。
laravelプロジェクト配下のstorageフォルダの権限を変更
$ chmod -R 777 storage/
laarvelプロジェクト配下のbootstrap/cacheフォルダの権限を変更
chmod -R 777 bootstrap/cache
これで設定完了です。
公開されているIPにブラウザでアクセスして、下記画面が表示されれば成功です。