typecho博客搭建教程

typecho博客搭建教程

花也
2023-12-15 / 0 评论 / 27 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年12月15日,已超过146天没有更新,若内容或图片失效,请留言反馈。

个人博客搭建教程

搭建个人博客,需要以下内容:

  • 服务器:具体可见本站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.pemblog.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

评论 (0)

取消