Php Nginx on Docker只提供欢迎页面

Php Nginx on Docker只提供欢迎页面,php,docker,nginx,Php,Docker,Nginx,我在用macOS。我正在处理通过Dockerfile创建的Debian映像。Nginx、php fpm安装在Debian映像中。然后我将server文件复制到/etc/nginx/sites available/server并在/etc/nginx/sites enabled/中创建了它的符号链接文件。它还将srcs/info.php文件复制到/var/www/server/info.php。 启动nginx服务后,我可以访问我的私有IP地址192.168.0.46,并查看nginx的欢迎页面。

我在用macOS。我正在处理通过Dockerfile创建的Debian映像。Nginx、php fpm安装在Debian映像中。然后我将
server
文件复制到
/etc/nginx/sites available/server
并在
/etc/nginx/sites enabled/
中创建了它的符号链接文件。它还将
srcs/info.php
文件复制到
/var/www/server/info.php
。 启动nginx服务后,我可以访问我的私有IP地址
192.168.0.46
,并查看nginx的欢迎页面。但是,当访问
192.168.0.46/info.php
时,页面打开失败。插入其他html文件时也是如此

我在谷歌上查了一下,发现这是
/etc/nginx/nginx.conf
的一个包含问题,但没有问题

我怀疑的第一个问题是防火墙,但如果它是问题所在,我难道不能看到Nginx的欢迎页面吗? 我整天都在思考和寻找,但我找不到答案。请帮帮我

这是我的档案:

Dockerfile:

FROM debian:buster

ARG DEBIAN_FRONTEND=noninteractive
ENV USER=root

COPY srcs/server.sites-available /etc/nginx/sites-available/server
COPY srcs/info.php /var/www/server/info.php
COPY srcs/login_form.html /var/www/server/login_form.html

# Installed mariadb-server instead of mysql-server

RUN apt-get update && apt-get upgrade -y && \
    apt-get install -y --no-install-recommends --no-install-suggests \
        nginx \
        openssl \
        mariadb-server \
        php-fpm \
        php-mysql && \
    ln -s /etc/nginx/sites-available/server /etc/nginx/sites-enabled/

CMD service mysql start; \
    service nginx start; \
    bash;

# EXPOSE 80 for HTTP and 443 for HTTPS
EXPOSE 80 443
server.sites-available:

server {
    listen 80;
    listen [::]:80;

    root /var/www/server;
    index index.php index.html index.htm;

    server_name server;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}
info.php:


nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
以下是我的命令:

$docker build-t server\u映像。
$docker run-it-P--rm--name server\u container server\u image

指令
server\u name server
表示仅请求
http://server
将提供服务

您应该将
192.168.0.46服务器
添加到您的应用程序中


我还建议将服务器名称更改为类似myserver.local的其他名称(并将其添加到
hosts
文件中)

使用
docker run-it-p80:80--rm--name server\u container server\u image来修复它。

但是我不知道为什么…

根据你的建议,我把
server\u name server
改为
server\u name myserver.local
。我还向
/private/etc/hosts
添加了
192.168.0.46 myserver.local
。但是,仍然
http://myserver.local
失败。。。它甚至不再显示欢迎页面。我将再次检查防火墙设置和端口转发。