本文主要介绍wordpress建站过程中的踩坑经历,并汇总解决方法。
数据库连接失败
我的建站方案是:预先安装了Mysql,并创建了为网站创建了数据库,然后通过docker镜像的方式搭建wordpress,但是始终无法访问到数据库。 无法访问的原因,docker镜像无法通过localhost访问到物理机的数据库。
- docker数据库配置中http://localhost:3306 替换为http://ip:3306。
- 修改数据库配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf,以允许远程访问
bind-address = 0.0.0.0 mysqlx-bind-address = 0.0.0.0
接下来重启数据库
sudo systemctl restart mysql
域名访问
-
创建并修改文件/etc/nginx/sites-available/web_config
server { server_name domain.com; location / { proxy_pass http://8.219.175.219:8082; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = domain.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; server_name domain.com; return 404; }
注意其中ssl相关部分,我是采用certbot工具来生成的,如果不需要https访问,可以删除。如果需要,请自行参考certbot的安装和使用。
- 保存退出后执行下面代码:
sudo ln /etc/nginx/sites-available/web_config /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
- 注意查看各个步骤是否报错,后续如果需要修改/etc/nginx/sites-available/web_config,需要在修改后执行最后两步。
sudo nginx -t sudo systemctl reload nginx
至此,如果DNS解析设置正确,就可以通过域名访问咱们的网站了。
重定向次数过多
解决wordpress重定向次数过多too many redirects的问题
- 修改wp-config.php,添加如下代码
$_SERVER['HTTPS'] = 'on'; define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
我还遇到了在常规设置中,更新站点URL和wordpress URL后无法访问的问题,以及下载主题后,首页CCS不生效的问题。貌似也是加上这两句代码之后就没有了。