linux3

Linux运维技术实战

一.Linux的网络配置和SSH协议

1.中国互联网和服务器的发展史

有人说中国的游戏发展史就是中国互联网的发展史,这是为什么呢?

在中国早期的互联网发展比较接近欧美一些开放的国家,很多人可以在家里自己架设服务器并且可以通过一种叫花生壳的工具让别进行访问.

1997年-2000年间当时在中国大陆非常流行一款叫cs(半条命之反恐怖精英)的网络对战游戏,在那时开始有很多人开始搭建一种叫游戏私服的东西进行私人经营游戏谋取利润的活动(其实今天这种行为依然存在,但这是严重的犯罪行为,最高刑罚是无期徒刑,所以我们千万不要以身试法,正规的游戏公司一般有监护工程,但非法的是没有的,应聘时可以注意一下).

当时并没有规定架设私服是违法的,但由于在1999年中国出现了的抵制活动,份子架设了大量的私服导致产生了某些言论局面,为了控制言论,后来中国宪法和互联网法规定搭建私服是违法的,但当时依然没有所谓的互联网知识产权法和互联网版权法,因此没有规定游戏需要备案文网文和增值服务认证才能运营,于是导致了很多人以所谓工会形式的方法经营游戏私服,直到陈科事件的出现,这事件发生在2005-2006年间,事件非常严重,导致了现在今天服务器必须通过正规的备案渠道注册或者从正规的供应商中获取才能开设服务器运营,于是在中国大陆现在服务器必须存在于机房当中进行统一管理,并且需要通过备案进行服务器开通,否则均属违法行为,当然购买境外服务器是可以不用备案的,但网络速度很慢.

虽然中国的互联网有众多的限制和各种麻烦繁琐的手续,有些甚至不可理喻,中国不能自由访问境外的很多著名网站,但中国的互联网发展尤其是游戏和电商呈现一片欣欣向荣的景象,成就了很多屌丝逆袭的案例,也造就了很多就业的机会,因此在互联网行业当中有人把中国的互联网称为"天朝神迹",这就是现今中国互联网服务器的现状.

对于学习Linux服务器的人来说,尤其是初学者,我们都会有一个这样的问题,既然服务器在机房当中,那么我们应该如何才能管理到机房中的服务器呢?

这个答案专业的回答就是使用网络ip进行ssh协议连接进行管理

2.Linux的静态ip配置

静态ip是不会发生改变的唯一ip地址,用于被ssh工具(putty,xshell)连接使用,方便我们管理服务器,因此如果希望设置静态ip那么我们就需要遵循以下的步骤:

 

1步:确定要设置ip是192.168.84.197,【最后一个字段大于128】然后还要确定当前ip是否可以使用,因此我们需要使用ping命令来查看当前ip是否可用,在windows输入cmd命令打开docs命令界面

 

 

 

于是在当前界面当中输入ping命令+你要设置的ip地址

 

 

如果出现无法访问目标主机,就证明当前ip没有被任何人使用,所以你就可以使用当前这个ip来作为Linux服务器的静态ip地址

 

2步:把当前地址设置到linux网卡配置文件当中

网卡配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0

使用vim打开网卡配置

 

 

文件内容如下:

 

 

以上内容一共有7行

1行:表示linux操作系统网卡的名称

2行:表示linux操作系统的网卡物理地址

3行:表示上网的类型

4行:是Linux操作系统的系统id唯一值

5行:启动Linux的时候是否启动网卡,no表示不启动网卡,yes表示启动网卡,一般设置yes

6行:代表linux是否支持nfs网络安全协议控制,一块一般默认设置为yes即可

7行:表示ip地址的类型是什么,dhcp表示动态ip,static表示静态ip

以上7行是网卡的基本配置信息,然而仅凭这7行信息不足以配置linux的网络,所以必须加入两个选项分为IPADDR(表示ip地址),NETMASK(表示网关地址,通常255.255.255.0)

 

3步:设置linux服务器的静态ip地址192.168.84.197

使用vim网卡配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0

修改内容如下:

 

 

修改完成后,保存并退出(:x)

4步:使用service network restart命令重启网卡服务,执行命令如下

 

 

如果没有报出任何错误,那么就代表静态ip设置成功,如果在windows当中使用ping命令,会发觉192.168.84.197可以被ping通

 

 

3.ssh协议和ssh工具

ssh服务器协议是管理Linux一种安全加密协议,它是众多协议当中的一种,它可以实现连接,上传和下载功能,一般用于服务器和ftp的操作当中,ssh服务有很多实用的工具,世界上最出名其实有2款(Putty,Xshell)

①使用puttyssh来连接Linux服务器,输入信息如下

 

 

点击open按钮后,出现以下界面,输入root用户名和root密码,输入一些基础管理命令,如果能够成功操作linux服务器就证明连接成功

 

②使用Xshell连接Linux服务器

安装xshell其实跟安装qq没有太大的区别,只不过安装的时候要选择学生和家庭免费版,否则是需要付费的,免费版没有技术支持和更新的,使用xshell的连接步骤如下:

1步:输入ssh要连接服务器地址

 

 

在弹出的界面中选择接受并保存

 

 

2步:输入root的密码

 

 

如果输入的密码正确,确定后就可以进入shell的很窗口,输入相关管理指令如果可以正常的返回,那么就代表xshell连接Linux服务器成功

 

 

 

在日常的开发当中根据个人的喜爱和习惯选择使用xshell或者putty,一般使用xshell比较多,但是如果希望操作memcached这样服务器,建议使用putty,因为putty操作memcached比xshell人性化得多

4.使用网卡共享

由于我们的虚拟机一台虚拟的计算机所以虚拟机当中其实并不具备真正的网卡设备,因此会导致有两个情况出现,这个2个情况是比较随机的,因为根据windows操作系统的不同而发生原因就不同,不过总结来说会出现(1)Linux可以被xshell或者putty正常使用静态Ip连接但是linux无法进行上网操作(2)Linux无法使用静态Ip被xshell或者putty正常连接,也无法上网.如果为解决掉上述两个问题,我们就需要使用网卡共享,网卡共享是让虚拟机共享了真机当中的网卡设备,唯一的缺点就是会导致ip为动态ip,并且会在虚拟机中添加了多一块网卡,其实设置步骤如下:

1步:选择master虚拟机->设置

 

 

2步:选择网络适配器然后选择添加按钮

 

 

3步:添加网络适配器(共享真机中网卡硬件到虚拟机当中),点击下一步

 

 

4步:选项nat模式进行ip共享,这样linux的虚拟机中就会共享当前windows的网卡ip地址

 

 

完成后,发觉虚拟机就会多了一个块网卡

 

 

点击确定后,虚拟机就会进行自动的配置过程

5步:尝试访问互联网,如果能够成功打开,那么就证明网卡共享是被成功配置了

 

6步:如果你使用ifconfig命令,该命令用于查看Linux中网络配置信息,您会发觉有eth0和eth1两个选项,分别代表Linux的默认网卡名称(eth0)和共享网卡名称(eth1),执行命令如下:

 

 

 

5.ssh服务详解

Red Hat系列Linux当中Centos6的系列默认的情况是开启了ssh服务,其名称为sshd,但是如果使用Centos7这样的操作系统或者7以上版本操作系统,那么ssh服务器默认是关闭的,你因此我们需要学一组开启,重启,关闭和查看ssh服务的命令:

命令格式:service sshd [start | restart | stop | status]

service sshd stop 关闭ssh服务器,putty和xshell将失去链接

service sshd status 查看状态

service sshd start xshell和putty将可以链接

service sshd restart 重启服务

ssh服务器除了可以链接服务器以外可以用来配置ftp上传服务器

 

.Linux的文件和目录权限

1.Linux的文件类型

Linux系统中其实林纳斯托瓦茨最早只定义了5种类型,但在CentOS6.5中Red Hat公司把文件类型定义为6种,比原作者定义多了sock类型的文件:

 

 

其中红色标记的3种是开发当中最常见的三种文件类型

2.Linux中的权限简介

Linux是一个多用户多任务的操作系统而且它把一切都看成了目录和文件来对待,为了安全性Linux把这些文件和目录分配了权限.在现实开发当中,我们常常会听到运维工程师说一种这样的数字组合:777,666,755,644

这些数字不是密码,而是Linux的权限. 

3.Linux中的权限分类

r (read),可读权限,权重值4

w(write),可写权限,权重值2

x(execute),可执行权限,权重值1

注意:没有权限用(-)横杠来表示,可以把没有权限的权重值当作0来对待

 

4.Linux的权限表达式换算方法

原则:Linux权限换算的顺序必须遵循读写执行(rwx)的顺序进行换算,不遵循该顺序表达都是无效的权限换算表达式.这个概念其实初学时非常抽象,所以日常需要通过更多的例子进行换算才能熟练和理解.

例子1: 666的权限表达是怎么理解的呢?

6 = 4 + 2 + 0 = r + w + - = rw-

666 = rw-rw-rw-

例子2: 777的权限表达是怎么理解的呢?

7 = 4 + 2 + 1 = r + w + x = rwx

777 = rwxrwxrwx

例子3: 755的权限表达是怎么理解的呢?

7 = 4 + 2 + 1 = r + w + x = rwx

5 = 4 + 0 + 1 = r + - + x = r-x

755 = rwxr-xr-x

例子4: 644的权限表达是怎么理解的呢?

6 = 4 + 2 + 0 = r + w + - = rw-

4 = 4 + 0 + 0 = r + - + - = r--

644 = rw-r--r--

例子4: r-xrwx-wx的权限表达是怎么理解的呢?

r-x = 4 + 0 + 1 = 5

rwx=4 + 2 + 1 = 7

-wx=0 + 2 + 1 = 3

r-xrwx-wx = 573

例子5: rwwrxxwwx的权限表达是怎么理解的呢?

以上权限永远不会存在,因为它是错误的权限表达

例子6: 684的权限表达是怎么理解的呢?

以上权限永远不会存在,因为它是错误的权限表达

例子7: 520的权限表达是怎么理解的呢?

520 = r-x-w----

520权限虽然是正确但是运用极少

5.Linux中的权限表达公式

Linux权限表达的公式一定是10个字符组成,格式为:文件类型 + 权限表达式

例子1: 把目录表达其权限为777

drwxrwxrwx

例子2: 把php文件表达其权限为644

-rw-r--r--

例子3: 把软链接文件表达其权限为755

lrwxr-xr-x

6.查看权限的命令ls -lh详解

使用ls -lh获取目录下的信息如下:

 

 

从上图可知,一共有7列:

1列(drwxr-xr-x):表示linux目录或者文件的权限表达式

以上表达一共有10位字符:

1位(d):表示文件的类型,d表示为目录

2-4位(rwx):表示文件或者目录的拥有的权限,本例表达可读可写可执行

5-7位(r-x) : 表示文件或者目录所属的权限,本例表达的权限可读可执行

8-10位(r-x):表示文件或者目录的其他人的权限

2列(2) : 表示linux的链接总数,该总数已经被弃用了,所以整个选项不准确也无需理会它

3列(root) : 代表文件或者目录的拥有者是谁,在默认情况下谁创建了一个文件或者目录谁就是整个文件的拥有者

4列(root) : 表示文件或者目录所在用户组,也称为所属组.

5列(4.0k) : 表示目录或者 文件的大小,不过Linux表示这个大小默认是使用字节表达

6列(8月  18 20:02):文件创建或者更新的日期

7列(桌面) : 表示目录或者文件的名称是什么

7.拥有者,组内成员,所属组和其他人(组外的成员)概念

 

 

8.拥有者,组内成员和其他人的关系

 

 

 

9.权限管理命令

chmod 命令

命令作用:修改目录下所有文件或者目录的权限

命令格式: chmod [-选项][权限代码][目录或者文件的名称]

-R选项 : 递归修改目录下所有文件或者目录的权限

例子1: 修改1.php文件的权限为777

执行命令 : chmod -R 777 1.php

 

 

 

例子2: 修改/root目录下所有的文件为777,并且把所有的子文件和子目录都修改为777

执行命令 : chmod -R 755 /root 或者 chmod -R 755 ~

 

 

chgrp 命令

命令作用:修改目录下所有文件或者目录的所属组

命令格式: chgrp [-选项][组名称][目录或者文件的名称]

-R选项 : 递归修改目录下所有文件或者目录的所属组

例子1:修改/test/1.php文件的所属组为zhangsan

执行命令: chgrp -R zhangsan ./1.php

 

 

执行结果如下:

 

 

例子2:修改/test目录下所有的子文件和子目录的所属组为zhangsan

执行命令: chgrp -R zhangsan /test

 

 

执行结果如下:

 

 

 

 

chown 命令

命令作用:修改目录下所有文件或者目录的拥有者

命令格式: chown [-选项][用户的名称,拥有者的名字][目录或者文件的名称]

-R选项 : 递归修改目录下所有文件或者目录的所属组

例子1:修改/test/1.php文件的拥有者修改为zhangsan

执行命令: chown -R zhangsan ./1.php

 

 

执行结果如下:

 

 

例子2:修改/test目录下所有的子文件和子目录的拥有者为zhangsan

执行命令: chown -R zhangsan /test

 

 

执行结果如下:

 

 

 

例子2:假设现在在/test目录种有一个拥有者为root,所属组也有root的文件叫info.txt

,需要一次性修改其所属组和拥有者为zhangsan,应该如何修改呢?

执行命令格式: chown -R 组名.用户名 【文件名或者目录名】

chown -R zhangsan.zhangsan ./info.txt

 

 

执行结果如下:

 

 

 

三.Linux服务器种搭建ftp上传

ftp其实是一种文件传输协议,分为服务器端和客户端两种,其实ftp严格来说属于ssh应用其中一种范畴,能够实现文件和目录的上传和下载功能,如果希望在linux当中搭建ftp服务器那么我们就需要安装ftp的软件包,包名和服务器名称都叫vsftpd,安装vsftpd软件包步骤如下:

1步:在镜像文件目录当中找到vsftpd的rpm包,如下图所示:

 

 

2步:使用rpm -ivh + vsftpd的完整包名进行软件包安装,如下图所示:

 

 

3步:开启vsftpd的服务器端进程,这个进程默认占据的端口是21

service vsftpd start 开启vsftpd服务器

service vsftpd restart 重启vsftpd服务器

service vsftpd stop 停止vsftpd服务器,21端口将会被杀死

service vsftpd status 查看vsftpd服务器的状态

执行开启命令: service vsftpd start

 

 

4步:关闭linux的防火墙,防火墙服务名称为iptables

防火墙的命令格式: service iptables [ start | stop | restart | status ]

如果希望直到防火墙是否有开启,可以使用service iptables status查看

 

 

因此我们就需要关闭防火墙,使用命令: service iptables stop

 

 

如果不希望开启Linux就启动防火墙,那么我们可以把防火墙加入启动关闭脚本当中

使用命令: chkconfig iptables off

 

 

没有出现错误提示,就代表加入启动关闭脚本成功

5步:在windows客户端安装ftp上传下载工具,这些工具很多有(flashFXP,FileZilla),喜欢使用任何一款都可以,建议使用FileZilla,安装完成后,要让这个ftp客户端工具通过windows防火墙,您可以直接关闭windows防火墙或者让软件可以通过防火墙:

 

 

 

5步:Linux在默认的情况下不建议也禁止使用root用户进行ftp登录,linux建议使用者使用普通用户登录ftp,因此我们可以创建一个普通用户叫ftpgg密码为123456来登录,命令如下:

 

 

 

6步:通过使用ftpgg这个用户登录ftp服务器当中,然后快速连接就可以登录

 

 

登录成功后,默认的情况下是在ftpgg这个用户的宿主目录当中

 

 

在现实开发当中我们一般会切换到/var/www/html的站点目录下进行php开发,所以我们可以通过手动的方式且目录,如下图所示

 

 

 

目录切换成功了,然而这时上传一个文件(index.html)到/var/www/html下,会成功吗?

答案是失败,发生严重错误传输,如下图所示:

 

 

造成上传失败的原因,其实是/var/www/html目录权限不够造成的,查看/var/www/html的权限发觉其权限为755,其拥有者是root,其所属组是root,而ftpgg属于其他人,其权限为可读可执行权限,没有可写权限,因此上传无法成功,因为上传文件就是可写操作

 

 

 

7步:修改/var/www/html目录的权限为777,执行代码如下:

chmod -R 777 /var/www/html

 

 

修改完成后,重新上传index.html到/var/www/html目录当中

 

 

使用ls -lh命令查看/var/www/html发觉如下图所示:

 

 

完成了ftp的搭建非常的重要,因为开发当中,我们大部分的时间都是用ftp上传我们的php代码到linux服务器中运行

 

 

四.搭建Lamp环境

1. yum命令

yum是一个在线安装的命令,这个命令不是林纳斯发明的,而是Red Hat公司提供给用户的一个服务,在早期的版本当中Red Hat公司对yum命令的使用是进行收费的,但是在CentOS系列当中是免费提供用户使用的,但是Red Hat对你所安装软件下载源不进行任何的维护,所以我们有时需要自己配置yum的下载源.

yum的命令使用必须保证linux可以正常上网,并且yum实现安装是自动完成的,下载的同时就会安装,而且依赖关系自动解决,但是缺点就是安装的速度和下载的快慢取决网络速度,如果安装失败那么可以续安装,在阿里云,腾讯云,亚马逊云,SmartTone云服务都采用这种安装模式,所以我们作为php程序员关键也是要学好这种安装的手段.

使用yum进行安装,命令格式如下:

yum -y install [不完整的包名]

-y选项就是跳过所有询问,凡是遇到安装的询问都会以yes方式进跳过

使用yum进行卸载,命令格式如下:

yum -y remove [不完整的包名]

使用yum进行更新下载源,命令格式如下:

yum check-update

我们会在nginx的课程当中使用这个命令,lamp使用不上

2. 使用yumxshell安装上传下载插件lrzsz

lrzsz的百度简介

 

 

 

1.使用yum安装lrzsz插件

运行命令: yum -y install lrzsz

注意:安装速度取决于网络,必须保证linux可以上网,否则无法安装成功

 

 

完成安装会出现以下提示:

 

 

安装完成后,不需要做任何配置就可以使用rz和sz的命令,在xshell的高版本当中支持直接拖拉上传

例子1:使用xshell上传文件到/var/www/html下,拖拉即可上传【先cd选择目录然后拖拽即可】

 

 

例子2:使用xshell下载1.txt文件到windows的桌面当中

 

 

 

 

 

3.使用yum安装lamp环境

lamp的含义 = Linux + Apache + mysql + php

其实lamp安装当中Linux我们已经安装完成了,因此lamp的安装我们只需要安装amp即可,同时amp有一个版本的选择问题,在37游戏公司采用的版本如下:

Apache版本为2.0 - 2.4,Centos默认安装版本就是这个版本,因为Apache2的系列是一个稳定而且成熟版本

Mysql版本为5.1.73,这个版本属于数据库当中的经典版本,也是稳定且功能强大,支持读写分离等设置操作.

PHP版本在Centos默认的情况下,安装的php5.3的版本,这个版本不利于开发因为无法运行laravel这样框架,因为laravel5.1要求php最低版本为php5.5.9,如果希望运行laravel必须安装php5.6或者以上版本,另外php5.6比较支持memcached和redis和mongdb的相关操作,如果版本太低memcached实现不了分布式操作,因此安装lamp,php必须安装5.6的版本,因此我们就需要更新yum的下载源

由于安装lamp的过程包括安装和测试流程,笔记比较复杂和繁琐,因此我们要参考笔记为<yum安装lamp环境>docx文档

 

posted @ 2017-10-06 21:25  奋斗的黑蜗牛1号  阅读(260)  评论(0)    收藏  举报