网站建设
本教程只针对Linux服务器的用户,Windows服务器用户可以另找教程。
安装方法可以分为两种:
- 服务器管理软件配置
- 手动配置
1、服务器管理软件
在服务器管理软件中,最出名的应该是宝塔面板了。
官方网站:https://www.bt.cn/
“傻瓜式”的安装,对用户很友好,一键创建网站,一键配置SSL,一键迁移,等等。而且还有后台管理系统,可视化的监控服务器的情况:
可谓神器了,而且还有官方免费版。
2、手动配置
该方法是需要使用ssh工具远程链接服务器,进行服务器配置,需要用户有一定的Linux基础,例如Linux常用指令的使用等。编辑文本,用的最多的工具就是vim了,太高级的不用会,至少vim里拷贝,调转行,搜索,保存等常用的指令需要掌握。安装东西也都需要指令安装,不同Linux系统的指令还有所差别,日常操作如下:
相比于宝塔维护服务器,该方法更繁琐一些,但是可以让你更好的理解Linux服务器的使用。并且,看我网站的朋友应该大部分都是程序员,这些都是必备技能,维护网站可以更好的锻炼自己,何乐而不为呢?
因此,像我一样喜欢“折腾”的朋友,建议使用第二种方法配置服务器;不喜欢“折腾”的朋友,建议使用第一种方法配置服务器。
本教程以手动配置为例进行说明,想用宝塔面板配置的朋友,可以百度搜索宝塔面板安装,教程有很多。
三、服务器购买
啰嗦一堆,开始进入正题,首先服务器购买,选择哪家好呢?哪家都一样,看你心情,不过尽量选大厂的,安全一些。本网站使用的是阿里云的服务器,刚开始买个最低配置的服务器就行,以后不够用了,可以慢慢升级,本站日活跃IP1000,阿里云的最低配ECS用到现在,完全够用,不必纠结买什么配置的,直接选最低配置即可,不够用了再升级。
可以先领个券,再购买:
如果是学生可以在领券页面里找到学生专享,服务器9.5元/月,直接点击购买即可。不是学生也可以组团购买,更便宜,服务器购买就不多说了,拿钱就好了。
买完服务器,可以登录服务器提供商的控制台登录自己的服务器,不过这种方法操作不太舒适,因此可以选择使用远程登陆工具进行链接。
我们获取三个信息,才能使用远程登录工具:
- 服务器公网IP
- 服务器远程连接密码
例如阿里云ECS可以登录控制台查看服务器公网IP和远程连接密码:
远程登录工具我使用的是XShell,也可以用SecureCRT,XShell的使用可以看下我早期在CSDN写的文章:
https://blog.csdn.net/c406495762/article/details/70808051
在XShell配置里填写好主机(服务器公网IP),登录用户(root),登录密码(服务器远程连接密码)即可完成登录。
登录服务器后需要安装一些后续需要用到的指令包:
1
|
yum install vim unzip lrzsz
|
如果是Ubuntu主机,安装指令需要使用apt-get install,Ubuntu的Centos一些指令是有些区别的。本文以Centos为例说明,后续不再强调。
lrzsz可以方便我们从服务器下载文件和向服务器上传文件,服务器维护必备指令,使用方法也可以看我早期在CSDN写的文章:
https://blog.csdn.net/c406495762/article/details/70808051
接下来如果是阿里云的用户,还需要配置安全组规则:
然后添加80端口(http用)和443端口(https用),添加如下:
当然如果服务器供应商直接就开启了80和443端口,可以直接忽略此步。
OK,搞定这些,接下来我们配置服务器。
四、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、安装
使用如下指令安装:
1
|
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配置文件(可能不同系统会安装位置会有所不同):
1
|
cat /usr/local/nginx/conf/nginx.conf
|
你会看到如下内容:
上图表明,安装好的nginx将网站的根目录设置为/home/wwwroot/default,这个可以根据自己的喜好进行修改,ls指令查看该目录的内容:
用浏览器打开http://ip,可以看到如下内容:
其实这就是一个简单的网页demo了,自己随便修改index.html,就会有不同的内容。
五、Wordpress
1、Wordpress是什么?
我们先看下百度百科的解释:
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
说白了,就是一个网站开发平台,方便我们开发自己的博客,同时也有很多免费或者付费的主题,方便我们使用,可以这样简单的理解:有了wordpress和主题,你就可以像小时候装扮自己的QQ空间一样,设计自己的网站。一个简单的比喻,实际上,做好一个网站,需要我们去做的要多得多。
除了wordpress,还有emlog、Typecho等优秀的平台供我们使用,本文不再扩展他们的对比以及优缺点,想要了解的朋友可以自行百度。但是有一点需要说明,它们的主题是不通用的,如果想使用其他网站开发平台的主题,那么需要自行移植主题。曾经了解一番的主题如下:
WordPress:
知更鸟,也就是本人现在(2018.10.8)使用的主题,功能强大,适合“功能控”使用,299元且需要绑定指定域名,仅有非常少的核心代码加密,但不影响使用,可以随意折腾。
mkBlog,功能没有知更鸟那么强大,但是很精美,特别喜欢里面一些的小功能,价格也很公道,49元且不绑定域名,无核心代码加密,适合想要学习网站制作的朋友。
emlog:
Finally,全站pjax,还有网页音乐播放器,页面看着挺不错,挺漂亮,不过曾有过后门丑闻,现在已经不再出售主题,全当看看吧。
Typecho:
Pinghsu:相当精美,很喜欢这种风格,开源免费,值得拥有。
又啰嗦一堆,还是那句话,想安装其他网站开发平台的,可以找其他的相应教程了,但是强烈推荐wordpress,插件多,主题多,而且安全性高。因此,本文以wordpress的安装为例,进行讲解。
2、安装
你可以根据官方手册进行安装,也可以看我的教程,首先下载并解压wordpress安装包:
1
|
wget https://cn.wordpress.org/latest–zh_CN.zip && unzip latest–zh_CN.zip –d /home/wwwroot
|
登录MySQL:
1
|
mysql –u root –p
|
输入lnmp创建MySQL时,输入的密码,进入MySQL后,创建wordpress表:
1
|
create database wordpress;
|
输入exit退出。
接下来就是修改nginx配置文件,如果不会vim用vim,建议先看下vim操作方法,并且对nginx.conf进行备份:
1
|
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf_bak
|
操作失误了,直接使用如下指令恢复:
1
|
rm /usr/local/nginx/conf/nginx.conf && mv /usr/local/nginx/conf/nginx.conf_bak /usr/local/nginx/conf/nginx.conf
|
然后进行再次备份,继续操作即可,用vim打开nginx.conf配置文件:
1
|
vim /usr/local/nginx/conf/nginx.conf
|
找到网站根目录位置,如下图所示:
修改成如下内容:
随后,使用wq保存配置退出即可。
验证nginx是否有配置错误:
1
|
nginx –t
|
如果出现ok,successful字样,说明没有错误。没有错误,重新加载nginx:
1
|
nginx –s reload
|
修改wordpress目录权限:
1
|
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文件:
1
|
vim wp–config.php
|
将上图内容复制进去并wq保存退出,然后点击现在安装。最后就是配置用户信息了,这个是你登录wordpress用户后台的,要记住:
最后点击安装WordPress,安装成功会出现如下界面:
点击登录,输入账户密码,就可以登录wordpress后台。
六、主题
外观->主题,可以选择自己上传主题,也就是自己买国内付费主题,或者在wordpress找免费主题。比如安装好mkBlog主题后,在浏览器输入网站公网IP地址,可以看到如下内容:
世界,您好!
每个主题都有自己的配置方式和配置选项,除了学习上述内容外,还需要学习每个主题的使用,也就是看主题使用说明,这个相对来讲要容易很多,现在就可以开始你的主题折腾之旅了。
七、域名
域名是什么?可以看下百度百科的解释:
域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
直白点,就是可以通过用你想要的名字让别人访问你的网站,但是名字是唯一的,不能重复。
截至目前为止,你可以通过服务器的公网IP访问自己的网站,但是还不能通过域名网站,想要通过域名访问网站还有一些事情需要做。
1、购买域名
阿里也提供域名购买,可以找个自己喜欢的域名进行购买,域名有便宜有贵的,有的可能一年就几块钱。比如可以通过如下url查看cuijihua的域名的购买情况:
https://wanwang.aliyun.com/domain/searchresult/?keyword=cuijiahua#/?keyword=cuijiahua
域名尽量一次买好,以后一直使用,总换域名会影响网站的收录,所以域名购买要好好考虑下。
2、域名备案
域名买好了就直接能用吗?国内的一些服务器是不能的,有些国外的服务器供应商无需备案。因此如果你买的是阿里云的服务器,就需要先备案,再使用。
怎么备案?如果是阿里云用户可以通过如下链接进入备案流程:
备案多久?最快也需要近一个月的时间。所以还是需要耐心等待的,那如果等不及了,直接配置上域名会怎样?配置好几分钟后,你的网站应该就打不开了:
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://help.aliyun.com/document_detail/29716.html
八、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不尽相同。这部分内容就不许讲解了,阿里云官方也有官方教程。
最后说下我没有配置SSL的原因,我的网站是加入了七牛云的CDN服务,该服务有每个月20G的免费http流量,超过要额外算钱,如果是https流量是没有免费额度的。
我的网站只有每个文章的特色图是用到CDN,其他图都是本地的,尽管这样20G的免费http流量都不够用,更别说付费的https了。
不过还有解决办法就是用新浪图床,等哪天闲了,到时可以都改为上传到新浪上,然后再配置为SSL。
九、总结
除了购买服务器这个路子之外,其实还可以用Github搭建自己的博客,这样的好处就是服务器维护不用你管,你只负责设计主题就够了,非常省心省力,而且还有Hexo这样的优秀主题供我们使用。但是缺点也是有的,服务器配置不高,而且有些限制,不够自由,更重要的是,你说哪天Github要是被墙了怎么办?我一直有这样的担心。So,就费点劲儿吧。
PS:如果购买阿里云的轻量应用服务器,可以直接预装wordpress或宝塔面板,省去自己安装的麻烦。