我正在学习docker,我需要为nginx和php创建一个容器。显然是正确的,但是我无法访问文件。我不知道我做错了什么,或者我有错误的site.conf文件。
我的docker-compose.yml文件是:
version: "3.7"
services:
http:
hostname: nginx_container
domainname: mysite.local
build: ./infrastructure/docker/nginx
ports:
- "8085:80"
volumes:
- ./src/www:/usr/share/nginx/html
- ./src/site.conf://etc/nginx/conf.d/default.conf
restart: always
networks:
- code-network
php:
build: ./infrastructure/docker/php
volumes:
- ./src/www:/usr/share/nginx/html
restart: always
networks:
- code-network
networks:
code-network:
driver: bridge
nginx Dockerfile是:
FROM nginx:stable
MAINTAINER foo
php Dockerfile是:
FROM php:7.3-fpm
MAINTAINER foo
site.conf文件为:
server {
listen 80;
index index.php index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /usr/share/nginx/html;
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;
}
}
在src / www路径中,我有一个index.html,index.php和一个php-status.php文件,它们的内容相同:
<?php
phpinfo();
但是,如果我尝试访问http://localhost:8085或http://localhost:8085/index.php,则会收到ERR_EMPTY_RESPONSE
如果我尝试使用http://mysite.local或http://mysite.local:8085或http://mysite.local/index.php,则会得到ERR_NAME_NOT_RESOLVED
我还没有修改hosts文件,但是目标是通过mysite.local到达索引,但是如果我无法通过localhost到达它,即使添加,我也无法通过mysite.local到达它。到主机文件中。
我已经整天试图解决它,但是我错过了一些东西,无法访问php-info()。有人可以帮我吗?
使用的版本: