从零开始搭建自己的个人博客

一直都很喜欢极简风。
之前的博客模板总觉得太花哨,但是因为是自己写的,更换模板太费劲,懒癌晚期的我实在提不起劲来折腾。
直到几天前看到朋友托管于github上的博客,NexT.Mist真的是太符合审美了!
于是抱着尝试的心态在github上搜索了一番,竟然真的有基于php的Typecho移植版,完美!
鉴于之前博客荒的不成样子,就懒得迁移过来了。就着这次搭建新服务器,将流程整理了一番,希望可以帮到想自己搭建博客的朋友们。

前置需求

  1. 域名

    域名注册十分简单,如果没有特殊需求,建议在 万网 购买。
    需要注意的是,如果希望使用国内的云服务器,则需要进行域名备案后才能正常解析,而部分后缀的域名不支持在工信部进行备案,所以注册时需要注意。
    如果使用的是境外机房(包括香港地区)的服务器,则无论域名是否备案,都可以正常解析。

  2. 服务器

    国内云服务提供商推荐 阿里云腾讯云
    国外的话,可供选择的太多,LinodeVultrAmazon 等都是十分靠谱的主机托管商。

  3. SSH 客户端工具

    用以在本地连接远程云服务器进行管理。这里推荐 xshell 、 Putty。

  4. FTP 客户端工具

    更方便的进行文件上传、下载。推荐 xftp 、 FileZilla。


这里对域名注册、服务器购买不做太多介绍,有需要的朋友请自行搜索。

LNMP

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
简单理解为网站的运行环境即可。
鉴于这里更多的是面向无经验的小白朋友,所以推荐 LNMP一键安装包 搭建环境。
具体操作步骤如下:

  1. 使用SSH 客户端工具连接到云服务器。
  2. 运行命令 screen -S lnmp,如果提示 screen: command not found 命令不存在可以执行:yum install screenapt-get install screen 安装 screen
    此步骤非必需,为预防连接断开造成安装失败
  3. 执行LNMP安装命令: wget http://soft.vpser.net/lnmp/lnmp1.5beta.tar.gz -cO lnmp1.5beta.tar.gz && tar zxf lnmp1.5beta.tar.gz && cd lnmp1.5 && ./install.sh lnmp ,如果提示 wget: command not found ,使用yum install wgetapt-get install wget 命令安装 wget
  4. 命令执行完后会弹出数据库版本选择。因为Typecho没有对MySQL版本做要求,所以这一步直接回车,默认会选择2,安装MySQL 5.5.58
  5. 要求输入数据库root账户密码,数字请使用键盘区的数字键(见下图红色框线)输入。如果输错,使用 CTRL + Backspace键进行删除。
    输入完成后回车确认。

  6. 是否开启MySQL的InnoDB引擎,建议开启,输入y回车确认
  7. 选择PHP版本,建议选择7, PHP 7.1.15,回车确认
  8. 是否安装内存优化,直接回车,不安装
  9. 提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
  10. 安装时长视配置不同可能不同,我安装时大概耗时40分钟,安装完成后提示(这张图是1.4版本的,提示是一样的)

到这里,LNMP一键包安装完成,下面我们开始安装ftp服务

FTP

  1. 依然使用lnmp一键包提供的脚本进行安装。 如果上一步安装完成后没有做其他操作,当前仍然在lnmp1.5目录下,直接执行./pureftpd.sh,出现下图提示,按回车确认安装。
  2. 出现下图即为安装成功,提示用 lnmp ftp {add|list|del|show} 命令进行操作。现在先不管,后面添加虚拟主机时一起添加。

添加虚拟主机

  1. 运行命令 lnmp vhost add,输入你的域名
  2. 提示是否添加其他域名,如果有其他前缀的域名同样需要解析到这里,就输入该域名、回车,如果没有,则直接回车
  3. 确认站点目录,没有特殊要求的话直接回车确认。
  4. 是否需要重写规则,输入y , 回车
  5. 选择重写规则,输入typecho , 回车
  6. 添加PHP Pathinfo,输入y , 回车
  7. 日志记录,呃,这个没有经验的话,开不开无所谓,看不懂的话开了也没用。y或者n都可以。回车确认。如果选择开启,则会提示输入日志文件名称,直接回车选择默认的就好。
  8. 是否使用相同的名字创建数据库和MySQL用户,y , 回车
  9. 要求输入数据库root账户密码,输入上面安装lnmp时第5条设置的root密码。这里输入密码时是不会显示字符的,直接输完回车就好。
  10. 输入要创建的数据库名,因为我们这里是搭建博客,我这里输入blog。
  11. 给同名用户blog设置密码,输入新密码回车确认。如果输错,使用 CTRL + Backspace键进行删除
  12. 是否创建ftp用户,y,回车
  13. 输入ftp用户名,我这里依然用blog
  14. 设置ftp用户密码,输入密码回车确认
  15. 是否添加ssl证书,建议添加,y,回车确认。(lnmp提供了证书自动申请、自动延期,证书提供商是Let'sEncrypt。)这一步务必需要注意的是,如果此时域名尚未解析到当前服务器,则无法成功添加证书。
  16. 输入2,使用免费SSL证书提供商Letsencrypt的证书,自动生成SSL证书等信息
  17. 需要输入一个邮箱,回车确认。
  18. 提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机。添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图

到这里,整个虚拟站点添加就完成了。请牢记刚刚设置的数据库用户名,数据库密码,ftp用户名,ftp密码,后面会使用到。

上传代码

  1. typecho 的官网下载源码
  2. 使用ftp客户端软件连接服务器,xftp为例,设置流程为:文件->新建->填写站点名称,主机项填写服务器地址,用户名填写刚刚设置的ftp用户名,密码处填写ftp密码选项->取消勾选被动模式

  3. 将下载的typecho源码解压,上传。注意:源码解压后是build文件夹,上传时为上传build文件夹内的所有文件,build文件夹本身不要上传

代码上传完成。如果ftp一直连接不上,请在云服务提供商处检查 服务器安全组设置 ,是否允许21端口连接。


Typecho安装

  1. 浏览器访问你的博客域名。
  2. 开始配置
  3. 初始化配置中需要修改:

    • 数据库用户名
      修改为添加站点时设置的数据库用户名
    • 数据库密码
      修改为添加站点时设置的数据库密码
    • 数据库名
      因为我们之前创建了跟用户名同名的数据库,所以这里一样修改为数据库用户名
    • 网站地址
      http修改为https
    • 用户名
      在博客上创建一个管理账号,页面、文章等需要通过该账号处理。
    • 登录密码
      为管理账号设置密码
    • 邮件地址
      你的邮箱地址
  4. 点击 确认,开始安装后 ,完成博客安装。

至此,博客搭建完成。


301重定向

好吧,搭建是搭建完了,可是令人十分郁闷的是,如果在浏览器直接输入域名,默认会按http进行访问。以我的博客为例,直接访问www.sunyyl.com会转跳到http://www.sunyyl.com,ssl证书岂不是白装了?

所以我们需要更改nginx的conf文件,将所有80端口的访问都重定向到443端口。

流程如下:

  1. 用ssh客户端工具登录到云服务器。

  2. 执行命令 cd /usr/local/nginx/conf/vhost/

  3. 查看当前配置文件名 ls

  4. 编辑该配置文件,以我的为例,配置文件为 www.sunyyl.com.conf ,执行命令 vi www.sunyyl.com.conf

  5. 第一个server{}中的自root这一行往下的所有代码删除,然后添加return 301 https://$server_name$request_uri;,效果如图:

  6. 务必不要改动第二个server{}中的代码。

  7. 重启nginx服务器,执行 lnmp nginx reload

强制https访问就完成了。现在访问www.sunyyl.com就会转跳到https://www.sunyyl.com

到此,全部流程结束,希望可以帮到需要的朋友~

添加新评论