目录
1 将docker-wordpress容器的80端口映射到主机的82端口
3 修改docker-wordpress的wp-config.php配置(解决wordpress样式丢失问题)
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_formatmain'$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.logmain;sendfileon;tcp_nopushon;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_typeapplication/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 硬广告
个人闲暇时间做了一款微信预约小程序,如果您有场地预约、实验室预约、课程预约、办事预约需求,可以尝试使用下这一款预约小程序。