从零折腾个人网站
文章目录
写在前边的话
临近毕业,心血忽然又来潮,想折腾一个属于自己的博客网站,也就是这一系列的缘由。断断续续找了好久的资料,最终也总算是折腾出来了。
为什么做个人网站?
大二便看到芯科健哥的个人网站,随意设置的网页,内嵌的音乐播放器,还有看不懂的技术文章……当时便有了建站的冲动。直至2020年初疫情禁封,大二下学期开了一门课FPGA,(两点上课,老师睡不醒要推迟两点半上课的一位神仙老师),用了好几节课讲了一个Quartus建工程,用Verilog HDL写电路并仿真的实例,最后还经常示例失败(推卸责任给ASCII码),一气之下,在CSDN写下了自己的第一篇博客–《FPGA学习笔记Project基于Quartus Prime和ModelSim任务task的使用》,借着这篇博文和正在尝试的同学交流,得到了第一次的正反馈。六月初疫情好转得以返校,本想暑假留校,奈何没折腾过变态辅导员,只好悻悻回家。整个八月备战蓝桥杯写下了17篇水文,磕时序图,手撸驱动,自己封装底层函数,移植程序框架,手绘示意图、流程图……杂七杂八整个假期接触到的都留在了CSDN。之后断断续续也一直在更新,奈何自己的技术能力实在一般,路线的学习也时断时续,这些博客更像学习笔记,记录自己的学习点滴。没有好为人师的冲动,长路漫漫,仅记录点滴。
在第三方平台记录,总像是戴着脏兮兮的镣铐跳舞。考研结束,临近毕业,又萌发了建站的想法,并付诸行动。《平凡的世界》里孙家门前的自留地,种着一家最重要的粮食,自留地的两麻袋夏洋芋换来了少平的蓝卡叽布制服……自留地里年复一年,见证了孙家一代人的分分合合。
两亩三分自留地:www.ShaoMingjie.xyz
www.ShaoMingjie.xyz
自认没有从零手撸前后端建站的能力,那就用个折中的方法聊以自慰。
一、选择网站框架
1、静态网站or动态网站
总的来说博客网站分为静态网站和动态网站:
静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。静态网页服务的实现首先需要客户机通过浏览器向服务器发出请求,然后服务器接受请求并根据请求从服务器端的网页中找到对应的页面,最后返回给客户机浏览器。这个过程中所发送的页面都是事先编辑好的,它并不能自动生成。
静态网页有以下特点:
- 静态网页不能自动更新,若要对静态页面进行更新,就要重新编写 HTML 源文件,然后再上传。因此静态网页的制作和维护工作量相当大。
- 静态网页的内容不随浏览用户、浏览时间等条件的变化而变化。无论何人、何时、何地浏览网页,它的内容都是一成不变的。
- 静态网页一经发布,无论浏览者浏览与否,它都是真实存在的一个文件,都对应一个 URL(文件在网上的地址)。
- 用静态网页实现人机交互有相当大的局限性。由于不能动态生成页面,所以用静态网页来实现人机交互是很困难的,在功能上有很大限制。
与静态网页的实现方法不同,动态网页服务的实现首先需要客户机向服务器发送请求,然后服务器根据用户请求把动态网页内部的代码先在服务器上进行相应的处理,最后服务器把生成的结果发送给客户机。动态网页相对于静态网页来说,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
与静态网页相比,动态网页有以下特点:
- 动态网页在服务器端运行,客户机上看到的只是它的返回结果,不可能看到它的源文件。而静态网页则只能通过服务器把网页文件原封不动地传给客户机,本身不进行任何处理。
- 不同的人、不同时间、不同地点浏览同一个动态网页,根据代码处理结果不同,会返回不同的内容。
- 动态网页只有经客户浏览时才会返回一个完整的网页,而其本身并不是一个独立存在于服务器的网页文件。
- 与静态网页相比,动态网页更容易实现人机交互。与数据库相联系,能实现更为强大的功能。
- 由动态网页构建的网站维护起来比由静态网页构建的网站容易,只需要更新调用的数据(如数据库内容)即可。
2、选择网站生成工具
静态网站常见的有:Hugo、Hexo
CodeSheep羊哥的两个关于建站的视频:hexo,Hugo, macOS + 全篇的命令行编辑成功劝退了我,以后再尝试叭。
动态网站的生成工具包括大名鼎鼎的—Wordpress,但是因为一些众所周知的原因(Wordpress建立的更像一个网站,不像一个博客),并不想用这个框架&工具。只想找个地方安静的写作,最终选择了 Typecho。
二、服务器
1、服务器的分类
- 独立服务器:顾名思义,就是一个躺在机房的实实在在的物理服务器,专属于你,和你家的主机没啥区别,除了24小时运行。
- VPS:(Virtual Private Server),虚拟专用服务器,是指将一个独立服务器通过虚拟化技术虚拟成多个虚拟专用服务器。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。
- 云服务器: Elastic Compute Service, ECS,看起来和 VPS 差不多,其实是有区别的。云服务器是一个大的集群服务器,相对的安全性和稳定性也要强,也有更好的灵活性,可以随时地扩充和进一步扩展。
- 虚拟主机:Virtual hosts (Vhost),相当于几台虚拟主机共用一个环境,所以环境相对固定,一般是 PHP+MySQL 的技术栈,所以相对的灵活性较差,但也带来了容易维护的特性。
各方推荐,最后选用了阿里云的云服务器。(也有选用VPS的,找到的参考比较少,奈何博主愚笨,不敢轻易尝试)
2、服务器的选购
具体服务器类型及配置的选择,阿里云的帮助文档说的很清楚,个人也正在探索中。👉阿里云学生服务器申请地址购买攻略及配置选择 总结一句话:搭建网站的话选择 轻量应用服务器
创建轻量应用服务器 新人优惠只有2核2G的配置 具体购买教程 👉 阿里云官方教程
套餐默认有60的系统盘,一般不需要再挂载数据盘[系统盘和数据盘有什么区别_云硬盘 EVS_常见问题_通用问题_华为云 (huaweicloud.com)](https://support.huaweicloud.com/evs_faq/evs_faq_0084.html#:~:text=数据盘: 云服务器 中用来存储数据的云硬盘,用来存放除操作系统之外的其他数据,类似于电脑中的D盘、E盘、F盘等。 数据盘可以在购买,云服务器 的时候购买,由系统自动挂载给 云服务器 。)
轻量应用服务器的具体配置选型:👇
确认订单,付款,之后进入管理控制台
等待片刻即可得到一个默认名称为:我的轻量 正在运行中的服务器:
3、服务器的管理
①服务器的IP地址
双击上图中的“我的轻量”服务器可以查看服务器的详情:重要信息有IP地址:公……
②服务器管理员账号root
建议点击上图中的 重置密码,服务器管理密码极其重要!! 服务器管理员账号为==root==
③域名绑定与域名解析
可以按照阿里云提示的应用搭建四个步骤进行站点设置----域名绑定,按照提示进行即可,
随后继续进行 域名解析即可
关于域名绑定和域名解析的区别:
说实话,并看不明白😑
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
④服务器防火墙管理(端口开放)
管理防火墙(对应ECS的安全组): 阿里云官方文档对 管理防火墙 的介绍
HTTP,HTTPS,SSH为防火墙预设的三个端口:
其它端口按照需要开放即可 阿里云轻量应用服务器端口开放防火墙设置教程
防火墙端口说明:
应用类型 | 协议 | 端口范围 | 说明 |
---|---|---|---|
HTTP | TCP | 80 | HTTP协议默认端口 |
HTTPS | TCP | 443 | HTTPS加密协议默认端口 |
SSH | TCP | 22 | SSH协议默认端口 |
FTP | TCP | 21 | FTP协议默认端口 |
TELNET | TCP | 23 | Telnet默认端口 |
MySQL | TCP | 3306 | MySQL数据库默认端口 |
全部TCP | TCP | 1~65535 | 全部TCP端口 |
全部UDP | UDP | 1~65535 | 全部UDP端口 |
全部TCP+UDP | TCP+UDP | 1~65535 | 全部TCP+UDP端口 |
自定义 | TCP或UDP | 1~65535 | 自定义的端口范围 |
⑤服务器远程连接
可以在阿里云的网页内直接远程连接,登录服务器管理员账号root进行服务器管理。
三、搭建Web环境
1、第三方辅助工具
①、Xshell
Xshell 是一个强大的安全终端模拟软件,用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。Linux命令行的操作易错难记,对新手极不友好,推荐使用宝塔Linux面板借助管理服务器,简单好用的服务器运维面板。
遇到的问题:xshell无法通过password登录,只能通过public key登录时,设置修改方法
使用Xshell还是终端操作,需要了解Linux命令 👉 linux 操作
②、宝塔面板
Linux命令行的操作易错难记,对新手极不友好,推荐使用宝塔Linux面板借助管理服务器,简单好用的服务器运维面板。宝塔面板是一个服务器运维面板,整个需要Linux命令行操作服务器文件的过程,可以全在宝塔可视化界面操作,同时宝塔对云服务器及文件进行监控。
宝塔官网,可以提前进入注册账号。
2、为服务器安装宝塔面板
可以使用Xshell(需登录root账号)或直接用阿里云自带的远程控制终端进入root。
由于之前给服务器预装的是Centos,是一个Linux的发行版,因此需要使用Centos安装命令
安装宝塔面板。👉宝塔Linux面板安装教程里有详细介绍。
Centos安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
3、在服务器防火墙中开放宝塔相关的端口
和宝塔Linux面板有关的防火墙端口:
8888是宝塔后台管理所需端口,
888是phpMyAdmin所需端口,
80是网站http所需端口,
443是网站https所需端口,
20和21是FTP所需端口。
其它端口按照需要开放即可 阿里云轻量应用服务器端口开放防火墙设置教程
博主遇到的一个问题👉宝塔面板没有找到站点的解决方法 可能是因为搭建了两次的原因,使用==清除浏览器缓存(快捷键CTRL+SHIFT+DEL)==可以解决。
4、登录宝塔并安装web环境
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
LAMP是指Linux(操作系统)+Apache(HTTP 服务器)+MySQL(数据库)和PHP(网络编程语言),一般用来建立Web应用平台。与Java/J2EE 架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点。与微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势。因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。 LAMP是阿里云教程推荐预装的一个环境
选择LNMP
主要归功于Nignx服务器的功能强大和性能出色,还能节省服务器内存开销(服务器配置低,用nginx效果好)。
四、安装Typecho
此处省略若干字……
写在最后的话
这篇文章远不是详细的教程,只是博主的历程记录,不满参考教程的“乱七八糟”,对知识结构进行了重新整理。越往后,越来越"言简意赅",因为越来越饿加上意志消沉,在想这篇文章存在的意义:这是否是反复造轮子?如果是反复造轮子,那反复造轮子是否有意义?
浪费了几天时间不想再折腾了,个人博客/网站的意义在于坚持记录,逝者如斯夫,该将精力转移到主线上来了。
稚晖君的新视频正好发布
“知识的积累并不是一蹴而就的,要始终保持菜鸟的心态,持续学习成长。”
“
十年饮冰,难凉热血。
学以致知,然后学以致用。
幸运的是,曾经的菜鸟像鸵鸟一样把头扎进沙漠,
然后发现在沙子下面的,是星辰大海。
”