我本以为搭一个自己的网站是件很麻烦的事,后来了解到其实这方面已经发展的比较成熟了,有很多人进行了研究,也有一些很成熟的工具,所以,哪怕对于一个小白来讲,从零开始搭建一个自己的网站也成为了可能。本文以(林和这样的)小白的视角,介绍了建站的详细过程。看完之后应该是可以按图索骥,建出自己的一个网站的。
当然,在我的文章中,很多地方的处理并不是唯一的,如果你想获得更加细致的了解,强烈建议阅读这两位前辈的文章:
jwcyber:VPS+LNMP+WordPress搭建个人网站/博客
SEOIMO:WordPress建站: 便宜VPS+LAMP搭建+博客安装/优化教程
购买VPS及域名
什么是VPS(简单的描述)
VPS(virtual private server)虚拟专用服务器,是将一台服务器分割成多个虚拟专享服务器的服务。它在物理层面并不是一台实际的服务器,是通过一些技术(容器技术和虚拟化技术)将一台实际的服务器划分成很多小的部分(VPS),每一部分可以安装独立的操作系统,安装软件,分配独立的公网IP,独立重启,并且不同的VPS之间的资源(包括磁盘资源、CPU资源等)不会相互影响,这是它比传统的虚拟主机的最大优点。传统的虚拟主机的资源是会相互影响的,如果和你使用同一台物理服务器的人占用了过多的资源,你就没的用了。
现在市面上有很多不同的VPS提供商,一般来讲,价格还是比较亲民的。
选购VPS
常见VPS简介
常见的VPS提供商有Vultr BandwagonHost(搬瓦工)Linode 等,下面简单地介绍一下。
(因为林和真正用过的只有Vultr所以对它了解的比较多)
Vultr:
一家后起之秀,新晋VPS提供商,但是从它的技术实力上来看,是非常了不得的,加上有很大的价格优势(1CPU+20GB SSD+512MB内存+500G流量,2.5美元每月),吸引了非常多的用户,同时也导致了许多提供商降价,不过这对于消费者来说是件好事就对了。在全球有很多节点(IPv4&IPv6双栈),可以在买之前去这里测试一下连接速度。支持免费服务器快照备份及恢复。比较可惜的一点就是,刚才说的那个很划算的套餐已经售罄了,不过别的套餐依然非常划算。而且付款方式支持信用卡、支付宝、PayPal、比特币(??),支持支付宝这一点可以说是很不错的。
BandwagonHost:
老牌主机提供商,价格便宜、且依托的商家比较靠谱,至少关注这么多长时间没有看到要跑路的迹象,而且我们可以看到官方一直在升级和拓展产品质量。有各种各样不同的类型和节点可选,在网上还可以找到各种各样的优惠码,买的时候还可以打折,同样支持支付宝。
Linode:
也是一家老牌,不过实际上我在网上查的时候很少看见它(貌似是因为价格的竞争力不强?)。我的了解也不多,这里也没办法做什么介绍。
VPS购买
(建议按月付费,万一出了什么问题还不至于亏)
为了方便读者(为了赚Vultr邀请新用户注册的返现),贴出链接:
Vultr:https://www.vultr.com/?ref=7266465
(这是林和的邀请链接,通过这个链接注册邀请者可以获得奖励,就当支持一下林和啦 ( ^∀^) )
搬瓦工:https://bandwagonhost.com/
接下来的有关购买的部分,都以Vultr举例
进入Vultr官网,注册账号(新注册账号充值10美元才能开始使用)
开始部署
点击右上角的带加号的蓝色圆圈,开始部署(deploy)
第一个选项是选择地点,照理来说,日本的节点应该是延迟最低的,可是实际上访问速度不太理想,这里来可以选择新加坡、洛杉矶或者硅谷的节点,选择之前可以先去测一下速。
接下来会选择服务器的操作系统类型
林和在这里选择的是Ubuntu,其实选什么都可以,一般来讲Ubuntu比较适合新手使用(可以看一下centos vs ubuntu server),只是注意Windows是需要付费使用的。
可以看到那上面有一个应用(application)的选项,其实里面直接就有WordPress,不过不知道为什么只能安装在CentOS上
上面那snapshot选项,就是快照,如果你曾经使用一个(部署好了的)VPS创建过快照,可以直接在这里选择,可以直接将原来的服务器的所有东西直接恢复。我们还可以利用这个功能,将服务器在不同的机房迁移。
再往下就是选套餐了,一般个人用的肯定是第一行的哪些套餐啦。。。每个选项都标出了配置,包括固态硬盘(SSD)、CPU、内存(memory)、每个月的流量(bandwidth),其中5美元的套餐流量就已经是1000G每月了,所以流量什么的不太需要考虑。可以看到,服务器的计费是双轨制:按小时收费,每月封顶,不过。。。0.007*30*24=5.04 但是如果要是临时用一下(比如暂时搭一个mine craft服务器),按小时计费的方法还是很好的。
继续向下,可以看到附加选项(additional features)可以免费添加IPv6地址,用不到的话可以不选,不过国内是打算开始大幅推进IPv6了,加一个也没坏处,如果是有IPv6的校园网、科研网,那就更应该选了。同时这里还有DDoS保护,这个对于个人网站来一般说是用不着的东西。
后面的东西,像启动脚本、SSH密钥这些,如果不懂的话,可以直接跳过,这并不会影响你的服务器部署,而且它们中的大部分都可以在服务器搭好了之后改,所以也不用担心什么。
当你把所有的东西都选择好了之后,点击现在部署(deploy now),就可以直接开始了。会在接下来的页面看到这个过程,几分钟之后,一切就绪,可以看到服务器处于正在运行的状态(running)。点进去可以看到详细信息。
这里显示了基本的信息
选购域名
(这两步也可以先跳过,等到把VPS先弄熟悉再来)
域名可以在阿里云买,也可以在国外的Godaddy买
区别嘛。。。在国内买需要实名备案(阿里云国际站不需要),比较麻烦,但是肯定支持支付宝什么的,而且国内的域名解析对于国内的访问要好一点,不过我们也可以想办法是国外买的域名在国内可以正常访问。Godaddy现在也是支持支付宝的。据我自己的挑选经历,阿里云的要贵一点点(原来的价格优势呢??)。
进入到网站之后就可以在搜索框查询你想要的域名是否已经被注册,以及未被注册的域名的报价
需要注意别被坑的一个地方就是,阿里云给的报价会用一个大大的数字标出来,但那是第一年的价格,第二年的价格用比较小的字体标在一旁,对于大多数域名来说,续费和第一年没什么差距,但是有的域名差别会很大,所以别被0.99美元一年的便宜域名给坑了,说不定第二年就要20+美元
域名解析的基本知识以及设置
(此处以Godaddy举例)
购买域名之后,登陆自己的账号,就可以看到这样的页面
选择其中的DNS,进入域名解析设置
有关域名解析的设置,如果没有点相关知识的话,肯定是没办法设置的,可以参阅:
简单地说,就是对A类地址解析出一个IP,非A类地址会继续解析,直到解析出A类,所以A类要直接填自己的VPS的IP。需要注意的是,转发(forward)在国内是遭到屏蔽的,所以在Godaddy上不要设置为转发。
Godaddy可以设置两个解析服务器(name server),这里最好不要选默认的两个,因为在国内访问比较慢,可以保留一个默认的服务器,把另一个改成dns1.hichina.com或者dns2.hichina.com等中国境内的服务器。
域名解析的设置需要一点时间才能生效
对VPS进行简单配置
连接到自己的VPS
虽然Vultr的网站上有可以直接通过网页登陆并控制VPS这种操作,但是这并不是一种很好的办法。这里我选择使用putty来连接自己的服务器。
这是使用SSH来连接的,在VPS的页面上,可以看到自己的SSH密钥(一般默认的密钥很复杂,不过这是可以在服务器中修改的)
输入自己服务器的IP,以及SSH端口(默认是22),选择连接类型为SSH,点击open就可以登陆了。这个地方可以把这个设置保存一下,毕竟以后会经常用到putty
点击以后会进入登陆界面,填写login as:root 确认,此时会要求输入密码,可以直接把刚才的密码复制,然后右键粘贴(不是CTRL +V),不会显示已经输入多少字符
登陆成功之后应该会像这样:
Ubuntu的简单命令
cd + path,可以是绝对路径或相对路径,例如
cd /home/wwwroot cd ./www.linhelurking.me
dir 显示当前目录下的文件/文件夹
mkdir 创建一个目录
vi + path 使用文本编辑器打开某个文件,它有一个加强版vim。这是一个经常要使用到的工具,此处介绍一下基本的用法。
进入编辑器之后,默认的状态是不能编辑的,此时需要敲一下键盘上的insert,进入插入模式,此时可以编辑文件里的内容。编辑完毕之后,按esc进入底行模式,输入“冒号”:后面接一个字母表示不同的操作,如
:w 表示write,将刚才的修改写入
:q 表示quit,退出编辑器,:q!将会强制退出(不保存)
PS:Ubuntu下所有的命令,都可以在后面接上一个参数 --help执行来查看帮助,所以不用太担心
为VPS开启Google BBR拥塞控制算法
(神奇的Google 黑科技)BBR是一种在网络环境不太好的时候尽量跑满带宽降低延迟的算法,已被Google开源。可以对访问速度实现明显的提高(在许多测试中,这种提高是数量级的提高)。现在,Google已将这个算法部署到了YouTube等服务器上。
以下内容参考自https://xiaozhou.net/enable-bbr-for-vps-2017-06-10.html
升级内核至最新
由于BBR是一种比较新的算法,需要Linux内核版本在4.9以上,当然了,如果你是比较新的操作系统(比如Ubuntu 17),kernel应该是高于4.9,那么可以不用升级了
检查内核版本
uname -r
Ubuntu
下载最新内核(最新内核看这里,将相应的版本号替换一下即可)
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.4/linux-image-4.11.4-041104-generic_4.11.4-041104.201706071003_amd64.deb
安装内核(不懂的命令可以 --help)
dpkg -i linux-image-4.*.deb
清理不用的旧内核(可选)
apt-get autoremove
更新 grub 系统引导文件并重启
update-grub reboot
CentOS 7
下载最新内核(最新内核看这里,将相应的版本号替换一下即可)
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml -y
查看内核是否安装成功
rpm -qa | grep kernel
删除旧内核
rpm -ev 旧内核
更新 grub 系统引导文件并重启
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' grub2-set-default 0 #default 0表示第一个内核设置为默认运行, 选择最新内核就对了 reboot
开启BBR
确认内核支持BBR之后执行 lsmod | grep bbr
若结果中没有tcp_bbr则先执行
modprobe tcp_bbr echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
执行
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
执行sysctl -p
保存生效
执行
sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control
第一条命令将返回可用的算法,第二条返回正在使用的,如果返回中都有tcp_bbr模块,就说明已经成功开启了这项Google黑科技了
(在搬瓦工的某些操作系统中是预装了BBR的)
在VPS上安装LNMP环境
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构
(现在看不懂这句话没关系,用着用着就懂了)
安装过程是交互式的,不用担心不懂
安装LNMP
以下内容直接整理自LNMP官网
系统需求
- CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版
- 需要5GB以上硬盘剩余空间,MySQL 5.7,MariaDB 10至少9GB剩余空间
- 需要128MB以上内存(如果为128MB的小内存VPS,Xen的需要有SWAP,OpenVZ的至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
- 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存!
- VPS或服务器必须已经联网,且必须设置的是网络源不能是光盘源,同时VPS/服务器 DNS要正常!
- Linux下区分大小写,输入命令时请注意!
- CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用!
LNMP一键安装包 V1.4 已经在Vultr、遨游主机、搬瓦工、PhotonVPS、OneAsiahost新加坡VPS、BudgetVM、DigitalOcean、LocVPS、Linode、DiaHosting、KVMLA、景文互联、RamNode、BuyVM、80VPS、快易互联、阿里云等众多VPS的CentOS 6-7、RHEL 6-7、Fedora 21-23、Debian 7-9、Ubuntu 10.04-17.04的32位和64位系统上测试通过(CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用,Debian9上Apache需选2.4.26版本以上,深度/deepin只能使用服务器版,桌面版勿用!!)
安装步骤
screen
使用putty或类似的SSH工具登陆VPS或服务器;
登陆后运行screen -S lnmp
如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细内容参考screen教程
下载并安装LNMP一键安装包
您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)或者完整版(推荐国内VPS使用,国内用户可用在下载中找国内下载地址替换),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。深度/deepin只能使用服务器版,桌面版请勿安装!!
安装LNMP稳定版
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
运行上述LNMP安装命令后,会出现如下提示:
目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择!
输入对应MySQL或MariaDB版本前面的序号,回车进入下一步
需要设置MySQL的root密码(不输入直接回车将会设置为root)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需要Backspace键)。输入后回车进入下一步,如下图所示:
询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,输入完成,回车进入下一步
注意:选择PHP7等高版本时需要自行确认是否与自己的程序兼容
输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装
提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响
安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.4 completed! enjoy it.的话,说明已经安装成功 enjoy it
添加虚拟主机
一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问
虚拟主机管理基本命令介绍:lnmp vhost {add|list|del}
如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除
执行:lnmp vhost add 出现如下界面:
这里要输入要添加网站的域名,我们以添加www.vpser.net域名为例,如上图提示后输入域名 www.vpser.net 回车后提示
这里询问是否添加更多域名,直接再输入要绑定的域名,这里我们将 vpser.net 也绑上,多个域名空格隔开,如不需要绑其他域名就直接回车。
(注1:带www和不带www的是不同的域名,如需带www和不带的www的域名都访问同一个网站需要同时都绑定)
(注2:在jwcyber的教程中,写的是不绑定,然后重定向,但是他当时使用的是lnmp1.2,那个版本不支持绑定多个域名,后来jwcyber也在文章中说不必使用重定向)
(注3:设置不同的域名的时候注意修改号域名解析的设置)
下面需要设置网站的目录
网站目录不存在的话会创建目录。也可以输入已经存在的目录或要设置的目录(注意如要输入必须是全路径即以/开头的完整路径!!!)。不输入直接回车的话,采用默认目录:/home/wwwroot/域名
接下来程序会询问是否允许rewrite
lnmp自带了几种常用网站的伪静态规则,因为我们要安装的是wordpress,按照提示直接输入wordpress就可以了
接下来是询问是否允许访问日志
如启用日志输入 y ,不启用输入 n 回车
如果VPS的硬盘容量小的话,不建议开启访问日志
如果启用需要再输入要设置的日志的名称,默认日志目录为:/home/wwwlogs/ 默认文件名为:域名.log 回车确认后,会询问是否添加数据库和数据库用户
如果需要添加数据库输入 y ,不添加数据库输入 n 回车
如果要添加,需要先验证MySQL的root密码(注:输入密码将不显示)
提示Enter database name: 后输入要创建的数据库名称,要创建的数据库用户名会和数据库同名,回车确认
提示Please enter password for mysql user 数据库名: 后输入要设置的密码,回车确认
提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机
添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图:
其实,刚才的设置都是可以通过修改配置文件来修正的,所以不用纠结半天,配置文件路径
/usr/local/nginx/conf/vhost/域名.conf
LNMP的使用
使用LNMP会出现的问题及其解决
LNMP禁用了scandir这个函数,而WordPress需要调用这个函数才能做到读取已经安装的主题和在线修改网页代码,所以我们要把scandir函数从禁用列表里删除
vi /usr/local/php/etc/php.ini
LNMP相关软件目录及文件位置
LNMP状态管理命令
安装WordPress
首先,你需要到WordPress的官网上去下载文件
上传WordPress文件
使用FileZilla将文件上传至/home/wwwroot/域名,FileZilla支持sftp,也就是和刚才的SSH很类似,在 文件>站点管理器 把IP和端口(默认22)输入就行
这里建议把所有文件打包之后上传,否则全是小文件,将会上传很久很久,只是如果打包上传的话,记得解压
unzip file.zip -d destination_folder
参数 -d 表示指定解压的路径
注意:(假设域名为www.linhelurking.me)解压后的文件必须直接位于/home/wwwroot/www.linhelurking.me 下,否则会报错
安装
打开浏览器,输入你的域名,如果出现的是LNMP界面,则在VPS的管理界面里面重启一下VPS;如果打开是WordPress的界面,说明之前的操作都没有问题,可以开始设置WordPress了
按照提示输入信息即可
提示权限问题/创建目录失败
在网上,很多人对于这个问题的解决办法都是直接赋予777权限(如果不明白这个权限的含义请自行查阅官方文档或者Baidu/Google),这是不好的一种做法。
出现无法创建目录的确是权限的问题,但是,不是目录读写的权限,而是用户组的问题
在default目录下 输入ls -l wordpress 可以看到用户组,默认的用户组都是root
修改
chown -R www:www wordpress
输入上述内容后,再检查一下
ls -l wordpress
写在最后
完成以上的全部步骤,你就已经拥有了自己的一个网站(如果你爱折腾的话这只需要一两天就能弄完)
网站最重要的还是内容,有了一时的心血来潮建站,更要有维护网站,持续输出内容的耐心
Comments | NOTHING