前言

选择一个合适的运行网站的程序也是很重要的

选择

LAMP指的是Linux + Apache + MySQL + PHP

LNMP指的是Linux + Nginx + MySQL + PHP

当然如果你用Windows也是可以的,不过我遇到用Windows的多半用的也是IIS而没有使用Apache或者Nginx

这里就按照正常使用Linux的流程走(Windows其实没有多少可以讲的,因为基本上都是可视化操作,自己捣鼓几下就懂了)

上面两种解决方案最大的区别就是Apache和Nginx,其他都是相同的(当然如果你想搭建静态网站,那MySQL和PHP也不用安装了)

而这两个都是运行网站的关键软件,下面是百度百科对两款软件的介绍

这篇文章讲述了这俩的区别和优缺点https://zhuanlan.zhihu.com/p/467638623

我这里就简单的总结一下

Apache稳定,功能多,灵活,支持动态加载模块,同步模型

Nginx高性能,高并发,反向代理优秀,静态处理性能优秀,异步模型

其实在个人场景下这俩的使用体验可能都差不多,主要是我服务器内存不大,再加上我用的hexo,所以全是静态页面,并且对内docker容器的反向代理用的很多,所以我就选择了Nginx

这里可以根据自己要做的网站类型来做决定

MySQL(数据库)

这个就因人而异了,还是那句话,看你自己网站程序的要求,有些网站程序对数据库的版本有要求,或者不同的数据库程序,例如PostgreSQL之类的

而且这东西版本低了有些网站程序不支持,版本高了也不支持,所以请合理选择适合自己的版本

并且这玩意更换版本也是麻烦,需要全部导出数据库,更换完版本后再重新导入

数据无价

请一定做好备份并拥有可能会导致网站崩溃的觉悟

至于MySQL参数如何调整则不在本系列教程范围内,有需求的朋友请自行在搜索引擎查找资料

PHP

现在新的网站程序多半都已经支持php7以上了,可能部分老旧的还仅支持php5

高版本的php带来的安全性肯定会比老版本高一些,但是像这些底层程序,还是不要随便更换版本,如果要做版本更换

最好的办法就是在测试环境进行更换,确认无误后再上线生产环境

当然如果没有这些东西的话,在进行重大操作前拍摄快照也是一种很好的防范方式

Linux

Linux还是蛮安全的,注重一下权限管理,开启服务器防火墙并关闭除服务需要开放以外的所有端口,开启禁止ping,修改ssh默认端口并最好关闭root账户的远程密码登录功能,保留密钥登录

这样除非是你密钥文件泄露,否则暴力穷举破解根本没戏

后记

这章没有什么推荐的选项,多半是根据自己的网站程序而定,所以切勿依葫芦画瓢,请根据实际情况而定