web-dev-qa-db-ja.com

404nginxとphpで見つかりません

私はブラウザの中に入った:

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

私は何を取りこぼしたか?

前もって感謝します。

1
user977828

私は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_と言います。

あなたは実際に何を達成しようとしていますか?

1
mlist