Docker + nginx + PHP – nginx是不是指向根目录?

我按照这个指南在Docker上运行PHP,但是Nginx没有指向我在site.conf中设置的根目录。

泊坞窗,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; } }

代码/ index.PHP文件

Docker – index.html Nginx文件的无效共享

如何在linux主机上的docker容器中安装一个目录

Docker暴露端口疯狂

泊坞窗 – 与鬼和一个Nginx代理组成错误

Nginxconfiguration文件中访问容器名称

<?PHP echo PHPinfo();

在我的terminal上,我运行:

docker-compose up

结果:

但应该是:

任何想法为什么?

编辑:

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组合应用程序的最好方法是在Nginx后面运行?

错误 – Docker-compose / docker Windows

sudo:docker-compose:command not found

Docker-Compose无法连接到Docker Daemon

DOCKER for Windows – 打开cmd执行docker机器env

你有域名冲突。 设置server_name docker.loc; 在site.conf中。 然后将127.0.0.1 docker.loc添加到本地计算机上的/ etc / hosts中。 然后,您可以通过docker.loc:8080访问dockerised应用程序

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

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...