gpt4 book ai didi

php - Docker 上的 Nginx 仅提供欢迎页面

转载 作者:行者123 更新时间:2023-12-02 18:33:52 25 4
gpt4 key购买 nike

我正在使用 macOS。我正在处理通过 Dockerfile 创建的 Debian 镜像。 Nginx, php-fpm 安装在 Debian 镜像中。然后我复制了server文件到 /etc/nginx/sites-available/server并在 /etc/nginx/sites-enabled/ 中创建了它的符号链接(symbolic link)文件.它还复制了srcs/info.php文件到 /var/www/server/info.php .
启动nginx服务后,可以访问我的私网IP地址192.168.0.46并查看 NGINX 的欢迎页面。但是,当访问 192.168.0.46/info.php , 页面打开失败。插入其他 html 文件时也是如此。
我在google上查了一下,发现是/etc/nginx/nginx.conf的INCLUDE问题,但没有问题。
我怀疑的第一个问题是防火墙,但如果是问题,我应该无法看到 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 可用:
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;
}
}
信息.php:
<?php
phpinfo();
?>
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_image .
$ docker run -it -P --rm --name server_container server_image

最佳答案

server_name server指令意味着只请求 http://server将送达。
您应该添加 192.168.0.46 server给您的 hosts file .
我还建议将 server_name 更改为 myserver.local 之类的其他名称(并将其添加到 hosts 文件中)

关于php - Docker 上的 Nginx 仅提供欢迎页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63998192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com