这是本站的第一篇文章,记录本站是如何建立的,也许对打算建立个人网站的小伙伴也有一些参考。本站是基于阿里云购买的服务器与域名建立,使用Newspaper主题设计的。本文除了对这两点进行记录,还说明了如何解决网站无法发送邮件、无法渲染Latex公式、设置https访问的问题。
本文封面使用的图片是pixiv插画师邦乔彦的《夏梦》,本站是在暑假建成的,以此封面来给本站未来发布精良美观的内容一个美好的寓意。
配置环境
要建立网站发布内容就像你要打一个游戏,首先要买电脑,然后安装软件,才能开始打游戏一样,做好配置环境的工作你才能谈设计网站制作博客。
购买服务器和域名
首先需要购买服务器和域名,服务器是一台云服务公司的虚拟主机,你远程对它进行操作,它具有公网IP,可以被公网访问(理论上来说个人电脑也可以作为服务器做网站,但是你一般是在局域网里,需要申请到公网IP才能被公网访问);域名是你的IP地址的一个别名,你在购买服务器后,它会有一个IP地址,IP地址可以理解为这个服务器的身份证号码,是一串x, x, x, x的数字,其中每个x取值范围0-255,但是你一般不会用这个去用这个来指定访问一个网站,就像你不会用身份证号码来记人,一般用名字,你一般会用www.baidu.com来访问百度而不是它的IP地址。我是在阿里云购买服务器和域名的,服务器在阿里云特惠服务器购买的,99元/年;域名在阿里云域名注册购买的,域名一般.com这种正式的后缀比较贵,前缀如果比较正式也会比较贵,你可以看有哪些后缀,然后想一个你希望的前缀,这就组成了一个网址,如果这个网址没有被别人占有的话你就可以购买了,我购买的是qimuchuan.life域名,六七十块钱一年,之前还买过一个一块一年的js-ye.top。
安装WordPress镜像并登录WordPress
当你购买好服务器之后就要在服务器里安装WordPress以及它依赖的一些软件了。题主尝试过跟着网络上的某些博客配置环境,但是都出现了各种各样的bug;也有使用宝塔面板的,但是我个人不是怎么想用。后来发现了阿里的文档里有直接安装镜像就能搭好个人WordPress的,文档地址:快速搭建WordPress。里面有3种搭建WordPress方案,我选择的就是第2种。文档十分详细,会教你如何安装WordPress镜像,然后获取WordPress账号密码以及数据库密码,如何登录wordpress进入后台面板,最下面还说了需要备案域名(不然在国内无法通过域名解析来访问你的网站,并且备案过程1-2周,需要耐心等待),提供了备案的说明文档链接,以及备案后如何把你的网站从IP地址访问变成域名访问。当你做完这些之后,基础工作就完成啦!
完善网站
恭喜你已经成功登录WordPress了,你一定迫不及待想要开始发布自己的第一篇博客了吧。No, no, no. 如果你对自己的网站有一些外观与质量上的要求的话,还是要完成一些工作的。
设计WordPress
登录Wordpress之后,你会看到一篇《世界,你好!》的文章以及白茫茫的主题,如何让自己的网站美观甚至炫酷呢,你可以选用一个好看的主题,在已经做好的基础上按照自己需求进行改动。登录后台面板,选择外观-主题-添加主题,你可以浏览主题,挑选你自己喜欢的,或者上网阅读推荐WordPress主题的博客,看看自己有没有适合你的,看中了某个主题直接在浏览主题界面搜索名称即可。一个主题下会有多套模板,一般都有免费套餐,当然你如果要更多模板更多功能就得加钱。


我选择了Newspaper,其中的Art Blog模板是我在看微信公众号里面对WordPress主题做推荐的文章里看到的,看到的第一眼我就觉得这是我的梦中情板,就花钱买下来了。我之前也用过其他主题,Newspaper主题一个最大的优点就是他的功能很齐全,你完全可以使用主题自带的工具来设计出好看的页面。而这些工具的操作方法我也没有看教程,你可以自己多尝试来探索它的工具可以实现什么样的效果然后你就慢慢地可以知道你想要达到什么效果以及如何达到了。在Newpaper设计网站也没有什么难度,并且其他主题就不适用Newpaper的相关内容了,所以在这里不过多阐述。
网站无法发邮件怎么办
如果你对网站仅仅是想发布自己的文章,不需要搞评论的话,你大可记好自己的账号密码(因为如果你忘记了就要重置密码,而重置需要网站发一封邮件给你的邮箱),不必管自己的网站无法发邮件。如果你需要在网站里设置多名用户,想要开启评论并且评论必须是注册了的订阅者发表的话,你就需要你的网站可以成功发邮件了。你会发现当你想要更改自己的邮箱时,它会提示你验证了邮箱之后更改才生效,而你没有收到邮件。这时你需要使用SMTP服务,对国内用户来说,比较方便的是网易邮箱和QQ邮箱。在这里我使用的是QQ邮箱,因为网易邮箱只能用手机号注册一个,而QQ邮箱注册了一个QQ号就有一个邮箱(我使用了一个QQ邮箱负责网站发邮件,另外一个QQ邮箱作为网站管理员的邮箱,这样就不会让我自己用的网易邮箱被消息轰炸了)。
具体流程如下:在WordPress安装WP Mail SMTP插件,然后登录QQ邮箱申请SMTP服务,点击邮箱头像-账号安全-安全设置-POP3/IMAP/SMTP/Exchange/CardDAV 服务,点击“生成授权码”,把授权码拷贝到一个地方一会儿要用;然后进入WordPress后台的WP Main SMTP进行信息填写,邮箱名称是你的邮箱名,密码就是刚才的授权码,QQ邮箱的SMTP主机是smtp.qq.com,SSL方式加密对应的端口是465,TLS对应的是587(我这里踩坑了,把它们对错了,搞得我一直失败,后面发现点击一个加密方式会自动填写端口才发现我对应错了)。最后验证一下成功就说明你的网站可以发邮件了。接下来网站可以支持读者通过邮箱注册为订阅者了。


文章渲染LaTex公式失败怎么办
作为理工科学生,如果不能使用LaTex写文章那真是左右为难啊。WordPress并不支持书写公式,网络上有说使用插件来写LaTex的,有一些是渲染成图片然后嵌入文章里,那样做可能会导致后期文章多起来图片多会加载巨慢,所以这种做法被我Pass;还有就是直接渲染的,使用MathJax-LaTex插件渲染公式,但是安装之后我发现并没有渲染,后面参考了博客园里的一篇博客wordpress 显示数学公式 (MathJax-LaTeX),发现这个插件是要连接一个服务器,把LaTex代码发送给服务器渲染后再发送回来,而在国内这个服务器连接是不好的,所以还是无法渲染。解决办法是安装本地的渲染器,
具体步骤如下:
我们首先需要知道WordPress安装在哪里。wp-config.php
是WordPress的核心配置文件,找到它就等于找到了网站的根目录。在命令行中执行以下命令:
sudo find / -name "wp-config.php"
你将会得到类似下面这样的输出:
/data/wwwroot/wordpress/wp-config.php
这表明,您的WordPress网站根目录是 /data/wwwroot/wordpress
。请记下这个路径,我们后续将用 /path/to/your/wordpress
来指代它。接下来,我们直接在服务器上完成MathJax的下载和部署。进入wp-content
目录,这是存放所有自定义内容的标准目录。请将下面的路径替换为您在上一步找到的真实路径。
cd /path/to/your/wordpress/wp-content
下载MathJax库,我们使用wget
命令下载一个稳定且兼容性极佳的2.7.9版本。
sudo wget https://github.com/mathjax/MathJax/archive/2.7.9.zip
如果提示unzip
命令不存在,请先安装它(CentOS/RHEL: sudo yum install unzip
;Debian/Ubuntu: sudo apt-get install unzip
)。
重命名与清理,为了方便后续引用,我们将解压后的文件夹MathJax-2.7.9
重命名为MathJax
,并删除不再需要的压缩包。
sudo mv MathJax-2.7.9 MathJax
sudo rm 2.7.9.zip
至此,MathJax库已成功部署在/path/to/your/wordpress/wp-content/MathJax/
。
接下来设置正确的文件权限,这是确保Web服务器能成功读取MathJax文件的关键一步。查找Web服务器运行的用户,执行以下命令,查看您的Web服务器(如Nginx或Apache)是以哪个用户身份运行的。下面命令中的-R
参数会递归地将权限应用到MathJax
文件夹内的所有文件和子文件夹。
sudo chown -R www:www /path/to/your/wordpress/wp-content/MathJax
服务器端的工作已经完成。加下来直接将下面的代码添加到主题的functions.php
文件中。该文件可以在WordPress后台外观-主题编辑文件器-主题文件找到。
function load_local_mathjax() {
// 仅在单篇文章或页面中加载脚本,优化性能
if ( is_single() || is_page() ) {
// 使用WordPress函数自动生成本地MathJax文件的正确URL
$mathjax_url = content_url( '/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML' );
// 输出用于加载MathJax的<script>标签
echo '<script type="text/javascript" async src="' . esc_url( $mathjax_url ) . '"></script>';
// 输出MathJax的详细配置,这是渲染成功的核心
echo <<<EOT
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
// 配置公式的定界符,如 $...$ 和 $$...$$
tex2jax: {
inlineMath: [ ['\$','\$'], ['\\(','\\)'] ],
displayMath: [ ['\$\$','\$\$'], ['\\[','\\]'] ],
processEscapes: true
},
// 强制加载AMS扩展,以支持矩阵、分段函数等高级环境
TeX: {
extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]
}
});
</script>
EOT;
}
}
// 将我们的函数挂载到WordPress的头部加载动作上
add_action('wp_head', 'load_local_mathjax');
接下来你就能尝试写LaTex代码看看是否渲染成功了。
我测试了很多LaTex公式,发现其他都渲染好了,但是对于那种要跨行的LaTex公式(比如分段函数,矩阵)会失败,只能显示为一行。其原因是多行公式渲染失败的具体原因是 WordPress 的富文本编辑器(如古腾堡)会自动添加<p>
标签或转义换行符,导致 MathJax 无法正确解析多行 LaTex 语法。我没有找到能够直接解决的方法,最后的方案是把这一段的代码插入到WordPress的自定义HTML的块中,这个可以让AI帮你写,这样做就可以成功渲染出多行的数学公式了。


这里给两个例子。
第一个是矩阵,HTML源码如下:
$$
A = \begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{pmatrix}
$$
效果如下:
$$ A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$接下来是分段函数的代码:
$$
|x| = \begin{cases}
x, & \text{if } x \ge 0 \
-x, & \text{if } x < 0
\end{cases}
$$
效果如下:
$$ |x| = \begin{cases} x, & \text{if } x \ge 0 \\ -x, & \text{if } x < 0 \end{cases} $$现在可以认为渲染LaTex公式没有问题了。
其他的一些小问题
上面两个问题都是跟博客网站运行直观重要的,还有一些不那么重要的问题。比如头像无法显示,还有分类的顺序无法控制。这里我都是使用插件来解决的。对这两个问题,我使用的插件分别是Simple Local Avatars
和Category Order and Taxonomy Terms Order
。多问AI大模型,这样的小问题一般都能用插件解决。这也是WordPress的优势之一,生态丰富,经过多年发展很多问题都有解决方案了。
安全访问
那么现在已经设计好了网站的排布,也解决了读者订阅、渲染公式这些问题,就可以开始写文章啦。当你的域名备案成功、并且把WordPress设置为域名访问的时候,你会发现浏览器会提示“不安全”。这是因为你的WordPress访问方式为http,要消除“不安全”提示需要安装SSL证书并且改为https访问。阿里云是有免费领取SSL证书服务的,并且有安装SSL证书的相关文档,详情见:WordPress环境上安装SSL证书。
我在实现https访问的过程中感觉这篇文档对我来说还不够,我是让AI读了一下这个文档,然后我让它说需要使用什么命令得到我的服务器里的某些信息,然后它给我命令,我复制到服务器里执行,把结果给AI看它来思考下一步干什么。当时是遇到了几个困难,我也不懂具体是什么原理,大概就是Nginx的config文件设置http和https,WordPress的config文件需要修改ssh证书的文件地址,有什么bug就让AI来解决,然后折腾了几下之后我的网站就可以使用https安全访问了。
配置文件都写好后我就只需要在证书文件过期之前替换成新的就可以了。现在我是白嫖阿里云的SSL证书,这里是每年可以申请20张证书,每张证书申请后有效期3个月,我需要每次都下载好新的文件然后放到指定位置。这虽然也没啥但是我还是觉得太麻烦了,我写了一个每一个小时执行的脚本,它会看root下有没有新的证书文件,如果有它就会处理覆盖旧文件,这样每三个月我下载好新的证书文件直接上传到那个位置就好了,剩下的工作脚本会自己完成。不过如果你不在意这个“不安全”标志,也可以不管(好像没有安全证书的时候Edge浏览器如果不指定http访问它不会加载头像图片,不知道啥原因)。感觉https访问维护起来还是很轻松的。
由于这篇站主没有足够精力以及经验来完成一个保姆式的教学工作,因此对于建站小白来说,仅看本文是远不够的,还是需要多参考互联网中的博客,多问AI大模型,多尝试。希望这篇文章能帮助到你。如果你在建站过程中遇到任何问题,或是发现本文有错误,欢迎在评论区留言交流!
Wow, TQL!