LoginSignup
0
2

More than 3 years have passed since last update.

はじめてのLaravel環境構築(Docker)

Last updated at Posted at 2021-03-16

開発環境

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の設定ファイルについて詳しい説明がなかった為、解説してみる

default.conf
  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
と出たので正常にインストールできた。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2