【发布时间】:2022-04-12 17:38:04
【问题描述】:
我目前正在尝试使用 nginx 使用 docker 设置本地开发机器。我最近从 Virtualbox 支持切换到 Hyper-v,从那以后我在 Nginx 中得到了 403 Forbbiden。
我正在按照本教程进行设置 http://tech.osteel.me/posts/2015/12/18/from-vagrant-to-docker-how-to-use-docker-for-local-web-development.html
我的 Nginx 配置如下
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
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_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
}
还有我的 docker-compose
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- ~/docker:/var/www/html
#also tried .:/var/www/html
#and ./docker:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
Docker 文件夹在我的 C:/User/docker 里面
这里有什么问题? 谢谢
【问题讨论】:
-
你的 NGINX 日志中有什么?应该有一个特定于进程的错误日志,以及一个写出请求/响应错误的访问日志。
/var/logs/nginx是日志文件的公共路径。 -
显然是按照 .conf 文件
access_log off; error_log /var/log/nginx/error.log error;配置的,但是当我 ssh 到 docker-machine 时,我看到 /var/log 没有 nginx 文件夹... -
你是 docker 用户登录的吗?
-
@R0MANARMY 我只是做一个
docker-machine ssh。我该如何验证? -
我的意思是在 Windows 上,但我不确定卷是否是这里的问题,所以现在可以跳过它。