如题,我建这个博客网站时学习了很多所谓的“零基础”和“10分钟”教程。可实话实说,建网站就是一件费时费力的事儿。前辈们的教程确实很有帮助,可实操过程中总会遇到各种新问题,这些问题还得自己去Google或者靠ChatGPT等大模型的帮助才能解决。实际上我真的遇到了很多大坑,尝试了四五种WordPress(WP)安装方法才终于稳定运行。在这篇文章中我梳理了从购买域名到使用WP建站的基本概念和操作细节,大家可以先花些时间了解整体流程再着手操作,相信会起到事半功倍的效果。
本文中不包含任何广告,我也不会特意推荐服务商。但是本着不要重复造轮子的原则,我会链接一些比较有用的网页来帮助新入坑的人理解基础概念,在特定章节也会引用前辈们的一些教程文章。所有的引用都会包含原始链接,如果有人觉得某些引用不妥当,可以点击页面最下方的邮件图标联系我进行删除。
如果觉得有不明白的地方,或者遇到一些特殊问题,可以在评论区留言交流。等以后我再折腾WP的时候,还会回来更新这篇文章。
目录
购买域名
域名就是网站的名字,我们可以在浏览器中输入域名来访问网站,比如Google翻译(香港)的域名是translate.google.com.hk
。
接下来我们来看域名的组成,仍然以Google翻译(香港)为例,最右边的.hk
是一级域名,也叫顶级域名,右数第二部分.com
是二级域名,依次类推共包含四级域名。再比如我的博客网站的域名是yeruiyao.com
,它只包含两级域名,顶级域名.com
和二级域名yeruiyao
。
域名是由互联网名称与数字地址分配机构(ICANN)负责管理和协调的,ICANN会在各个国家认可域名服务商,然后我们就可以从服务商手里购买域名。购买域名这个环节是比较独立的,你可以只买域名但不运营网站,有些人甚至用这种方式来盈利,也就是域名抢注。域名的购买渠道非常多,只要你能把钱顺利付给对方,理论上从任何国家的任一域名服务商处购买都是可以的。购买域名的教程网上有很多,不再赘述。
【注意】如果打算在国内做网站备案,域名和服务器都要从国内的服务商购买。
购买服务器
如果把域名当成人名,那么服务器就是那个有血有肉的人。一个网站上所有的内容都储存在服务器中,人们访问网站的请求也是由其背后的服务器进行处理。因此我们需要购买服务器,并且把域名和服务器进行连接,其他人才能通过域名进入我们的网站。
服务器有很多种,建个人博客网站常用两种——云服务器和虚拟专用服务器(Virtual Private Server,简称VPS)。每个国家都有很多服务商提供服务器租赁,不同服务商的定价差异也很大。不管是租国内还是国外的服务器,我都建议大家在买之前多搜索一下,货比三家,在自己的预算范围内内选负面评价少的。同一服务商也会提供不同价位的服务器,一般钱花的多,服务器配置(CPU,硬盘,内存,流量等)会更好,有点像配电脑。
租服务器的时候还需要给服务器装操作系统,零基础的同学选CentOS,Ubuntu或者Debian等Linux系统都可以,因为这些系统的社区资源很丰富,自学更容易。我自己用的是Debian 12,如果你打算用我后面介绍的方法安装WP的话,也可以装Debian 12。如果将来有更新的版本出现,选最新版就好。
买好服务器之后,需要将域名与服务器的IP地址进行连接,连接的教程网上有很多,根据域名服务商的不同操作会有差异,但逻辑是一样的。这里我贴一个Namesilo域名解析详细教程,看一遍应该就知道是怎么回事了。如果你的域名不是从Namesilo买的,并且没看明白这个教程,可以搜域名服务商名字加关键词“域名解析”找到相应的手把手教程。
通过SSH连接服务器
服务器买好了之后,我们需要用自己的电脑远程连接它,然后才能在服务器上进行接下来的操作。远程连接服务器需要用到命令行工具,在Mac电脑上用自带的终端(Terminal)软件即可,在Windows系统中可以用自带的cmd软件,也可以另外装其他的终端软件。
目前主流的服务器都使用SSH连接,可以用密码认证或密钥认证进行登录,不同的服务器会提供不同的登录方式,可以登录服务器官网确认一下。
如果你买的服务器使用密码认证,比如Vultr,可以参考这篇教程。如果你买的服务器用密钥认证,比如DMIT,可以参考这篇教程。顺利连接进服务器系统后,就可以在服务器中进行安装软件,部署WP的环境依赖,安装WP等操作了。
这里要给大家提个醒,当我们用命令行成功连接服务器系统后,接下来输入的指令就要跟着服务器的系统走了。比如说Debian系统中某些指令的写法和Ubuntu或CentOS系统是不一样的,所以在网上搜教程的时候一定要注意教程用的是什么系统。我建议大家要一边操作一边学习Linux系统的命令行指令,一旦我们开始经营自己的网站,对技术知识的学习就不可避免的开始了,没必要一味求快求方便。很多时候麻烦并不会消失,只是出现的早晚而已,多多学习才能高效的解决问题,减少焦虑。
安装WP前的准备
连接服务器系统后是不能直接安装WP的,而是要先安装运行WP所需要的环境依赖。至于依赖是什么,我其实也没办法简单且准确的阐述它的定义。它就好比是你玩某些游戏前一定要确保电脑上装了DirectX,否则游戏就无法运行;又或者是你想打开一张图片,就一定要先安装看图软件。这里DirectX和看图软件就可以类比成运行游戏和打开图片的环境依赖。
WP的环境依赖包括操作系统,Web服务器,数据库和PHP。其中Web服务器可以选择Nginx,Apache,Caddy等,数据库常用的有MySQL,MariaDB等。由于操作系统通常都是Linux,所以我们经常会搜到有关WP环境依赖的缩写,比如LNMP (Linux+Nginx+MySQL+PHP),LCMP (Linux+Caddy+MariaDB+PHP)等。
安装WP的环境依赖可以有3种途径,下面会一一进行介绍。
- 通过面板软件安装
- 手动命令行安装
- 使用一键安装脚本
要不要装面板
所谓的面板,其实是一种安装在服务器中的系统管理软件,主要作用是提供一套可视化的服务器管理工具,通常还会提供一键安装WP环境依赖的功能,主打一个简单方便。如果不使用面板类产品的话,就必须一直使用命令行在服务器中进行操作,得学更多的命令行指令,操作起来更麻烦。
我自己之前尝试过3款面板软件,这里简单介绍一下。
宝塔面板
几乎所有的0基础教程都会推荐使用宝塔面板,我最开始也确实是用宝塔面板来建站的,但在大概一个月之后就弃用了。
最直接的原因是我发现宝塔并没有网上说的那么神,反而给我带来了很多困扰。比如说宝塔默认安装的WP和环境依赖的版本都很低,有一些自带的bug我甚至都找不到解决方案。宝塔的网页客户端经常会有卡顿甚至卡死宕机,必须重启服务器才能恢复宝塔的功能。
另一个原因是使用宝塔需要绑定自己的手机号,这意味的什么我就不多说了。文章“浅谈为什么放弃宝塔”中有更多的介绍。
1Panel
1Panel是一款基于Docker容器的国产开源面板软件,它的网页客户端的操作界面设计的非常优秀,使用也非常流畅。缺点是1Panel本身对服务器硬件资源的占用比较大,而且使用Docker容器的逻辑和直接在服务器里安装软件的逻辑是不太一样的,我还没搞太明白。
我成功用1Panel安装了WP,但是导入旧文章的时候总是出现错误。我重装试了好几次,每次出现的问题还都不一样。虽然最终我放弃了1Panel,但我觉得从零开始搭建WP的话还是可以用它的。
想自己试一试的话,参考B站官方的1Panel功能演示视频就好。按照演示视频操作的话,顺利安装WP应该没问题。
cPanel
cPanel是一款在国外非常出名的闭源面板软件。因为闭源,所以收费。如果只是为了搭建个人博客的话,我觉得有点用力过猛了。而且安装cPanel本身就是个麻烦事儿,我按照官网的指导一步一步操作,还是会出现一大堆报错。简中互联网中有关cPanel的教程也比较少,所以我不太推荐这个。
手动安装难不难
先说结论,对新手来说难。主要原因是安装依赖之后还要依次配置参数,过程中可能会出现各种稀奇古怪的报错。简中互联网下也没有特别靠谱的手把手教学,只能参考个大概,绝大多数问题都需要自己有针对性的查找解决方案。我自己尝试的时候搞定了安装的部分,最后卡在了SSL配置这一步,始终无法给自己的网站添加安全连接,遂放弃。
虽然整个过程非常折磨,但也是个挺好的学习过程,让我对Linux系统中的常用命令和基本运行逻辑有了更多的了解,解决网站运营过程中出现的问题时也会更加游刃有余。
一键安装脚本推荐
所谓的一键安装脚本,其实就是技术大佬们把手动安装过程中的参数配置整合在一起后的产物。使用这种方法,我们只需要输入简单的命令行指令,脚本就会自动完成绝大多数的安装与配置,可以实现和手动安装一样的结果。
以前最流行的安装脚本应该就是LNMP脚本,但目前使用LNMP脚本可能会有风险。
信息来源:https://www.vpscue.com/50788.html
2023年下半年,随着作者军哥用爱发电很多年后将网站卖给某公司,有大神发现LNMP.COM网站的代码里被恶意植入了后门代码,该公司同时收购了oneinstack,同时期出现了恶意代码,LNMP和oneinstack一键网站环境安装包被广泛弃用。
我最终使用的是LCMP脚本,作者是大佬秋水逸冰。有关LCMP最权威的介绍可以参考秋水本人的博客文章“LCMP (Linux + Caddy + MariaDB + PHP)”。
如果觉得看不太明白,也可以参考另外一篇文章“LCMP一键脚本:五分钟搭建WordPress博客”。这篇博客更偏向于手把手教学,对新手更友好。但是里面有两个小问题需要指出:
- 用Ubuntu系统安装的过程中会出现一些奇怪的问题导致安装中断。我尝试解决问题未果,最后换了Debian 12才顺利安装。
- 最后一步设置网站根目录权限的代码应该是
chown -R caddy:caddy /data/www/*
,而不是chown -R www:www /data/www/*
。
【注意】在安装过程中会遇到设置数据库密码等操作。所有的密码都要设置成强密码,要足够长,并且包含大小写字母和特殊符号。然后请将密码保存在安全的地方。
安装WP
参考上面提到的文章“LCMP一键脚本:五分钟搭建WordPress博客”中相关的介绍即可。环境依赖装好后安装WP是很容易的,网上也有很多其他类似教程,大家可以自行搜索。
安装基础防火墙UFW
UFW是Ubuntu自带的防火墙软件,但我们用的Debian系统中是没有的,需要手动安装并且简单配置一下端口。
安装:
sudo apt install ufw
开启必须的端口:
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
启动UFW:
sudo ufw enable
UFW还可以实现一些更复杂的功能,比如拒绝来自特定IP地址的访问,感兴趣的话可以查阅官方英文文档Ubuntu Documentation。想看中文的话可参考文章“Debian 10上使用UFW设置防火墙”。
设置域名重定向
用LCMP脚本安装WP之后,会默认从http://example.com
跳转到https://example.com
,但如果访问网站的时候在前面加上三级域名www
,就不一定出现的是什么了。为了让带三级域名的网址www.example.com
跳转回example.com
,需要找到Caddy的配置文件添加一些代码。
配置文件的名字是Caddyfile,默认的位置在/etc/caddy
。我们进入这个文件夹并打开Caddyfile。
cd /etc/caddy
sudo vim Caddyfile
然后就会进入编辑界面,此时你应该会看到寥寥几行代码,类似:
{
admin off
}
import /etc/caddy/conf .d/*.
按i
键,进入编辑模式。你需要在中间添加几行代码:
{
admin off
}
# 让带www的三级域名跳转回二级域名网址
http://www.example.com, https://www.example.com {
redir https://example.com{uri}
}
# 让IP地址跳转回二级域名网址
http://20.200.100.200, https://20.200.100.200 €
redir https://example.com{uri}
}
import /etc/caddy/conf .d/*.
改好之后按Esc
键退出编辑模式,再输入:wq
保存并退出文件。
一些WP安全插件
网络上有非常多的使用WP建站的教程,本文中不再赘述。这里只聊一些与网站安全性有关的话题。
登录名与密码
在前面安装环节我就提到了要设置强密码,这里再强调一下。WP的登陆密码一定要设置成强密码,最好将登录名也设置成近似乱码的密码格式,增加破解的难度。
主题与插件
先提醒一件事,不使用的主题和插件一定要删掉。要么安装之后立刻启用它们,要么就干脆别装。安装之后未使用的插件和主题会带来额外的安全隐患。
另外,某些万金油插件的功能很多,插件装多了可能会出现功能冲突的情况。我建议在网站稳定运行之后,每次装新的插件之前都要做好备份,避免插件冲突导致网站无法访问的情况出现。
插件:WPS隐藏登录
它的作用是修改登陆WP后台的网址,启用插件后可以在设置/常规
页面的最下方进行修改。我建议修改成一串密码格式的乱码作为登陆地址。当然,一定要保存好自己设的新地址,不然你自己也登不进去。
安装这个插件之后,试图破解你密码的情况会减少很多。
插件:Login Lockdown
这款插件是和上面一款配合使用的,作用是如果有人尝试登陆你的WP后台,密码输错几次后会被锁定,无法继续访问你的网站。输错的次数和锁定的时间都可以自由设置,还可以查看是哪些IP在实施攻击。如果真的有人持之以恒在试密码,可以用上面介绍过的UFW把对应的IP直接封掉。
这款插件有付费版,但对个人网站来说免费版的功能就够了,不需要氪金。
插件:Akismet 反垃圾评论
这是一款WP自带的插件,直接启用即可。没有广告的个人网站可以免费用它,作用是帮你过滤垃圾评论。如果不装的话,以后遇到恶意刷垃圾评论的情况就会非常难受。
插件:UpdraftPlus-备份/恢复
一款备份网站内容的插件,备份内容可以下载到本地。备份非常重要,一定要养成定期备份的好习惯。万一网站遇到特殊情况挂掉了,有备份你才能轻松的恢复之前发布的文章。
哪怕服务器也提供了快照功能,我也还是建议用这个插件作为双保险。我就遇到过服务器回滚快照但是解决不了问题的情况,最后只能抹盘重装回到原点。
缓存插件装不装
像我这种访问量比较少的个人博客,其实不太需要缓存插件,等哪天访问速度降下来了再装也不迟。目前我自己装了“LiteSpeed缓存”这个插件,但只开了最基础的功能。那些比较复杂,我不太理解的功能都没有启用。
图片优化插件装不装
WP上有很多优化图片大小和格式的插件,我目前没有在用。这些插件的原理通常是用原始图片生成不同分辨率的若干张小图,这样需要显示图片的时候可以调用小图而不是原图。说白了就是用额外硬盘占用换访问速度提升。上面提到的“LiteSpeed缓存”插件就自带图片优化与缓存功能,我也没在用。
我自己一般是用网页版工具调整图片大小,然后再批量上传进WP自带的媒体库。之前我推荐过自己用的Tinify,但现在有了一个更好的选择。这是网友Jane通过邮件分享给我的,是Website Planet上的一款工具,链接在此:Website Planet图片压缩。Jane推荐的网站可以压缩最大50 MB的JPG和PNG图片,压缩率和Tinify基本相同,非常值得推荐!
要不要用图床
如果网站以文字为主图片为辅的话,不用图床完全可以。用WP自带的媒体模块管理图片会更方便。相反如果网站图片特别多,需要使用高清大图,或者是访问量太大,加载图片给服务器造成过大负担影响到了访问速度,那还是可以考虑用图床的。
使用图床的话,同样要考虑安全问题。一方面是图床服务的稳定性,万一哪天服务商跑路,所有的图就全没了。另一方面是个人数据保护的问题,如果你想上传自己拍的摄影作品或者创作的美术作品,最好找口碑比较好的图床服务商,更好的保护自己的著作权。有的时候花点小钱也是可以的,主要还是得靠谱。
文章评论