前提・実現したいこと
Docker for Windowsでnginx + mariadb + laravelの環境を作ろうとしています。
設定はほぼ終了し、Laravelの初期画面も表示できました。
発生している問題・エラーメッセージ
ところが、画像やcss、htmlなど、php以外のファイルにアクセスすることができません。
phpからの参照もできませんし、URLの直接指定もできません。
Laravelのpublicフォルダ内に"test.html"というファイルを作り、URLで直接指定をすると、
Laravelの404画面が表示されます。
また、nginxのdefault.confで参照ディレクトリを変更し、
Laravelのインストールディレクトリ外でhtml、css、jpgなどのファイルをURL指定すると
File not found.
とだけ表示されます。
いずれの場合も、phpファイルは正しく表示・実行されます。
jpgやcssなど、正しく読み込むようにするにはどうすればいいのでしょうか。
該当のソースコード
nginxのdefault.confは以下のようになっています。
server {
listen 80;
root /var/www/html/myapp/public; index index.php index.html index.htm; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; }
}
試したこと
default.confの
location ~ .php$ {
以下の部分を削除し、同様にjpgやhtmlにアクセスできないか試したところ、
nginxの500 Internal Server Errorが表示されました。
補足情報(FW/ツールのバージョンなど)
docker-composeファイルは以下のような感じです
version: '3'
services:
web:
image: nginx:1.15.6
ports:
- '80:80'
depends_on:
- app
volumes:
- ./web/default.conf:/etc/nginx/conf.d/default.conf
app:
image: php:7.4-fpm
depends_on:
- db
build: ./app
volumes:
- ./app/php.ini:/usr/local/etc/php/php.ini
- ./myapp:/var/www/html/myapp
db:
image: mariadb:10.4.13
environment:
MYSQL_DATABASE: sample
MYSQL_USER: user
MYSQL_PASSWORD: passuser
MYSQL_ROOT_PASSWORD: passroot
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/24 15:45