###開発環境
Docker環境
- PHP 7.4-fpm
- Composer 2
- NginX 1.15.6
- MySQL 8.0.19
###以下を参照
DockerでLaravel環境を構築する①〜③
https://qiita.com/wjtnk/items/9d6a56a05bff2068cd2c
https://qiita.com/wjtnk/items/fa2b9d848bc64261d0e9
https://qiita.com/wjtnk/items/9e553f90f38e279a8b99
##NginXの設定ファイルについて詳しい説明がなかった為、解説してみる
server {
listen 80; #IPとポートを指定する
root /var/www/html/laravel-app(プロジェクト名)/public; #ドキュメントルートを指定する
index index.php index.html; #index.phpがあればindex.php,なければindex.htmlを表示、なければエラーを返す
access_log /var/log/nginx/access.log; #アクセスログの出力先のファイル名
error_log /var/log/nginx/error.log; #エラーログの出力先のファイル名 デフォルトはerror以上のログのみ
location / { #URIパス毎に設定ができる
try_files $uri $uri/index.php;
#まずは指定したURIのファイルにアクセス->なければURIのディレクトリ内のindex.phpを探す->なければエラーを返す
}
location ~ \.php$ { #PHPファイルのみの設定
fastcgi_split_path_info ^(.+\.php)(/.+)$; #fastcgi_paramでキャプチャする正規表現を定義
fastcgi_pass app:9000; # FastCGI サーバへリクエストをプロキシする
fastcgi_index index.php; # $fastcgi_script_name の値になる
include fastcgi_params; #設定ファイルを読み込む
# FastCGI サーバに渡されるべきパラメータを設定
fastcgi_param SCRIPT_FILENAME $document_root/index.php; ##!!変更点!!
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
追記
20行目は記事通りだと上手くいかなかった。
Laravelのroutingした通りに動かず、'File not Found'と表示される。
以下の記事の通り変更し、今度はうまく表示された。
記事に従ってDockerを立ち上げてみる。
うまくいったようだ。
##Laravelのインストール
$ docker-compose exec app composer create-project laravel/laravel --prefer-dist myblog
脱線するけど、--prefer-distって何?
composerのオプションらしい。
zipファイルだから高速でダウンロードできる。
インストールできたら、プロジェクト名のディレクトリが出来ているはずなので、そのディレクトリに移動する(今回はmyblogディレクトリ)。
以下のようにしてちゃんとインストールされているか確認。
$ php artisan --version
結果、
Laravel Framework 8.32.1
と出たので正常にインストールできた。