先决条件

搭载Ubuntu Server LTS的服务器(你不会在考虑Windows吧?)

懂得变通的大脑

知道如何正确访问Github

请在你电脑的host文件中将即将作为博客网站运营的IP与你购买的域名绑定,方便进行调试,设置完成后需要设置DDNS才能外网访问(在国内服务器直接与域名绑定进行访问需要备案,家宽如果没有公网则需要内网穿透,但是可以通过更改host的方式来临时访问)

(可选)如果是家宽搭建,请在第四条的基础上且博客设置差不多以后将访问机的网速限速至50m(即6.25mb/s)来访问你的博客,用来模拟外网的访问环境(检验博客的优化效果)

安装

后续补全,暂时先给出以下内容,跟着运行肯定能跑,顺带附带了Docker的安装与DDNS设置

#安装Apache2和MySQL
sudo apt update
sudo apt install apache2 mysql-server


#设置mysql数据库
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';  #“123456”替换成自己想要的密码
FLUSH PRIVILEGES;
exit
mysql -u root -p
CREATE DATABASE wordpress;
create user 'user'@"localhost" IDENTIFIED BY '123456'; #“user”需替换成自己想要的用户名,“123456”替换成自己想要的密码
grant all on wordpress.* to "user"@"localhost" with grant option; #注意“user”
flush privileges;
exit;


#安装PHP
sudo apt install php libapache2-mod-php php-mysql
sudo apt install php-curl php-gd php-xml php-mbstring php-xmlrpc php-zip php-soap php-intl

#下载WordPress并解压赋权
curl -O https://cn.wordpress.org/latest-zh_CN.tar.gz
tar xzvf latest-zh_CN.tar.gz
sudo mv wordpress/* /var/www/html/
sudo chmod -R 777 /var/www/html/
sudo mv /var/www/html/index.html /var/www/html/index~.html

#重启Apache2
sudo service apache2 restart

#下载并安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

#拉取DDNS-GO,并开启自动启动和host网络模式
sudo docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go #可修改“/opt/ddns-go”为其他路径用于存储数据

#开放80和443端口
sudo ufw allow 80
sudo ufw allow 443

插件推荐

需要的插件都可以在WordPress内直接安装,推荐啥装啥就完了,可以优化网页浏览速度的

页面缓存,为访客自动生成缓存版网页,提升访问速度。

搜索引擎优化。

https://wporiental.com/wp-super-cache/

该教程为防止网页关闭或链接失效,已经转载到另一篇文章

[转载]WP Super Cache 如何正确地安装和设置 (2022)

一些奇奇怪怪的问题的解决方案

WordPress自身问题

电脑更换网络后无法访问网页和后台 或 在后台更改IP地址后无法访问

WordPress本身就这么设定的,会绑定安装WordPress时的访问IP或者访问域名,且只能通过这个方式访问,更改IP同理,这个问题可以通过在/var/www/html下的wp-config.php中添加以下参数解决

define('WP_HOME','http://domain.com');  #你的访问IP或域名
define('WP_SITEURL','http://domain.com');  #你的访问IP或域名

Gravatar头像不显示

首先确定你的WordPress内的邮箱和Gravatar内注册的帐户的邮箱是一致的,这很重要

确定一致以后其实就不用管了,在此之后的头像不显示是因为gravatar.com被墙了,访问不了,属于正常现象,挂个梯子就是

js、css或部分php不加载,访问https却返回http

如果访问网站主页显示好多内容无法加载,可通过F12查看Network是否存在大量内容回溯到http了,如果是可以尝试在/var/www/html中的wp-config.php中加入以下代码

$_SERVER['HTTPS'] = 'on';

反正我解决了(

修改固定链接后博客页面全部报404

如果你是Nginx搭建的,请查看该链接的解决方案

WordPress Sakura🌸主题使用手册 修改固定链接404

首先修改/etc/apache2目录下的apache2.conf文件,定位到下面的内容

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

修改第三个有/var/www/的内容,注意大小写,将

AllowOverride None

更改为

AllowOverride All

保存,并在终端输入以下命令

#启用 Mod_rewrite 模块,等效于网络上的LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
sudo a2enmod rewrite
#重启Apache2使设置生效
sudo service apache2 restart

至此问题解决,网上的其他教程比较繁琐,修改内容太多,同时Ubuntu下的Apache2并没有httpd.conf这个文件,也找不到地方能取消LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so的注释,使得该问题的解决过于繁琐

解决该问题不需要修改.htaccess的权限或修改任何数据,该文件由www-data账户创建,该账户拥有该文件的所有权限,所以不存在因为权限被禁止修改的问题

WordPress密码忘记了急急急!!!

我知道你很急,但你先别急

刚遇到这个问题,我们直接采用最简单的方案,在系统上找到正在使用的主题的根目录,在其中的functions.php中的

<?php

在它后面加入以下内容

wp_set_password( 'my_new_password', 1 );

如图所示

然后用my_new_password作为密码登陆一次,根据情况不同可能有的人可以成功进入,有的人会重新返回到登陆界面,别急,把这段代码删了恢复原样,再登陆一次就成功了

然后迅速去后台修改新的密码即可

插件问题

开启WP Super Cache测试缓存后显示时间戳不正确

如果你是使用的Cloudflare CDN的话,请尝试关闭你的选项与下图保持一致

然后再次测试缓存即可

为什么进行了各种优化可是网站还是这么卡?

你的网站运行的物理位置是哪里?

你的cdn用的哪家的,是否开启了cdn代理?

其实家宽是没有什么问题的(不封80/443端口的情况下),但是需要注意的是如果你使用Cloudflare并开启了cdn代理,那么所有从大陆向Cloudflare发起的请求都会连接至美国服务器,而不是最近的cf服务器

而事实上cdn代理是应该开启的,自身的IP暴露在外面是非常危险的

至于图片加载缓慢,就和你的网站服务器的上行带宽有关系,一般购买服务器的时候都会标注,家用带宽一般都是50m(即6.25mb/s),部分地区可能会提供30m(3.75mb/s)、100m(12.5mb/s)的上行带宽,因此网站中上传的图片大小不宜过大,会增加网站加载的负担


描いて求めた星のキャンバスに花を咲かせて