私はブラウザの中に入った:
404 Not Found
nginx/1.13.10
そして私が得たログで:
$ ls logs/
nginx-access.log nginx-error.log
$ cat logs/*
172.17.0.1 - - [27/Mar/2018:02:11:35 +0000] "GET / HTTP/1.1" 404 572 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" "-"
2018/03/27 02:11:35 [error] 5#5: *1 "/var/wwww/html/index.php" is not found (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET / HTTP/1.1", Host: "localhost"
僕の nginx/nginx.conf
は次のようになります:
server {
listen 80;
# this path MUST be exactly as docker-compose.fpm.volumes,
# even if it doesn't exists in this dock.
root /var/wwww/html;
index index.php index.html index.html;
server_name localhost;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass phpfpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
僕の docker-compose.yml
は次のようになります:
nginx:
image: nginx
restart: always
ports:
- "80:80"
links:
- phpfpm
- db
volumes:
- ./logs/nginx-error.log:/var/log/nginx/error.log
- ./logs/nginx-access.log:/var/log/nginx/access.log
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- ./public/:/var/www/html
phpfpm:
build: ./mGSV
restart: always
ports:
- "9000:9000"
links:
- db
volumes:
- ./public/:/var/www/html
db:
image: mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_DATABASE=mgsv
- MYSQL_USER=mgsv_user
- MYSQL_PASSWORD=mgsvpass
ports:
- "3306:3306"
volumes:
- ./mysql/:/docker-entrypoint-initdb.d
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
links:
- db
ports:
- 8183:80
environment:
PMA_USER: root
PMA_PASSWORD: admin
PMA_ARBITRARY: 1
僕の ./mGSV/Dockerfile
は以下に基づいています:
FROM php:5-fpm
私は何を取りこぼしたか?
前もって感謝します。
私はdockerに精通していませんが、ここに2つの矛盾があります。
Dockerの部分とは関係なく、nginx(_nginx/nginx.conf
_)は/ var/wwww/htmlからコンテンツを提供しようとします。これはおそらくタイプミスです(_/var/www/html
_を意味しましたか?)。したがって、正確なエラーメッセージ"/var/wwww/html/index.php" is not found (2: No such file or directory)
-このnginx構成が機能するには、このフォルダーにコンテンツが含まれている必要があります。
また、nginxのコメントには_# this path MUST be exactly as docker-compose.fpm.volumes
_と書かれていますが、phpfpmボリュームはdocker-compose.ymlに含まれていますは_./public/:/var/www/html
_と言います。
あなたは実際に何を達成しようとしていますか?