目录

1 问题描述

wordpress80端口冲突被nginx占用了

2 解决步骤

1 将docker-wordpress容器的80端口映射到主机的82端口

2 nginx配置域名转发至82端口

3 修改docker-wordpress的wp-config.php配置(解决wordpress样式丢失问题)

3 硬广告

微预约小管家,您贴心的预约管家


1 问题描述

按照网上大部分的wordpress搭建教程,默认使用80端口作为wordpress访问。但是发现80端口冲突被nginx占用了,导致wordpress无法用默认80端口访问。

wordpress80端口冲突被nginx占用了

以下方案将使用nginx反向代理转发至wordpress站点,解决80端口冲突问题。

 

2 解决步骤

1 将docker-wordpress容器的80端口映射到主机的82端口

docker run --name blog -p 82:80 -e WORDPRESS_DB_HOST={数据库ip}:3306 -e WORDPRESS_DB_USER={数据库用户名} -e WORDPRESS_DB_PASSWORD={数据库密码} -e WORDPRESS_DB_NAME={数据库DB名称} -d wordpress

-p 82:80 将容器的80端口映射主机的82端口

2 nginx配置域名转发至82端口

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
#pid /var/log/nginx/nginx.pid;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 10240;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    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;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;


    upstream blog {
        server xxx.xx.xx.xxx:82 weight=1 max_fails=2 fail_timeout=20;
    }

    server {
        listen       80;
        server_name www.you_doamin.com *.you_doamin.cn;
        # Redirect all non-https requests
        # rewrite ^ https://$host$request_uri?/demo1 permanent;
        location / {
            root /data/www;
            proxy_pass http://blog;
        }
        error_page 404 /404.html;
        location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

}

server_name是域名配置

upstream路由配置wordpress站点地址,xxx.xx.xx.xxx:82即本机ip的82端口

重启nginx

service nginx restart

3 修改docker-wordpress的wp-config.php配置(解决wordpress样式丢失问题)

define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST'].'/blog');
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST'].'/blog');

在wp-config.ph配置文件里添加WP_HOME、WP_SITEURL

修改wp-config.php是为了解决wordpress样式丢失问题。nginx重启后,可以访问wordpress站点,但是样式丢失了。

见上图wordpress的css文件请求url错误,css的域名是blog,而非你的实际域名。

所以需要修改wp-config.php,wordpress将blog占位符替换你的实际域名。

docker restart blog

重启docker既可访问wordpress

 

3 硬广告

个人闲暇时间做了一款微信预约小程序,如果您有场地预约、实验室预约、课程预约、办事预约需求,可以尝试使用下这一款预约小程序。

微预约小管家,您贴心的预约管家

https://blog.csdn.net/czx0132/article/details/109134306

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐