个人博客:https://xiaofengsir.com/,关注更新文章
LNMP环境的搭建与配置(一)
前言
搭建一个网站,首先要考虑的就是使用什么样的架构,网站的架构根据网站的大小和业务需求各有不同,大家有空可以去研究下比较大的网站的架构设计,是会学到一些东西的。大型网站的架构可以十分庞大复杂,但一般的个人或企业的网站可以相对简练,很容易上手。就目前流行的普通网站的架构来说,通常分为以下几个部分:
- 服务器
- 操作系统
- web服务器软件/应用服务器软件
- 数据库系统
- 开发语言
这5个部分是搭建一个网站的基础。当然这里没有提到前端的一些框架,比如目前比较流行的bootstrap,SEMANTIC UI等。
为了好理解,下面把这五个部分分别简单的做个笔记。
一. 服务器
服务器其实也是一台计算机,只不过他的硬件配置和外设跟PC是不同的,或者说要求更高一点。搭建一个网站,首先你就要有一台服务器。在云技术兴起之前,如果个人或企业想拥有一台服务器放置自己的网站,一般有两种方式:一是自己建个机房,或者机柜,自己运维;二是找IDC服务商,购买或租用一台服务器,并且把服务器放在专业的IDC机房运维。事实上,第二种方式和目前的云服务器非常类似,当然现在的云服务器的优点太多了....比如功能更多,也更灵活,使用起来变得十分方便可靠等等。因此现在基本都是在使用云服务器在搭建网站了。
- 那去哪买一台云服务器呢?
区域 | 种类 |
---|---|
国内 | 阿里云、腾讯云、百度云、移动云等等... |
国外 | AWS、DigitalOcean、linode、vultr等等... |
云服务器提供商非常多,按国内和国外来分:
区域 | 种类 |
---|---|
国内 | 阿里云、腾讯云、百度云、移动云等等... |
国外 | AWS、DigitalOcean、linode、vultr等等... |
这些都是云服务的提供商,服务的功能、配置、价格等等鱼龙混杂,各种各样。我之前写过许多主机测评的文章,也用过十几家的服务器,总结下来,这里只提一个建议:单就买国内服务器还是国外来说,如果你不想备案,可以买国外的。如果你是企业或者不介意走几个简单的备案流程,那就买国内的服务器吧。
这里推荐使用阿里云的ECS,因为它更完善一些。要注意的是,如果你想开发微信小程序,建议还是用腾讯云吧,一家子的东西,更方便一些。
另外,国外一般称云服务器为VPS(Virtual Private Server ),它和阿里云的ECS大致类似。吊诡的是,几乎每个云服务提供商的云服务器都有一个自己的名字,可能是为了做噱头吧,它们相比起来差别并不大,但是存在一些区别。除此之外,还有独立服务器,虚拟主机等概念名词,大家可以百度了解一下。
二.操作系统
种类 | 系统版本 |
---|---|
Windows系列 | Windows Server 2008/2012/2016 |
Linux系列 | CentOS、Ubuntu、FreeBSD、SUSE Linux、Debian等.. |
这里叙述的操作系统指的是服务器上安装的操作系统。如上所说,服务器其实就是一台特殊的计算机,跟PC一样,需要安装一个操作系统。在购买云服务器时,大家会遇到一个选择操作系统的步骤,拿阿里云的ECS举例,一般服务器上用的操作系统有以下两类:
种类 | 系统版本 |
---|---|
Windows系列 | Windows Server 2008/2012/2016 |
Linux系列 | CentOS、Ubuntu、FreeBSD、SUSE Linux、Debian等.. |
可以看到,目前的操作系统主要就是这两个系列,至于为什么Linux系列版本这么多?每个版本之间又有什么区别?这些问题以后再说吧。一般来说,推荐使用Linux系列的服务器,因为它开源免费,而且性能优良。版本则选择CentOS 7.x因为它的中文资料最多,遇到问题好处理一些。
三.web服务器软件/应用服务器软件
现在假设你购买了一台阿里云的ECS服务器,并且选择安装了CentOS 7操作系统。接下来要考虑的就是使用哪种web服务器软件,或者应用服务器软件,抑或者两个软件搭配使用。
web服务器软件和应用服务器软件有什么区别呢?事实上,web服务器可以理解为它只是应用服务器的一种,可以叫做:web应用服务器。也就是说web服务器作为应用服务器的一种,它只需支持HTTP协议、HTML文档格式及URL等,提供网页信息浏览服务。对应用服务器而言,它能提供除了http请求外更多的服务。
软件 | 种类 |
---|---|
web服务器软件 | Apache, Nginx, lighttpd |
应用服务器软件 | Tomcat, WildFly(原Jboss), WebLogic |
如果还是不太明白也没关系,在以后的使用中你会慢慢清晰他们之间的区别。它们通常有以下几种:
软件 | 种类 |
---|---|
web服务器软件 | Apache, Nginx, lighttpd |
应用服务器软件 | Tomcat, WildFly(原Jboss), WebLogic |
以上所有种类的服务器软件都是在Linux系列操作系统下的版本,如果你的云服务器安装了Windows Server的操作系统,你可以使用IIS作为web服务器,他们是一个体系的。
一般来说,个人的博客类网站或者企业官网类网站,只需要安装一个web服务器软件即可。也就是说,你需要在Apache, Nginx, lighttpd这类软件中挑选一种提供web服务就可以了。它们之间各有优缺点,这里推荐使用Nginx,综合的来看,它更优秀一点。
4. 数据库系统
数据库系统其实就是一套用来管理网站数据的软件。数据库管理系统的种类非常的多,下面简单列取几种:
名称 | 适用的操作系统 | 是否免费 |
---|---|---|
MySQL | 跨平台 | 已被甲骨文收购,目前开源、免费 |
Mariadb | 跨平台 | 开源、免费 |
SQLServer | 跨平台 | 个人版和开发版免费,标准版和企业版收费 |
Oracle | 跨平台 | 收费且昂贵 |
由上表可以看出数据库管理系统基本都可以在Windows Server系列和Linux系列的操作系统下使用。综合的来看,我们希望找到一个开源,免费,对Linux系统十分友好的一款,因此推荐用Mariadb。如果想了解更多的信息可以百度搜索一下,这里不再赘述了...
5. 开发语言
主流的网站开发语言有PHP, JAVA, ASP等。他们之间的区别以及各自的优缺点网上有很多介绍。就目前使用来说,大型网站如淘宝,京东等使用的是JAVA,中小型网站或者博客类的网站PHP占据着主流,尤其是目前各式各样的CMS,例如WordPress, Dupal, Discuz, Typecho, Flarum等等....都是使用的PHP作为开发语言。因此对于初学者,建议还是选择PHP语言吧,坊间有句话:“PHP是最好的语言!”,可见一斑。
- 总结:现在你应该对搭建一个网站有了个大致的了解,姑且以搭建一个个人的博客网站为目标,我们选择 阿里云的ECS(服务器)+CentOS(Linux操作系统)+Nginx(web服务器)+Mariadb(数据库管理系统)+PHP(开发语言) 这样的一套“配置”吧。对了,不知道你有没有发现,它们的首字母正好是 “LNMP” ~