如何从0速成为Linux VPS熟手?(揭开VPS的神秘面纱)

王志勇 发表于 2019年06月27日 11:38

使用VPS(虚拟服务器)是个人主页的最高阶段,国内使用的中文名“云主机”实际上也是VPS,再更高的级别就是独立服务器。

VPS和虚拟主机,各有优势。VPS最大的优点是能够实现很多特定的功能,可以关闭错误日志,初期需要花一定的时间学习和配置;虚拟主机优点是基本不用学习,直接上手,可以运行大多数流行的PHP程序,但是不能关闭错误日志。由于VPS可以关闭错误日志,所以总是比虚拟主机快一些

虚拟主机默认的服务器配置,Apache/Nginx错误日志、Apache访问日志、php.ini错误日志、系统错误日志,这4部分的日志全部是开启的,无法关闭,而VPS则可以通过一定的方法关闭所有的错误日志,详细步骤请见前文

这些日志,都保存在/var/log、/var/log/apache2、/var/log/httpd目录下,大家可以经常观察这些错误日志,是不是已经达到几兆、几十兆了?尤其是/var/log/btmp这个系统错误日志的文件,体积最大。由于这些文件的存在,大大影响主机的性能。一旦删除、或屏蔽这些文件,会发现网页的访问速度总是和新机一样。

如何从0速成为Linux VPS熟手?
先买个低价的主机练手,或者在本机用VMware+Ubuntu 14免费搭建Ubuntu系统来练习。Ubuntu所有版本的系统下载地址如:http://releases.ubuntu.com
路径:http://releases.ubuntu.com → 14.04 → ubuntu-14.04.6-server-amd64.iso

或者国内的Ubuntu下载镜像:http://mirrors.163.com/ubuntu-releases/

我从2002-2016年一直使用虚拟主机(2002-2009年从事ASP开发,2009年至今从事PHP开发)。VPS由于以前价格很贵,且多年来一直听说需要折腾,所以一直没有入手,也经常看到很多博友在写Linux系统的使用日记。
比如我朋友在2010年左右,入手了VPS,用来放博客,那时候3000元人民币/年。

2015年,我通过搜索,终于找到了一个国外史上最便宜的VPS,8美元/年。但由于那一年很忙的原因,当时只能按照网上的文章,只安装了一个用来上网的功能,这个VPS只是偶尔用一下,全年都在闲置,那一年的时间里,我的VPS、Linux知识基本上还是0。

2016年8月15日,才正式开始VPS的使用、调试之路。使用、调试过程中,会有大量的问题。但这些问题,是每位电脑爱好者必须学会的基本技能,无法逃避。

于是就在正式使用、调试之后,我很快产生了一个开发VPS面板的想法。所以在2016年9月1日注册了一个VPS面板的域名,这两个时间只相隔了半个月。

从0基础到半个月的时间,就能开发VPS面板?是的,你也可以做到。因为VPS面板的实质,就是调用shell命令,或者调用多个shell命令的组合。

这是因为服务器版的Linux主机(Ubuntu、CentOS、Debian等系统),它们的操作方式很类似于DOS系统。使用Linux主机,初期对于使用Windows的用户,会有一点点不习惯,因为从未接触过如此更加好用的系统。

Linux主机请忘记桌面,远程操作方式是shell命令
Linux主机,全部是通过shell命令来操作。当一个人刚购买一个VPS时,会收到一封邮件,里面有主机的SSH密码,用户名全部是root。
之后,安装2个软件,Xshell、Xftp。

Xshell软件,用来输入shell命令。Xftp,用来像FTP一样,传输文件,但是Xftp新建站点时,默认的端口是21,需要改为SFTP(22端口)。

之后,搜索百度,关键词是“系统 Apache PHP 安装”,例如“Ubuntu Apache PHP 安装”。

Linux系统下的PHP安装,在一定程度上,反而比Windows下的安装简单很多。这是因为Linux系统下的PHP,是由相关的开发者部署好的,我们只要按照相关的步骤(shell命令),执行就能全自动安装。

初期的学习、调试,建议不要用网上的一键LAMP、LNMP安装。因为这样无法学会和体验Linux下的LAMP、LNMP环境的安装原理,而必须经历手动一个一个安装。

Ubuntu、CentOS、Debian这些系统用哪个好?它们的差别,请参考前文:作为Web服务器,CentOS和Ubuntu/Debian的明显速度差异

总体来说,系统的版本越低,则越省资源,一般速度也会越快。
这些系统都是服务器版本,一些老版本官方逐渐取消了支持。

开发者建议使用Ubuntu 12最佳,或者Ubuntu 14~Ubuntu 18。
如果是放置博客等PHP程序,PHP 5.X建议用Ubuntu 14系统。
如果需要PHP 7.X的支持,可以用Ubuntu 18的系统,Ubuntu 18自带的LAMP软件源是PHP 7.2。

Linux主机的学习方法
很多的操作步骤,都需要在本机建立一个笔记本,记录调试笔记。需要的shell命令,从笔记中复制。
记录笔记,是迅速从0变成熟手、高手的重要方法。

Linux主机的第一个命令
比如我使用的Ubuntu 12、Ubuntu 14,安装Apache+PHP,第1个命令是,让软件更新,新机必须执行此命令一次才能安装软件:

apt-get update

第2个命令,安装Apache+php5,先判断有没有Apache,如果有就不安装:

a1=`which apache2`; if [ "$a1"x = ""x ]; then apt-get -y install apache2; fi; apt-get -y install php5;

就是如此简单,Apache+php5已经自动安装完毕。之后,就是相关的配置、优化工作,如前面这篇文章的详细步骤:详细步骤请见前文

如果将来我有时间能继续开发VPS面板,会在Webshu平台编写这一系列的文章,并给出很多好用的shell命令、shell优化命令,因为这个VPS面板主要是基于shell命令。

PHP安装完毕之后,请在百度搜索Apache、或Nginx的站点建立方法,很简单,修改它们的配置文件。因为时间的关系,本博客暂时没有详细步骤。

同一厂家的不同版本,安装的shell命令不同

比如Ubuntu 18和Ubuntu 14的安装命令不同。前几天我在Ubuntu 18安装Apache+php,原来的apt-get命令已经变成了apt,且安装过程有错误提示。例如这是前几天我的部分笔记,第一个命令是由于错误提示,所以必须先结束apt进程就不会有错误提示,我的部分命令的笔记,下次调试时再记录更详细的步骤:

ps afx|grep apt
kill -9 2754 (2754是进程编号PID,会变动)

sudo dpkg --configure -a
apt -y install apache2
apt -y install php7.0

最后一行的apt -y install php7.0,在Ubuntu 18.04系统下,实际安装的是PHP 7.2。

2019-06-27 22:31 本文补充更新:
上面画了删除线,今天再次重新调试安装Ubuntu 18+PHP时,发现PHP总是空白、不执行,为此浪费了2个多小时,调试、配置了很多文件。正确的调试步骤为,Ubuntu/CentOS/Debian系统下,如果是Apache+PHP组合,无论是什么版本,Apache+PHP安装成功后,在网站目录下上传一个PHP文件先测试,这时候应该能立即支持PHP。初次调试新环境的时候,这个时候应该测试一下PHP能否运行,而不要先修改Apache配置文件、php.ini。

Ubuntu 18.04+Apache+PHP,可能是由于相关开发者的一点疏忽,导致安装时会报错,比如先运行apt update、或apt -y install apache2都会有如下报错:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

正确的解决和安装步骤为:
1. 命令:
ps afx|grep apt

返回的结果中,找到这一行:
2732 ? S 0:04 | _ apt-get upgrade -y

要kill掉这一行的apt。

2. 命令:
kill -9 2732
(2732是进程编号PID,会有不同)

3. 命令:
dpkg --configure -a

执行这个命令后,服务器版的Ubuntu 18,会有几次的对话框,一路按回车、YES。

而在本机的Ubuntu 18,我今天调试中发现上面的命令1、2、3都不需要,直接用命令4即可。

4. 命令:
apt -y install apache2; apt -y install php

之后立即支持PHP。

总结:之前导致PHP不运行的原因是用的命令是apt -y install php7.0,千万不要用这个命令,虽然安装的是PHP 7.2,但是不运行,这是Ubuntu 18的一个bug;正确的命令是apt -y install php。

为什么此时用kill -9,而不用killall -9?因为此时的环境不支持killall命令。

9条评论:
1   angel2018 2019-06-27 11:52
勇哥,又是一篇非常全面关于VPS的文章。
文中说2010年你朋友,花一年3000元/1年,那时候还真贵啊,也许是硬件和网络成本降低了。不然,今天不可能这么便宜的价格买到这么实惠的VPS主机,哈哈。10年左右,差价差10倍。
对了,香港的CN2VPS用起来怎么样,勇哥,稳定吗?还有用上ubuntu 14.0或12.0了吗?

自由勇 2019-06-27 11:58
谢谢!:)
唉,那个香港VPS有可能处于半翻车的状态,暂时一直闲置。
原因一是客服已经安装了Ubuntu 12、13、16,但是一直无法连接SSH,因为DHCP的原因,已经四五天了,这个问题还没解决。客服让我暂时用Ubuntu 18,所以我只能把程序都修改成PHP 7.X才能用。

原因二是香港、日本、韩国VPS有个缺点是经常受到同行的DDOS的攻击,他们的客户群每天都说服务器又被关机了,而且据说每天都需要手动开机一次。
本来很失望,我又把这个香港VPS开机了,这两天测试一直稳定,暂时不用每天手动开机。所以,究竟好不好用,暂时没有结果。有可能翻车、商家跑路,也可能成为传家宝。

香港VPS看来只有阿里云稳定,不怕DDOS。而且他们是大公司,能及时做出反击维权。

2   angel2018 angel2018 2019-06-27 12:30
看好,要用一年或年才知道稳不稳定,大服务商,技术强还是更可靠。技术和人才也是靠强大的资金来维持。
3   猫叔 2019-06-27 13:37
一直用的CentOS系统,想换到 ubuntu 试试

自由勇 2019-06-27 23:02
很值得尝试。

4   自由勇 2019-06-27 22:45
2019-06-27 22:31更新:
上面画了删除线,今天再次重新调试安装Ubuntu 18+PHP时,发现PHP总是空白、不执行,为此浪费了2个多小时,调试、配置了很多文件。正确的调试步骤为,Ubuntu/CentOS/Debian系统下,如果是Apache+PHP组合,无论是什么版本,Apache+PHP安装成功后,在网站目录下上传一个PHP文件先测试,这时候应该能立即支持PHP。初次调试新环境的时候,这个时候应该测试一下PHP能否运行,而不要先修改Apache配置文件、php.ini。

Ubuntu 18.04+Apache+PHP,可能是由于相关开发者的一点疏忽,导致安装时会报错,比如先运行apt update、或apt -y install apache2都会有如下报错:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

正确的解决和安装步骤为:
1. 命令:
ps afx|grep apt

返回的结果中,找到这一行:
2732 ? S 0:04 | _ apt-get upgrade -y

要kill掉这一行的apt。

2. 命令:
kill -9 2732
(2732是进程编号PID,会有不同)

3. 命令:
dpkg --configure -a

执行这个命令后,服务器版的Ubuntu 18,会有几次的对话框,一路按回车、YES。

而在本机的Ubuntu 18,我今天调试中发现上面的命令1、2、3都不需要,直接用命令4即可。

4. 命令:
apt -y install apache2; apt -y install php

之后立即支持PHP。

总结:之前导致PHP不运行的原因是用的命令是apt -y install php7.0,千万不要用这个命令,虽然安装的是PHP 7.2,但是不运行,这是Ubuntu 18的一个bug;正确的命令是apt -y install php。

为什么此时用kill -9,而不用killall -9?因为此时的环境不支持killall命令。

5   自由勇 2019-06-28 08:41
很抱歉,昨天有2条评论不慎丢失,丢失的评论有可能是在这篇博客里。

因为需要更换服务器的原因,昨天本博客的程序做了大修改。
昨天修改程序当中不慎出现的bug,已经被自动覆盖,所以有2条评论永久丢失,十分抱歉。

6   执迷不悟 2019-07-09 14:40
早些年用过共享主机,无论是性能还是体验都还是不错的。

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

直接发送Trackback到此文章

说明:本评论系统不支持HTML代码。(您的留言需要审核,审核规则请见这里。)

王志勇:1980-09-26 (40周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2020年10月
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2020 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue