个人博客搭建教程
搭建个人博客,需要以下内容:
- 服务器:具体可见本站LNMP服务器搭建教程
- 域名:域名后缀选择有很多,建议选择.com.net.cn,.org在国内已无法备案
- ssl证书:腾讯云\阿里云\xx云\CloudFlare\let's ecrypt白嫖
- 博客系统:轻量选择typecho,功能多且通用选wordpress,静态博客选hexo等
从购买域名开始
我知道,选择域名是件痛苦的事情。
痛苦来源于以下方面:
- 大部分人应该都知道.com域名,com域名可信度高、对搜索引擎友好、价格稳定,是互联网域名的典型标志。
- 符合国人习惯的双拼com都被注册完了,剩下一些难读且无意义的拼音,比如"fiao";
- 一些很常见的单词域名基本也被注册完了,基本选不到什么好的;
- 也就只能花费大把力气去不停的搜索或者阿里云的批量搜,然后筛选出一些品相好看、简短且容易翻译成中文的词;
- 大部分品相好看的或者简短有意义的域名都被挂了高价出售,域名被称作"米",这些人被称作"米农";
- 以上适用于.com;
- 其他的域名后缀,比如.net和.cn,个人觉得.cn是比.net好记的,但是.cn必须备案才可以使用;.org已无法备案,国内的厂商也不支持注册了,如果后续考虑做大的话,备案可能是个问题(但是.org是有很多好的双拼域名的);.top/.xyz因为其本身的首年注册很便宜,封了也不在乎,所以大部分的此类域名的用途都不太正规,风评不好;.app/.dev/之类的域名还行,但不常见;现在很火的.ai域名,续费价格挺高的;所以买域名需要很综合的来看;
- 可以考虑域名发音的相似性,简单举例就是华为的麒麟Kyrin和鸿蒙Harmony;
- 我曾经也注册过很多域名,大大小小,多多少少,也花了过千,很多都是无意义但有些品相的.com,食之无味,弃之可惜那种。所以最后都不再续费了,真的让我续费下来的,少之又少。
- 本站域名wexue.com,其实也是一个无奈的折中表现,如果是完整的双拼,价格要加两三个零。"we"是我们的意思,发音近似于"微,唯"等,"xue"就是"雪或者学",我是个中国传统文化爱好者,同时不爱学习,所以取名"唯雪"。
- 个人觉得,域名的发音、品相和长度固然很重要,但是内容更重要,所以如果你真的打算用一个域名长期做下去,那你一定要为你的域名正名。
吐槽完毕。
下面开始正文:
我们此处以com域名为例,讲讲怎么注册,以及注册后要做的事。
com域名的新购和续费价格是很稳定的,如果是在阿里云/腾讯云购买,新用户有优惠,续费的话一年在85R左右。
想了一下,域名购买好像没啥讲的,大厂的流程都做的很简单明了了。?
从购买后开始讲。
比如我们在腾讯云购买的域名(腾讯云要比阿里云便宜几块钱?),那么我们到控制台云解析DNS处,添加两条解析记录:
(记录值中的10.10.10.10只是一个示例IP地址,这里请填写你服务器的IP地址)
主机记录 记录类型 线路类型 记录值
@ A 默认 10.10.10.10
(记录值中的domain.com只是示例域名,这里请填写你的域名)
主机记录 记录类型 线路类型 记录值
www CNAME 默认 domain.com
如果想添加比如blog.wexue.com类似的域名,那么示例如下:
主机记录 记录类型 线路类型 记录值
blog A 默认 10.10.10.10
域名解析这里就设置完了。隔几分钟后可以ping一下上面设置的域名,看ip地址是否正确。
提示:
- Windows ping用法:按 Windows键 + R键 ,输入
cmd
,回车,弹出来的黑框框中输入ping -t blog.wexue.com
,会显示IP地址和TTL时间 - Linux ping用法:打开Terminal,输入
ping blog.wexue.com
,会显示IP地址和TTL时间 - 请将wexue.com改成你自己的域名
注:
- 域名解析是将一个域名解析到一个IP地址上,每次访问域名时,都会通过DNS服务器查询域名对应的IP地址,这样才可以找到IP地址所在的服务器。
- 为什么不通过IP地址直接访问呢?举个例子:179.53.82.147,你作为服务器owner,你很可能记得住,但是用户很可能记不住,也不想记。记一个两个还好,多了鬼知道哪个对应哪个。此时一个简单好记且有意义的域名作用就体现出来了。
- 但也有真的使用IP地址访问的,比如正点原子的文档服务器?:
ssl证书申请
我们在浏览器输入域名访问的时候,有没有注意过,浏览器地址栏会自动在域名前面加上https://
这样的字符,这就是加了ssl证书的域名。
如果没有加ssl证书,那么浏览器地址栏前面大概率会提示不安全,浏览器地址栏会在域名前面加上http://
。就像这样:
注:
- https和http的区别在于https相对于http的流量是加密的,别人无法看到你的通信内容,安全性大大增加。
s
就是secure
的意思。
申请开始,白嫖内容。
在腾讯云控制台搜索ssl证书,点我的证书-SSL证书
,申请免费证书(每年会给20个免费证书)。
填写要申请证书的域名,比如我们为drive.wexue.com申请证书,那么就填写drive.wexue.com
。邮箱随便填一个,只是用来接收通知用。
然后会让添加一个CNAME解析,按他给的信息添加就可以了,等待大概5-10分钟,再回到证书界面,会显示已签发,点击下载,nginx格式的。
下载的内容是一个压缩包,里面包含了四个文件,我们需要其中后缀为.pem和.key的文件,将这两个文件命名为blog.pem
和blog.key
。
ssl证书申请部分到此结束。
博客系统搭建
SSH登录服务器。
WinSCP连接服务器。
将刚才申请的证书的.pem文件和.key文件传输到服务器上,然后SSH将这两个文件移动到/etc/nginx/ssl
文件夹下。
切换到/etc/nginx/vhost
文件夹下,新建一个.conf文件,比如:blog.conf
nano /etc/nginx/vhost/blog.conf
复制粘贴以下内容:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/nginx/ssl/blog.pem;
ssl_certificate_key /etc/nginx/ssl/blog.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
server_name blog.wexue.com;
access_log /var/log/nginx/blog_nginx.log combined;
index index.html index.htm index.php;
root /www/blog/;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
}
#error_page 404 /404.html;
#error_page 502 /502.html;
location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ {
valid_referers none blocked *.wexue.com blog.wexue.com;
if ($invalid_referer) {
return 403;
}
}
location ~ .*\.php(\/.*)*$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) {
deny all;
}
}
将上面代码里的blog和wexue改成你自己的域名。
博客系统搭建
此处以typecho为例(wordpress基本相同)。
首先在/www文件夹下创建blog文件夹(这个文件夹就是上面代码root /www/blog/;那行的文件夹名字,要创建的文件夹名字和这行的名字请保持一致):
mkdir /www/blog
然后去typecho官网下载最新的包:我是链接
下载后的zip文件使用WinSCP传输到服务器上,比如放在/home/username文件夹下,然后切换到/www/blog文件夹,然后执行:
cd /www/blog
unzip /home/username/typecho.zip
然后回到/www文件夹下,将/www/blog文件夹及该文件夹下的所有文件的拥有者改为www:
cd /www
chown -R www:www /www/blog
博客系统至此搭建完成。
注:
- 如果你有其他主题,请将主题解压后放在/www/blog/usr/themes/文件夹下
- 如果你有其他插件,请将主题解压后放在/www/blog/usr/plugins/文件夹下
- 如果你找不到其他主题和插件,请去Github
数据库
我们的博客是需要数据库的,数据库是个好东西,易备份易恢复,居服务器必备之良药。
你可能会问,我们在LNMP搭建部分不是已经做好MySQL数据库了吗?
是的,我们是搭建好了MySQL,但是MySQL只是一个数据库服务,它本身并不是数据库,所以我们要创建一个数据库来存储我们的博客内容。
输入以下命令:
#以root账户进入数据库,需要输入root账户密码
mysql -uroot -p
#创建一个普通用户,用户名是username,密码是123456
create user 'username'@'localhost' identified by '123456';
#创建一个数据库,名字为blog
create database blog;
#将数据库blog的所属用户改为username
grant all privileges on blog.* to 'username'@'localhost';
#刷新权限
flush privileges;
#退出
exit;
至此,数据库就创建完了。
开始设置博客
首先重启一下nginx,使blog.conf配置文件生效:
systemctl restart nginx
然后在浏览器输入你的域名,就可以开始设置了。
- 数据库选择pdo_mysql;
- 数据库名填刚才设置的blog;
- 用户名填刚才设置的数据库用户名username;
- 密码填username的密码123456;
- 然后点击安装;
- 网站管理员账户填写你想设定的管理员账户名字;
- 输入管理员密码;
- 输入管理员邮箱;
- 安装;
- 安装完成;
此时再访问你的域名,看看是不是成功了。
评论 (0)