本文长期更新,目前进度 5 / 24,最近一次更新2020.4.7

为什么写这篇文章

在小学的时候我就开始尝试建网站,不过那时候用的是可视化拖拽的工具,Tap.cn。令人难过的是这个网站很早就关闭了,大概是因为无法实现盈利吧,但是在Tap游玩的三年的历程中,我对于平面设计的审美水平有了质的提升,这个到时候再说哈哈。

高考后准备弄一个网站记录自己的高中生活,但是Tap倒闭了用什么呢?才想起来当时遇到过一个叫做WordPress的工具,Tap上很多朋友不满足于过于局限的功能而转向WP,但是小时候实在是什么都不懂,连服务器都不知道是啥,更别说域名解析了。于是那个暑假起就开始了各种折腾,这篇文章就用来做一下简单的总结,也算是我的收藏夹大赏。

从域名到服务器

先扫扫盲

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、Web Services 这些名词指的是什么呢?可以看看这篇知乎回答。而对于我们文章的目标——在服务器上搭建自己的应用来说,具体的编程技术还不是太重要,不过还得知道一下域名解析是什么东东。

总结一下,服务器就是一台存放在数据中心一直开机的电脑,它有自己的IP地址(当然严格来说IP地址是相对于接口的),域名解析就是将一个域名比如moecode.com指向IP,当我们在浏览器中访问该域名时,浏览器就会向服务器发送HTTP请求报文,当浏览器收到回复时就能显示网页应用了。如果还需要什么知识后面再补充。

首先要有一台服务器

当你访问阿里云的主页,你会发现有让人眼花缭乱的选项:云服务器ECS、轻量级应用服务器、云数据库、云虚拟主机、海外云虚拟主机……如果我们想要搭Web应用,可以选择轻量级应用服务器、云虚拟主机。

二者有什么区别呢?其实就是毛坯房和精装单人间的区别,轻量级应用服务器其实就是一台预装了Linux的电脑(当然也可以是其他系统或者应用镜像),可以在上面安装LAMP环境(下文会讲),然后对每个网站都开启虚拟主机virtual host,装多少个网站都没问题,直到超过配置。而云虚拟主机就相当于一个virtual host,一般只能装下一个站点。因此在阿里云上,轻量级应用服务器就比云虚拟主机贵。

但是,如果是香港节点就很便宜了,一年只需288。所以在选择配置的时候务必选择香港节点,而且还不用担心网站还没备案无法访问的问题。值得一提的是,有些应用在大陆的服务器是无法使用命令安装的,比如WordPress在大陆地区就已经无法正常访问了,PHP的Composer下载镜像也会出问题,鉴于此还是推荐香港节点。

当然你可以选择阿里云学生机腾讯云学生机,费用都是一年一百多,配置也不错。缺点就是网站需要备案才能好好访问。

如果想购买国外的服务器可以试试Vultr的日本节点,据说访问起来也挺快,一年需要400+,但是好处是按运行时间计费,一旦销毁服务器就停止计费了,避免提前付费导致的浪费。

那购买服务器的时候安装什么镜像呢?推荐centOS 7 64x。毕竟第七版上能一键安装BBR(后面会提到)。对于个人应用来说,最低配置的那一款其实已经足够了。

不得不提一下,如果你想安装的PHP应用如果需用到Composer依赖管理器,你可能会遇到各种报错QuQ。如果不能解决的话可以求助于具有图形界面的云虚拟主机,但是也不是所有图形界面面板都支持Composer,我目前知道的事Plesk面板能支持Composer,cPanel就不能。这些面板也不是个人支付得起的,所以还是需要找使用了Plesk面板的云虚拟主机提供商。如果需要了解的话你可以在文章留言板戳一下我。很好看的Flarum论坛框架就需要用Composer管理。

如何连接我的服务器

在获得服务器之后怎么登录我这台云端的电脑呢?当然是用SSH!简单地看SSH客户端就是一个远程电脑的命令行界面,如果你是macOS,那么给你推荐Termius,界面超好看Logo超可爱。Windows用户似乎也能用Termius,不过更多是用XShell。登录的方法百度搜一下就有了。登录之后就能见到熟悉的命令行界面了。

如果想要传输文件,那么还需要FTP客户端。给mac用户推荐Transmit,给win用户推荐WinSCP。百度一下也可以知道怎么下载 :-P。

给自己的服务器安装Web环境

单有一台服务器还不行,你可曾听说过别人直接访问自己的电脑?我们还需要一个完整的Web应用环境。最经典的环境莫过于LAMP(Linux + Apache + MySQL + PHP)。L指的是服务器的操作系统;Apache是Web服务器,有了它才能处理浏览器提供的对于网页的请求;M指的是数据库,当然有时也会是MariaDB数据库,用于存放网站的各种数据;PHP就是PHP啦,世界上最好的语言(雾)。

哇那么多我怎么安装呢?木得问题,木得问题,我们有一键安装脚本。

注意这里的LNMP只是脚本的名称,不是说用它安装就一定是LNMP,它也能安装LAMP环境,还有其他一些组合。不过LAMP好像真的只能装LAMP,所以我们不理它。

我用的是OneinStack所以就拿它举例。不过在安装之前我们先用下面的命令安装一下BBR,BBR是Google提出的一个开源的TCP拥塞控制算法,对提升网速效果显著。

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

如果找不到wget命令可以这样子:

yum -y install wget

你还可以参考一下这篇文章,里面提到了如何设置SSH长期在线,并用screen命令创建一个会话以避免LAMP的安装过程暂停。当然里面还提到WordPress的安装方法,非常详细。

可以选择自动安装,下面主要提下几个参数怎么选择。

oneinstack.png

  • 因为我只捣鼓过Apache的环境所以就选择LAMP吧233
  • Apache可以使用默认参数
  • PHP务必选择7.x,因为WordPress等很多应用都不支持5.x
  • PHP扩展:如果你要试试安装flarum论坛那请务必选择fileinfo,不然在服务器上自己装这个扩展能让人怀疑人生;可以加上memcached或memcache,实现缓存功能;如果将来可能要开发php应用还可以选择xdebug,可能还需要其他的扩展,我还没做过PHP开发所以也不懂嗷。
  • 数据库推荐MySQL5.7,DB的默认用户是root,密码就是图片中自己填的部分。
  • Pure-FTPd是FTP服务器,一般都会用到。
  • phpMyAdmin是一个图形界面的数据库管理工具,十分方便!
  • iptables是防火墙管理工具。
  • 记得换SSH端口,不超过65535,一般选择1000以上的。

如果是阿里云的服务器可能系统会有防火墙的限制,修改SSH端口之后无法访问,请自行搜索解决方法。

随后复制命令就可以到Termius安装啦。不过安装之前请开启screen会话,参考这篇文章

安装好之后也可以参考上面的文章做一些安全措施,比如删掉index.html文件,修改phpMyAdmin的目录等。

还需要一个域名

创建我的虚拟主机

WordPress和我的博客

从WordPress开始

Apache怎么配置HTTPS

有啥好看的WP主题

给我的WP安装插件

稍微改改WP后台和主题

以图床为核心的优化

你还需要一个图床:免费方案

图床方案2:专业对象存储

图床方案3:GitHub + JSDelivr

图床终极方案:占个位给自己

加速:我受不了我博客的速度了

WP的备份和迁移

开源风物札记

给自我介绍页面加个伪聊天机器人:botui

我想自己弄个笔记本:如何魔改docsify样式

我想自己搭个网盘:Cloudreve才不限速

我想自己搞个论坛:如果Flarum不好看我才不折腾

自己写个好看的静态网站

服务器玩累了:Push到GitHub吧


Le vent se lève, il faut tenter de vivre.