为什么想要建站

按照互联网的演进顺序,首先是门户网站的时代,也就是Web1.0时期,用户们通过浏览门户网站获取信息入口,随着网络的普及和技术的进步,进而到了Web2.0时期,特点就是个人博客和个人站点的繁荣,有想法有能力的人,通过建立自己的站点、发布博客,或者建立一些论坛社区,集中式的生产特定主题的内容。再进一步的就是移动互联网时代了,可能这更像一个自媒体的互联网时代,信息扩散的渠道和可能性相比以往有了巨大的提升,每一个活跃在手机背后的人,可能都有很强的表达欲望,软件企业也提供了各式各样的抒发出口,每一个用户就是一个潜在的有巨大能量的信息源,更方便的通信手段,人们更加方便找到同好,建立自己的亚文化小圈子。那么按照这个演进的方式看,这个时代选择去建立自己的站点或者博客,有一种逆时代而动的感觉,毕竟上个时代的站长们,现在都逐渐活跃于公众号、头条号了。但是我觉得,这也不是全部,我们在做一件事情之前,一定会问自己,我这样做真的有必要吗?在我看来,我选择自建站点的原因有以下几点:

  • 我有一台VPS,之前主要用于配置SS,此外基本处于闲置状态,某种程度上是一种浪费,自诩技术人员,闲置一台VPS,更有点说不过去了,总想办法给利用起来;
  • 我已经形成了记录的习惯,在CSDN博客平台上稳定的写了一段时间,这个习惯陪伴我的这两年,我切实的感受到了记录的好处,它帮我保存了很多记忆的点,便于我对周围的事情进行总结和回顾;并且记录有助于自己更好的去表达和理解一件事;
  • 博客平台的好处很多,但是我觉得并不是完美的,博客平台出于盈利的需要,会通过一些方式,制造信息传播的壁垒,比如付费下载别人免费上传的资源,其实违背了分享精神的初衷,这个可以通过GitHub的开源社区来解决;另外就是我个人信息的归属了,自建站点可以在后台看到自己所有的资料,更加透明可掌控,只要我愿意去承担一些费用,这些资料就会一直存在,站点拥有者可以以自己想要的方式来呈现它们,有很大的自由度。
  • 拥有自己的网站感觉是一个挺有意思的事情
  • 最后就是想要在网络世界有一个自留地,一片空间去记录自己的生活、学习的知识、生活的感悟,就像我的网站的副标题:

留住温度、速度、温柔和愤怒。

归根结底可以说是,有表达的欲望,有建站的资源。如果你也想要尝试拥有一个自己的网站,按照下面的说明,你可以在半天时间内搭出自己的网站。

建立站点的准备

准备项汇总

  • 服务器:服务器并没有什么特殊的,你可以把它看作是一个拥有公网IP地址的电脑或者手机,我们通过命令行来操作服务器,个人站点对服务器配置的要求其实也不高,你甚至可以百度到有人利用闲置的安卓手机作为个人网站的服务器;相比来说,一个公网的IP是硬性要求,网站的域名最终经过域名解析服务(DNS)实际就是指向了服务器的IP地址;
  • 域名:这个不是必须的,如果你只是打算自用,并不打算推广,在浏览器中直接输入服务器的IP地址即可访问自己搭建的网站;域名的作用就是方便大众的记忆,如果不在意这点,可以暂时不购买域名;
  • 两个小时的空余时间;

有了以上三个就可以快速搭建一个个人网站了。这里顺便一提,我的准备为:

  • 一台外网Bandwagon服务器:Centos 6 X86 bbr,1G RAM, 20G ROM;
  • 一个域名jeffdingzone.com

VPS购买

  • 国内的VPS可以考虑阿里云、腾讯云,两者对学生还有优惠,国内大多选择这两者,遇到什么问题方便解决;
  • 国外用的比较多的有Banwagon、vultr等,相对比较便宜。我购买的是Banwagon的,因为字母接近搬瓦工的拼音,所以国内基本都叫做搬瓦工。搬瓦工是美国的一家服务器提供商,国内很多人存在“翻墙”的需求,搬瓦工考虑到这部分人的需求,曾经推出过大量的低配置机器,基本上属于“翻墙”特供机器,同时,搬瓦工也很早就支持了支付宝作为支付手段,因为这一点,国内使用搬瓦工机器的人非常多,感觉这个企业也很接地气,哈哈。搬瓦工的官网网址为:https://bwh8.net/index.php;
  • 如果仅仅是建站和SS,我们选择当前能够购买到的最低配置的机器一般就可以了,在进入服务器的KVM管理界面后,我们会看到VPS的IP地址与SSH端口;已知服务器用户名、用户密码以及SSH端口的情况下,我们可以用SSH命令,或者XShell等工具远程访问我们的VPS,并利用命令行进行下一步的操作。我这里使用的是一款FinalShell软件,相比XShell,集成了FTP文件管理的部分,以及系统资源的监控界面,下载地址为http://www.hostbuf.com/
    Banwagon服务器后台KVM管理界面_SSH信息
    FinalShell界面
  • 注意,如果是初次使用VPS,建议不要滥用root用户与管理员权限,可以新建特定的常用用户,然后给该用户赋予sudo权限,具体可以百度,两三个命令即可创建一个用户。合理的规划每个用户的权限范围,后面不会太混乱。

域名购买

  • 购买域名选择也比较多,如果你是使用的阿里云或者腾讯云,本身应该提供了域名购买入口,我这里不是国内的云服务器,所以,我选择Godaddy来购买域名,Godaddy有中文官网,支持支付宝付款。购买域名的时候,可以想一些想要的域名,在官网进行检索,看是否被注册过,价格几何,域名的种类很多,‘.cn’结尾的域名是必须要在国内备案的,但是如果网站的服务器在国外,是没有办法备案的,建议选购的时候,优先选择’.com’结尾的域名。这个过程不会很困难,基本上按照网站提示,很快就可以完成。
  • 域名购买后,还有两件事是需要注意的(这两步,尤其是域名备案,可以在网站配置完成以后再进行,酌情考虑即可):
    1. 域名解析服务,也就是常说的DNS,有一些网络知识的人应该都知道,域名解析服务的作用就是一个映射关系,将你的域名与网站实际的服务器IP地址对应起来,浏览器中输入网址以后,通过该服务,检测到你的服务器地址,从而实现对你的服务器的访问与交互。域名解析的方法很多,Godaddy本身含有域名解析的部分,腾讯云的Dnspod也可以,国外的话,有cloudflare可以使用,自己测试下来,我觉得DNSpod比较好用,这个配置起来也简单,找到Dnspod官网,QQ或者微信账号可以直接登陆,然后添加新的域名解析记录,具体操作可以参见:如何使用Dnspod进行域名解析。完成后,windows系统下,可以Win+R,输入cmd,回车,召唤出命令行界面后,ping一下自己的域名,如果域名解析成功,返回结果中,会显示出解析得到的服务器IP信息。
    2. 域名备案,域名备案不是技术问题,是政治问题,国内的网站备案后,会被搜索引擎优先推送,大部分CDN服务是不支持未备案的域名的,但是我是国外的机器,所以并不需要也没有办法做这一步,所以我略过了,有需要的可以自行检索相关步骤。

WordPress博客搭建

博客系统简介与比较

  • 做一个网站涉及的方面比较多,为方便很多不了解其内部原理的人也能很快的搭建出美观易用的博客、网站,开发者们开发出了很多简单易用的博客系统,例如WordPress、typecho、emblog等,用得最多的是WordPress,WordPress基于PHP实现,网站资源多,网上使用的经验多,更新快,插件也多,bug少,是搭建博客的首选;typecho是一个国人自己开源的博客系统,也是基于PHP,相比WP,typecho非常轻量级,WP除了支持博客,还支持例如电商网站等网站类型,所以比较臃肿,而且wp的主题和插件较为繁杂,有时候会造成网站的加载时间比较久,有人做过测试,typecho的加载时间大概只有wp的一半左右,可以将其看作是一个精简的WP,并且作为专精于博客的网站系统,typecho原生的支持markdown,而Wp下的markdown使用起来就比较繁琐了,之所以最后没有选择它,是因为WP的资源更丰富,便于折腾。其他的还有HEXO,这是一个更为轻量的,感兴趣的可以了解。安装wp与typecho的步骤基本相同,这里大家可以按需选择,如果服务器配置比较差,个人建议typecho。
  • 博客系统的运行通常还依赖一些别的软件,我们将其依赖的环境打包称为lnmp或者lamp
    • l是指Linux,即操作系统为Linux,如果对应的服务器操作系统是Windows,则为wnmp或者wamp
    • n为nginx,a为apache,两者都是著名的服务器软件,普通用户两个都可以选择,nginx相对占用的资源更少,于是我选择nginx
    • m为MySql,即数据库软件MySql,数据库主要用来网站的配置信息、内容数据
    • p为PHP
  • 有了以上的一些概念后,我们就可以开始安装WordPress了

WordPres安装与配置

  • 我用的是centos,ubuntu的用户把一些安装命令替换为ubuntu的即可
  • 首先,安装基础命令
    yum -y install wget screen gcc glibc-devel iptables iptables-services
    这里的screen的作用可以在终端断开连接的情况下,不终止服务器的服务运行。安装的过程可能会比较久,为了避免因为连接断开而导致安装程序停止运行,我们需要使用该命令。
  • 然后是安装LNMP
    • 启动screen
      screen -S lnmp
    • 进入一个目录,保存下载的文件,这个看自己习惯
      cd /home/user_name/download
    • 下载LNMP并启动安装脚本
      wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
    • 安装启动以后,就会开始逐步安装nginx,mysql,php,中途会需要你选择版本和配置,如果没特殊要求的一路enter选择默认即可,内存大于1G的可以选择MySql和PHP的高版本
    • 无特殊情况的话,这部分会顺利完成,因为只是下载和安装软件,不会出现太大的问题
  • 配置MySql,配置MySql之前,最好对MySql的基本操作有一些概念,如果没有基础的,可以看:
    mysql 用户管理和权限设置,
    MySQL:创建、修改和删除表,

    所谓的配置数据库,有两步:1. 创建wordpress的数据库 2. 创建wordpress的数据库用户,并给其赋予权限,详细的命令,可以看上面两篇文章,一般步骤为:

    1. root账户登陆进MySQL,localhost代表本机地址,root代表用户,输入密码后回车,进入MySql控制台
      bash
      shell>mysql -h localhost -u root -p
      Enter password: *********
    2. 新建数据库,这里随便起一个名字,wp_db,不要忘记加分号
      sql
      CREATE DATABASE wp_db;
    3. 创建用户角色并赋予权限,在user_name处换为自己的用户名,例如wp_user,host处换成自己的ip地址,例如localhost,如果允许任意主机远程访问,可以用%passwd处是密码;第二句是赋予权限,如果那两个博文看过了,或者英语好一点的,应该不难理解,就不再说了。第三句刷新权限设置
      sql
      CREATE USER 'user_name'@'host' IDENTIFIED BY 'passwd';
      GRANT ALL ON wp_db.* TO 'user_name'@"host";
      FLUSH PRIVILEGES;
  • 下载WordPress,官方网址为:https://cn.wordpress.org
  • 进入一个目录(用于存放下载文件):
    例:cd /home/download
  • 下载压缩包并且解压缩:
    shell
    wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    tar -zxvf wordpress-4.9.4-zh_CN.tar.gz
  • 解压缩之后,目前所在的目录只是一个临时的存放的目录,我们将它们拷贝到运行目录,或者更准确的说是网站的根目录。这样,安装工作其实就完成大半了:
    shell
    cp -r ./wordpress/* /var/www/
  • 然后复制一下默认的配置文件,直接在他的基础上进行修改即可,同时修改目录的权限,让网站的用户,拥有此目录
    shell
    cp /var/www/wp-config-sample.php /var/www/wp-config.php
    chown -R www:www /var/www

    这里www:www就是网站用户角色,后面跟的目录就是之前的网站根目录,这个需要搞清楚之间的关系,自己并不一定设置这个目录为网站根目录,可以自己自行调整
  • 然后我们修改一下WordPress的配置文件,就是刚刚才复制生成的配置文件:
    vi /var/www/wp-config.php
        // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
        /** WordPress数据库的名称 */
        define('DB_NAME', 'wordpress_db');
    
        /** MySQL数据库用户名 */
        define('DB_USER', 'wordpress_user');
        /** MySQL数据库密码 */
        define('DB_PASSWORD', 'password');
    
        /** MySQL主机 */
        define('DB_HOST', 'localhost');
    

    将对应的配置进行替换即可

  • 胜利在望了,我们还需要配置服务器软件,也就是nginx,打开配置文件,进行修改
    shell
    vi /usr/local/nginx/conf/nginx.conf

    找到这部分,剩下的自己应该也能看明白怎么配置了,其实不难
    server
    {
    #需要监听的端口
    listen 80 default_server;
    #这里输入服务器的域名或者ip,建议使用域名
    #server_name 192.168.1.100;
    server_name domain.com;
    index index.html index.htm index.php;
    #这里输入WordPress主目录
    root /var/www;
    ……
    }
  • 完事以后,重启一下nginx:
    service nginx restart
    之后可以在浏览器,访问ip/wp-admin,如果已经配置了域名解析服务,就可以将ip替换为域名,访问wordpress的初始化界面;到这里,其实你已经拥有了属于自己的博客网站了,已经可以开始体验wordpress各式各样的主题模板,熟悉wordpress的控制后台,如果只是自己玩玩的话,或者精力有限,后面的部分其实可以不看。

SSL设置

其他

  • 介绍几个自己觉得比较好用的WordPress插件,目前我的版本是WordPress5.1
    • BackWPup : 这款插件可以定时备份网站数据以及数据库数据,还可以设置发送到自己指定的邮箱,非常方便
    • WP Editor.md : 这款插件是markdown编辑器,WP对markdown没有原生支持,我比较过,这款编辑器算是最好的
    • WP Super Cache : 这款插件是缓存用的,目的是为了提高网站访问速度,由于境外的服务器无法备案,无法使用国内的CDN服务,速度会特别慢
  • 推荐几个我自己比较喜欢的免费主题:
    • Minimal Grid(目前我自己在用的就是这个)
    • Boxstyle
    • Twenty Sixteen
  • WordPress有很多成熟的组件,可以玩的愉快~

最后

觉得文章对你有帮助的,欢迎扫码关注我的公众号,我会时不时的分享我的学习经验、收获。