Docker&x2B;nginx+;PHP-nginx不指向根目录?

Docker&x2B;nginx+;PHP-nginx不指向根目录?,php,nginx,docker,docker-compose,Php,Nginx,Docker,Docker Compose,我遵循这一点在Docker上运行PHP,但nginx并不指向我在site.conf中设置的根目录 docker-compose.yml: nginx: image: nginx:latest ports: - 8080:80 volumes: - ./code:/code - ./site.conf:/etc/nginx/conf.d/site.conf links: - php php: i

我遵循这一点在Docker上运行PHP,但nginx并不指向我在site.conf中设置的根目录

docker-compose.yml:

nginx:
    image: nginx:latest
    ports:
        - 8080:80
    volumes:
        - ./code:/code
        - ./site.conf:/etc/nginx/conf.d/site.conf
    links:
        - php
php:
    image: php:7-fpm
    volumes:
        - ./code:/code
site.conf:

server {
    index index.php index.html;
    server_name localhost;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /code;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}
code/index.php:

<?php
echo phpinfo();
结果:

但它应该是:

你知道为什么吗

编辑:

server {
    index index.php index.html;
    server_name docker.loc;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /code;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php: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 up
时,出现此错误:

nginx_1 | 172.17.0.1 - - [01/Jan/2017:20:35:17 +0000] "GET / HTTP/1.1" 403 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36"
nginx_1 | 2017/01/01 20:35:17 [error] 6#6: *5 directory index of "/code/" is forbidden, client: 172.17.0.1, server: docker.php, request: "GET / HTTP/1.1", host: "docker.php:8080"

docker.php
来自哪里???

您的域名冲突。设置
服务器名称docker.loc在site.conf中。然后将
127.0.0.1 docker.loc
添加到本地计算机上的/etc/hosts。然后您可以通过
docker.loc:8080


或者你可以尝试解决冲突。我想问题可能出在
/etc/nginx/sites available/default

谢谢。但是现在当我在docker上浏览站点时,我得到了一个页面,页面名为“403禁止”
。loc:8080应该可以工作,我测试了它。显示您的配置哪个配置文件?
site.conf
并检查
code
文件夹,可能它不存在
index.php
该文件夹确实存在。我已经更新了我的问题。看一看。谢谢
nginx_1 | 172.17.0.1 - - [01/Jan/2017:20:35:17 +0000] "GET / HTTP/1.1" 403 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36"
nginx_1 | 2017/01/01 20:35:17 [error] 6#6: *5 directory index of "/code/" is forbidden, client: 172.17.0.1, server: docker.php, request: "GET / HTTP/1.1", host: "docker.php:8080"