个人网站没落了?

Jack Cui

共 6838字,需浏览 14分钟

 · 2020-11-06

点击上方“Jack Cui”,选择“加为星标

第一时间关注技术干货!



1


前言

个人网站,就如同当年的QQ空间,一个曾经很时髦的的名词,如今却逐渐被人们淡忘。 


个人网站,也早已不再是互联网流量的重要入口。移动互联网时代,是公众号、B站、知乎、头条、抖音等内容创作平台的天下。


尽管如此,仍然有一些群体愿意玩个人网站,他们是目标成为程序员的学生党,以及热爱折腾的打工人。


搭建个人网站,对于程序员来说,是一个学习 Linux 基础、数据库、前后端知识的实战项目,也可以加深对网络爬虫的理解。


我的个人网站,已经稳定运行了3年,每日访客 1000+。




写了很多成系统的技术文,当然最受欢迎的当属机器学习和网络爬虫系列文章,阅读量早已破百万。


对于程序员来说,写技术文章,是巩固梳理知识点的过程,也方便后续自己对于已学知识点的回顾。受益于个人网站,当初毕业找工作的我,也曾意外获得过一些额外的面试机会。


加我好友的读者朋友,除了会问我一些技术问题,还会问我怎么搭建和运营个人网站,怎样运营公众号。


有啥问题,给我个三连,「肤浅」的我立马写文作答。


今天,就先来篇详细的个人网站搭建教程


2


整体思路

既然要折腾,那就纯手动配置,什么宝塔面板就别考虑了,虽然简单,但也存在风险。

手动配置,需要使用 ssh 工具远程链接服务器,要有一定的 Linux 基础。例如 Linux 常用指令的使用等。

编辑文本,用的最多的工具就是 vim,太高级的不用会,至少 vim 里拷贝,跳转行,搜索,保存等常用的指令需要掌握。

安装软件需要指令安装,不同 Linux 系统的指令略有差别,日常操作如下:


本文会从服务器的选择,讲到服务器的搭建,主题的安装,再到域名备案、DNS 解析、SSL 配置

绝对,手把手的教学!

3


服务器购买

服务器购买,选择哪家好呢?

哪家都一样,看你心情,不过尽量选大厂的,安全一些。

我的网站使用的是阿里云的服务器,刚开始买个最低配置的服务器就行,以后不够用了,可以慢慢升级。

我的网站日活跃 IP 1000+,阿里云的最低配 ECS 用到现在,完全够用,不必纠结买什么配置的,直接选最低配置即可,不够用了再升级。

正好双十一,也可以趁着活动入手,低至 0.7 折,84/一年254/三年,比学生优惠还便宜。

购买链接:
http://suo.im/6epcea
或者扫描二维码购买:

买完服务器,可以登录服务器提供商的控制台登录自己的服务器,不过这种方法操作不太舒适,因此可以选择使用远程登陆工具进行链接。

我们需要先获取两个信息,才能使用远程登录工具:

  • 服务器公网IP

  • 服务器远程连接密码


例如阿里云 ECS 可以登录控制台查看服务器公网 IP 和远程连接密码:



远程登录工具我使用的是 XShell ,也可以用 SecureCRT ,XShell 的使用可以看下我早期在 CSDN 写的文章:

https://blog.csdn.net/c406495762/article/details/70808051


在 XShell 配置里填写好主机(服务器公网IP),登录用户(root),登录密码(服务器远程连接密码)即可完成登录。


登录服务器后需要安装一些后续需要用到的指令包:

yum install vim unzip lrzsz


如果是 Ubuntu 主机,安装指令需要使用 apt-get install,Ubuntu 的Centos 一些指令是有些区别的。本文以 Centos 为例说明,后续不再强调。


接下来如果是阿里云的用户,还需要配置安全组规则:


然后添加 80 端口(http用)和 443 端口(https用),添加如下:



当然如果服务器供应商直接就开启了80和443端口,可以直接忽略此步。


OK,搞定这些,接下来我们配置服务器。


4


LNMP

1、什么是lnmp?

我们先看下官方的解释:

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。


说白了就是一个自动化脚本,方便我们安装服务器需要的一些程序,本文以安装nginx+MySQL+PHP为例,进行讲解。

2、安装

使用如下指令安装:

wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

如果最后的参数是lnmpa就是nginx+apache的配置,如果是lamp就是apache的配置,本教程使用nginx,也就是lnmp。

运行脚本会出现如下界面:


目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择!

没有特殊需要,建议使用默认配置即可,直接回车或输入序号再回车,会出现如下界面:



设置MySQL的root密码(为了安全不输入直接回车将会设置为lnmp.org#随机数字)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需要Backspace键)。输入后回车进入下一步,如下图所示:



询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,(MySQL 5.7+版本无法关闭InnoDB),输入完成,回车进入下一步。



注意:选择PHP 7+版本时需要自行确认PHP版本是否与自己的程序兼容。


输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:



可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。本站用了Jemalloc优化。


如果是LNMPA或LAMP的话还会提示设置邮箱和选择Apache:



“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。再选择Apache版本:



按提示输入对应版本前面的数字序号,回车。


提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。


安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。


如果显示Nginx: OK,MySQL: OK,PHP: OK



表明安装成功。


安装好后,使用如下指令查看nginx配置文件(可能不同系统会安装位置会有所不同):


cat /usr/local/nginx/conf/nginx.conf


你会看到如下内容:



上图表明,安装好的nginx将网站的根目录设置为/home/wwwroot/default,这个可以根据自己的喜好进行修改,ls指令查看该目录的内容:


用浏览器打开http://ip,可以看到如下内容:


其实这就是一个简单的网页demo了,自己随便修改index.html,就会有不同的内容。

5


Wordpress

1、Wordpress是什么?

我们先看下百度百科的解释:

WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。


说白了,就是一个网站开发平台,方便我们开发自己的博客,同时也有很多免费或者付费的主题,方便我们使用。

可以这样简单的理解:有了 wordpress 和主题,你就可以像小时候装扮自己的 QQ 空间一样,设计自己的网站。

除了 wordpress ,还有 emlog 、Typecho 等优秀的平台供我们使用,本文不再扩展他们的对比以及优缺点,想要了解的朋友可以自行百度。

强烈推荐 wordpress ,插件多,主题多,而且安全性高。因此,本文以 wordpress 的安装为例,进行讲解。

2、安装

你可以根据官方手册进行安装,也可以看我的教程,首先下载并解压wordpress安装包:

wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip -d /home/wwwroot

登录MySQL:

mysql -u root -p

输入 lnmp 创建 MySQL 时,输入的密码,进入 MySQL 后,创建 wordpress 表:

create database wordpress;

输入exit退出。


接下来就是修改 nginx 配置文件,如果不会 vim 用 vim ,建议先看下 vim 操作方法,并且对 nginx.conf 进行备份:


cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf_bak


操作失误了,直接使用如下指令恢复:


rm /usr/local/nginx/conf/nginx.conf && mv /usr/local/nginx/conf/nginx.conf_bak /usr/local/nginx/conf/nginx.conf

然后进行再次备份,继续操作即可,用 vim 打开 nginx.conf 配置文件:

vim /usr/local/nginx/conf/nginx.conf

找到网站根目录位置,如下图所示:


修改成如下内容:


随后,使用 wq 保存配置退出即可。

验证 nginx 是否有配置错误:

nginx -t

如果出现ok,successful字样,说明没有错误。没有错误,重新加载nginx:

nginx -s reload

修改wordpress目录权限:

cd /home/wwwroot && chown -R www wordpress/ && chgrp -R www wordpress/

用浏览器打开http://ip/wp-admin/setup-config.php,你可以看到如下内容:


现在就开始,进行安装。填写信息如下:


其中,***改为你设置的MySQL数据库密码。点击提交,出现如下内容:


在/home/wwwroot/wordpress下,创建并编写wp-config.php文件:

vim wp-config.php

将上图内容复制进去并wq保存退出,然后点击现在安装。最后就是配置用户信息了,这个是你登录wordpress用户后台的,要记住:


最后点击安装WordPress,安装成功会出现如下界面:


点击登录,输入账户密码,就可以登录wordpress后台。

6


主题

外观->主题,可以选择自己上传主题,也就是自己买国内付费主题,或者在wordpress 找免费主题。

比如安装好 mkBlog 主题后,在浏览器输入网站公网 IP地址,可以看到如下内容:


世界,您好!

每个主题都有自己的配置方式和配置选项,除了学习上述内容外,还需要学习每个主题的使用,也就是看主题使用说明,这个相对来讲要容易很多,现在就可以开始你的主题折腾之旅了。

7


域名

域名是什么?可以看下百度百科的解释:

域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。


直白点,就是可以通过用你想要的名字让别人访问你的网站,但是名字是唯一的,不能重复。

截至目前为止,你可以通过服务器的公网IP访问自己的网站,但是还不能通过域名网站,想要通过域名访问网站还有一些事情需要做。

1、购买域名

阿里也提供域名购买,可以找个自己喜欢的域名进行购买,域名有便宜有贵的,有的可能一年就几块钱。比如可以通过如下url查看cuijihua的域名的购买情况:

https://wanwang.aliyun.com/domain/searchresult/?keyword=cuijiahua#/?keyword=cuijiahua

域名尽量一次买好,以后一直使用,总换域名会影响网站的收录,所以域名购买要好好考虑下。

2、域名备案

域名买好了就直接能用吗?国内的一些服务器是不能的,有些国外的服务器供应商无需备案。因此如果你买的是阿里云的服务器,就需要先备案,再使用。

怎么备案?如果是阿里云用户可以通过如下链接进入备案流程:

https://beian.aliyun.com/

备案多久?最快也需要近一两周的时间。所以还是需要耐心等待的,那如果等不及了,直接配置上域名会怎样?配置好几分钟后,你的网站应该就打不开了:


3、DNS解析

DNS又是什么?百度百科解释:

DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。


不严谨的说,DNS可以理解为通讯录,通过通讯录就可以找到你家地址(服务器IP地址)。

如果域名已经备案完成,那么就可以配置DNS解析了,阿里云配置DNS地址如下:

https://dns.console.aliyun.com/

如果没有DNS解析服务,需要先购买DNS解析服务,如果买的阿里云服务器,会免费赠送DNS解析服务,DNS解析也有很多家,不是说用阿里云的服务器就必须用阿里云提供的解析服务。

不过本人为了省事,就直接用的阿里云给的免费DNS解析,DNS解析配置如下:


刚开始配置两个记录即可,www记录和@记录,随后就可以根据域名访问自己的服务器了,例如在浏览器输入:

https://cuijiahua.com

具体怎么填写,可以看阿里云的官方视频教程:

https://help.aliyun.com/document_detail/29716.html

8


SSL

SSL是什么?官方解释:

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。


可以理解为提高网站安全,可以一定程度避免网站被运营商劫持贴小广告等。


http://xxx.com这样的就是没有配置SSL,如果是https://xxx.com这样就是配置了SSL。


1、SSL证书购买


阿里云提供免费的证书,可以通过官方渠道购买:


https://www.aliyun.com/product/cas


2、SSL配置


根据网站服务器的不同,配置方式也不相同,nginx、apache、nginx+apache不尽相同。这部分内容就不讲解了,阿里云官方有官方教程。


9


絮叨


除了购买服务器这个路子之外,其实还可以用 Github 搭建自己的博客,这样的好处就是服务器维护不用你管,你只负责设计主题就够了,非常省心省力,而且还有Hexo 这样的优秀主题供我们使用。


但是缺点也是有的,服务器配置不高,而且有些限制,不够自由,更重要的是,你说哪天 Github 要是被墙了怎么办?我一直有这样的担心。So,就费点劲儿吧。


在实践中成长,莫怕踩坑,学习是一条令人郁郁寡欢、时而欣喜若狂的道路。


成长的路上我们共勉前行。


想看什么内容,也欢迎私信我,或者评论区里留言。有三连,我就有动力


我是 Jack Cui,我们下期见!


·················END·················

推荐阅读

1

偷天换日,逼真的天空置换算法

2

明朝历代皇帝「复活」术

3

我是如何成为算法工程师的

4

打工人的薪资倒挂

浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报