如何从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 (39周岁)
程序设计,前端设计。

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

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

Blog存档 Archives

2019年06月
2019年05月
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-2019 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue