3.7 文件权限命令
3.7.1 Linux系统相对安全的原因
<span style="background-color:#333333"><span style="color:#b8bfc6">总有人问,Linux系统为什么比windows系统相对安全呢?我们可以总结如下:
1. 使用Linux系统的人数少,尤其在国内,很少有人关注Linux。
2. 因为Linux开源,任何的系统漏洞都会被民间高手,或者是官方人员很快的发现。从漏洞的发现到补丁的放出,时间相当短,没有时间给病毒或者黑客作乱的机会。
3. 然后就是linux的权限管理,linux的权限管理很严格。病毒或者黑客想修改系统文件或者系统日志,除非有管理员密码。所以就算中了病毒,病毒的危害也非常的小,重要的系统文件都不会被破坏。所以发现了病毒稍做处理就搞定了。
4. 还有就是linux系统的程序管理。linux安装程序,基本都是利用程序管理软件,比如ubuntu、debian下的软件中心、centos,fedora和红帽的yum。linux系统安装程序基本上都是用软件管理程序,从程序开发者官网上或者是相应的发行版社区直接下载安装。不会有被恶意篡改的软件被安装到使用者的电脑上。
5. 参考我的博客:https://blog.youkuaiyun.com/Michael__One/article/details/85006165</span></span>
3.7.2 文件权限的种类
文件权限 | 代表字符 | 数字表示 | 对文件的含义 | 对目录的含义 |
---|---|---|---|---|
读(read) | r | 4 | 可以查看文件的内容 | 可以列出目录的内容 |
写(write) | w | 2 | 可以修改文件的内容 | 可以在目录内创建、删除文件 |
执行(execute) | x | 1 | 可以执行文件 | 可以进入目录 |
3.7.3 文件属性解析
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># ls -l </span>
<span style="color:#7575e4">-rw-r--r--</span> <span style="color:#64ab8f">1</span> root root <span style="color:#64ab8f">302</span> <span style="color:#64ab8f">8</span>月27 <span style="color:#64ab8f">9</span>:24 namelist
【 <span style="color:#64ab8f">1</span> 】 【2】 【3】 【4】 【5】 【6】 【7】
解析:
第一列:由10个字符组成。第一个字符表示文件类型,第2~10个字符表示权限
权限由9个字符构成: 前三个字符表示owner拥有的权限
中间三个字符表示group下的所有成员拥有的权限
后三个字符表示other的权限
第二列:文件的硬链接数
第三列:owner的名称
第四列:group的名称
第五列:文件大小
第六列:该文件的最后一次访问时间
第七列:该文件名 </span></span>
3.7.4 文件权限的针对者
从文件属性的第一列的解析来看,文件的权限是针对于三种不同用户来设定的
-
拥有者,即文件的owner
-
用户组,即文件的所属组
-
其他人,即除了上述两种情况的其他情况,称为others
3.7.5 文件的权限的修改(chmod指令)
<span style="background-color:#333333"><span style="color:#b8bfc6">语法1:chmod [ugoa][+-=][rwx] [filename] 该指令只能是root和owner自己使用
解析:
u: 表示owner,即第2~4个字符
g: 表示group,即第5~7个字符
o: 表示other,即第8~10个字符
a: 表示all, 即所有人
+: 表示在原有的权限上添加新权限
-: 表示在原有的权限上撤销权限
=: 覆盖原有的权限,授予新权限
语法2:chmod [421] [filename]
解析:第二个参数中的三个数字分别表示owner,group,other的权限
即每个数字表示某一个身份的权限之和。
案例1:赋予文件file1所属组写权限
chmod g+w file1
案例2:取消所有者,用户组,其他人三个部分对file1的写权限
chmod ugo-w file1
案例3:设定目录dir1为所有用户具有全部权限
chmod 777 dir1
案例4:chmod 763 file1
7表示拥有者的权限是可读可写可执行
6表示所属组的权限是可读可写
3表示其他人的权限是可写可执行</span></span>
扩展:
<span style="background-color:#333333"><span style="color:#b8bfc6">文件和目录创建后有默认权限:
root身份创建的:
文件:644
目录:755
普通用户创建的:
文件:664
目录:775
赋值权限问题:
针对于文件而言:权限可以任意chmod,但是在应用时,会涉及到权限够不够的问题
如果文件有执行权限,则必须给读权限。
合理性问题:如果文件有写权限,应该给读权限
针对于目录而言:权限可以任意chmod,但是在应用时,会涉及到权限够不够的问题
如果有r权限,应该赋予x权限
如果有w权限,应该赋予x权限</span></span>
3.7.6 文件所属组的修改(chgrp指令)
<span style="background-color:#333333"><span style="color:#b8bfc6">格式:chgrp [-R] [newGroup] filename 该指令只能是root用户使用
功能描述:改变文件或目录的所属组
案例1: 改变文件file1的所属组为adm
chgrp dam file1
案例2:修改目录dir1及其子目录和文件的用户组为michael
chgrp -R michael dir1</span></span>
3.7.7 文件拥有者的修改(chown指令)
<span style="background-color:#333333"><span style="color:#b8bfc6">格式1:chown [-R] [newOwner] filename 该指令只能是root用户使用
参数: -R 表示递归修改拥有者
案例1:改变文件file1的所有者为nobody
chown nobody file1
案例2:修改目录dir1及其子目录和文件的拥有者为michael.
chown -R michael: dir1
格式2:chown newOwner:newGroup filename #可以有chgrp的功能
案例3:将install.log的拥有者与群组改为root
chown root:root install.log
案例4:修改目录dir1的用户组为root
chown .root dir1</span></span>
3.8 sudo指令的应用
3.8.1 sudo简介
有的时候,在操作和管理Linux时,我们需要切换成root身份才能进行,比如修改权限等。su可以用于切换成root账号,但是需要使用root账号的密码(管理员把自己的密码给普通用户 不合适吧)。
sudo,则是root给普通用户的一个特殊指令,普通用户不用再特意切换成root身份,就可以使用root才能使用的一些指令。仅仅需要普通用户自己的密码即可(通过配置,甚至可以不用密码)
当然,普通用户拥有sudo的使用权,必须是管理员root事先通过审核,才能开放给普通用户的。(即,除非是信任用户,否则一般用户默认是不能操作sudo的)
3.8.2 sudo的配置
sudo的配置,其实就是修改/etc/sudoers文件里的信息
参考下图:
通过上图,可以看到,sudoers文件的权限即使是root,也是只有一个读权限。
3.8.2.1 修改该文件的方式
<span style="background-color:#333333"><span style="color:#b8bfc6">方式1:root用户直接vi /etc/sudoers 然后强制保存
方式2:直接输入牛掰哄哄的visudo</span></span>
3.8.2.2 具体修改:我选择了牛掰哄哄的visudo
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># visudo</span>
进入后,找到第100行和110行。
<span style="color:#7575e4">-</span> 在100行的 root <span style="color:#8d8df0">ALL</span><span style="color:#b8bfc6">=</span>(ALL) ALL下面填写 <span style="color:#7575e4">---</span>配置这个,就可以使用sudo了。
scott <span style="color:#8d8df0">ALL</span><span style="color:#b8bfc6">=</span>(ALL) ALL
<span style="color:#7575e4">-</span> 在110行的 <span style="color:#da924a">#%whell ALL=(ALL) NOPASSWD:ALL下面填写 --配置这个,就可以不用再输入密码了</span>
scott <span style="color:#8d8df0">ALL</span><span style="color:#b8bfc6">=</span>(ALL) NOPASSWD:ALL
<span style="color:#7575e4">-</span>解析: scott <span style="color:#8d8df0">ALL</span><span style="color:#b8bfc6">=</span>(ALL) ALL
第一列:使用sudo的账号
第二列:客户端计算机主机名
第三列:可切换的身份
第四列:可使用的指令,注意使用具体指令时需要使用绝对路径,多个指令用逗号分开</span></span>
参考下图:
四、软件管理机制
4.1 Linux软件管理介绍
有一个很好的软件生态圈支持,才是一个优秀、值得广泛使用的操作系统平台。比如PC端的window操作系统、mac操作系统,手机端的IOS系统,Android系统等。在这些操作系统上安装软件,方便的不能再方便了。都有类似的一键安装,方便用户进行操作。
<span style="background-color:#333333"><span style="color:#b8bfc6">当然,windows上的软件,五花八门,没有统一的妥善管理,漏洞就多。而手机端的操作系统,都有自己的应用商店来统一管理软件,通过审核的才会放入应用商店,相对来说,比较安全</span></span>
当然,大名鼎鼎的Linux操作系统,也有自己的软件生态,也有自己的软件管理方式。
目前在Linux操作系统上,软件管理方式最常见的有两种,分别是:
<span style="background-color:#333333"><span style="color:#b8bfc6">- RPM
这个机制最早是由Red Hat这家公司开发出来的,后来实在很好用,因此很多distributions就使用这个机制来作为软件安装的管理方式。包括Fedora、CentOS、SuSE等知名的开发商。
- DPKG
这个机制最早是由Debian Linux社群所开发出来, 通过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息,非常不错。只要是衍生自Debian的其他Lunix distributions大多使用了dpkg这个机制来管理软件的,包括B2D,ubuntu等。</span></span>
注意了,注意了,注意了
不论rpm,还是dpkg,这些机制在安装软件时,或多或少都会碰到软体依赖的问题,比如软件A的安装依赖于软件B和C,而B的安装依赖于软件D和E,这些依赖信息,软件开发商都已经在每一个软件中提供了一个文档并记录在内,安装时,会进行检查平台上是否存在依赖的软件环境。如果存在,可以安装成功,如果不存在,那么就会进行友好提示,并终止安装。那该如何解决这样的依赖问题呢?
<span style="background-color:#333333"><span style="color:#b8bfc6">- 第一种方式:我们人工的一步一步的检测和安装所依赖的软件,直到依赖环境都存在。
- 第二种方式:就是使用一种自动管理机制,先获取依赖关系做成列表,查看平台是否已经存在所需要的环境,如果不存在,自动管理机制通过依赖关系,来获取所需要的软件,进行顺序安装,从而解决这样的问题。</span></span>
针对于自动管理机制的思想,目前Linux系统开发商都有提供了这样的【在线升级】机制,并提供了相应的软件仓库,只要有网络,你就可以安装开发商提供的任何软件。dpkg管理机制提供了APT在线升级机制,RPM则依开发商的不同,有Red hat系统的yum,SuSE系统的Yast Online Update(YOU)等
distributions代表 | 软件管理机制 | 使用指令 | 在线升级机制(指令) |
---|---|---|---|
Red Had/Fedora | RPM | rpm,rpmbuild | YUM(yum) |
Debian /Ubuntu | DPKG | dpkg | APT(apt-get) |
4.2 二进制安装
这样的软件包是已经将软件源码在不同的平台上进行事先编译,经过压缩打包的文件。 每一个安装包都有自己的平台。换一个不同的平台环境,失效。比较常用,优点:简单方便。 缺点:缺乏灵活性
二进制软件包提供了很多类型的打包方式,最常见的就是我们RPM格式的包,还有以“*.tar.gz、*.tgz、*.bz2“等形式的二进制软件包,最后还有一个就是提供安装程序进行安装的二进制软件包。下面演示jdk的安装
安装案例:JDK的安装
步骤1)上传jdk的二进制安装包 jdk-8u221-linux-x64.tar.gz,比如上传到/root/下
步骤2)解压jdk安装包
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># tar -zxvf ./jdk-8u221-linux-x64.tar.gz -C /usr/local</span>
</span></span>
步骤3)切换到/usr/local下并更名
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># cd /usr/local</span>
[root@qianfeng01 local]<span style="color:#da924a"># mv jdk1.8.0_221/ jdk</span></span></span>
步骤4)配置环境变量
环境变量的配置有三个位置可选,分别是以下三个位置
<span style="background-color:#333333"><span style="color:#b8bfc6">/etc/profile :系统级别的环境变量配置文件 所有用户都可以使用
~/.bash_profile :用户级别的环境变量配置文件 只对于一个用户好使
~/.bashrc :用户级别的环境变量配置文件 只对于一个用户好使</span></span>
注意:真实环境中,我们应该选择用户级别的环境变量,这样的好处是,即使配错了,我们可以使用root账号来帮助修改。如果是系统级别的,配错了的话,root账号也不好使了,得另想办法,麻烦死了。
但是在学习期间,避免麻烦,直接配置系统级别的环境变量即可。
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a">#vim /etc/profile</span>
........省略...................
<span style="color:#da924a"># JDK environment</span>
<span style="color:#8d8df0">JAVA_HOME</span><span style="color:#b8bfc6">=</span>/usr/local/jdk
<span style="color:#8d8df0">PATH</span><span style="color:#b8bfc6">=</span><span style="color:#8d8df0">$JAVA_HOME</span>/bin:<span style="color:#8d8df0">$JAVA_HOME</span>/jre/bin:<span style="color:#8d8df0">$PATH</span>
小贴士:原有的PATH值拼在新值的后面</span></span>
步骤5)让环境变量生效(刷新环境变量)
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># source /etc/profile</span></span></span>
步骤6)验证是否生效
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]# java -version
[root@qianfeng01 ~]# javac</span></span>
扩展:二进制软件包的安装还有执行程序式的安装,只需要运行安装指令后,跟着提示进行下一步下一步的操作即可。类似于windows平台上的软件安装界面。
4.3 rpm机制安装
4.3.1 rpm安装原理
<span style="background-color:#333333"><span style="color:#b8bfc6">1. 下载好的rpm软件包里包含了软件程序,依赖关系文件,版本信息文件
2. 当启动安装操作时,会先根据依赖关系文件查找该平台上是否已经安装好了依赖的软件
3. 如果依赖的软件没有提前安装,则终止该软件的安装
4. 如果依赖的软件已经提前安装,则继续安装,直到成功。</span></span>
参考下图:
注意:应用程序在使用rpm方式安装时,而该程序的核心文件会默认放置在下面的目录中
目录 | 说明 |
---|---|
/etc | 一些配置文档存储的目录,例如 /etc/ssh |
/usr/bin | 一些可执行文件的目录 |
/usr/lib | 一些程式使用的动态函数库 |
/usr/share/doc | 一些基本的程序使用手册和说明文档 |
/usr/share/man | 一些 man page 文档 |
/var/lib/rpm | 程序相关的资讯信息,即资料库 |
注意:这里说明一下资料库,以后如果对软件升级,版本的比较信息就来源于这里,还有,我们可能会经常查询系统已经安装的程序,也是从这里进行查询的。
4.3.2 rpm指令的常用选项
1)查询选项
<span style="background-color:#333333"><span style="color:#b8bfc6">]<span style="color:#da924a"># rpm -qa <==查询系统内已安裝程序</span>
]<span style="color:#da924a"># rpm -q【licdR】 【已安装的程序名】 <==查询系统内某个已安裝程序的信息 </span>
选项参数:
<span style="color:#7575e4">-q</span> :用于查询指定的程序是否已经安装
<span style="color:#7575e4">-qa</span> :列出所有已经安装在Linux系统下的程序名称
<span style="color:#7575e4">-qi</span> :列出该程序的详细信息 ,如版本号,发行时间,安装时间等
<span style="color:#7575e4">-ql</span> :列出该程序所有的文档与目录
<span style="color:#7575e4">-qc</span> :列出该程序的所有配置文件 (通常是指在 /etc/ 底下的文件)
<span style="color:#7575e4">-qd</span> :列出该程序的所有說明文档 (指与 man 有关的文件)
<span style="color:#7575e4">-qR</span> :列出与该程序有关的依赖软件所含的文件 (Required 的意思)
<span style="color:#7575e4">-qf</span> :找出指定文件属于哪一个已经安装的程序
案例测试:用python来测试
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -qa python</span></span></span>
2)安装和卸载选项
<span style="background-color:#333333"><span style="color:#b8bfc6">基本语法:rpm [-ivh] 软件包名
-i :安装的含义
-v :安装过程中显示详情
-h :以进度条的形式显示安装进度
-e :卸载参数
--nodeps :安装或卸载软件时,有依赖关系时,可以进行强制安装或卸载。有一定的危险性,安装后可以能造成软件无法正常使用!</span></span>
4.3.3 案例演示:rpm安装mysql
步骤1)上传mysql相关的软件包,比如上传到/root下
<span style="background-color:#333333"><span style="color:#b8bfc6">mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar</span></span>
步骤2)拆包
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar</span>
[root@qianfeng01 ~]<span style="color:#da924a"># ll</span>
mysql-community-client-5.7.28-1.el7.x86_64.rpm
mysql-community-common-5.7.28-1.el7.x86_64.rpm
mysql-community-devel-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
mysql-community-libs-5.7.28-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
mysql-community-server-5.7.28-1.el7.x86_64.rpm
mysql-community-test-5.7.28-1.el7.x86_64.rpm
小贴士: 其实我们是想安装mysql-community-server-5.7.28-1.el7.x86_64.rpm</span></span>
步骤3)安装mysql
<span style="background-color:#333333"><span style="color:#b8bfc6"><span style="color:#64ab8f">1</span>. 先检查是否安装了mariadb, 如果已经安装,就卸载掉
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -qa | grep mariadb</span>
mariadb-libs-5.5.64-1.el7.x86_64
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps</span>
<span style="color:#64ab8f">2</span>. 安装mysql-common
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm</span>
<span style="color:#64ab8f">3</span>. 安装mysql-lib
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm</span>
<span style="color:#64ab8f">4</span>. 安装mysql-client
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm</span>
<span style="color:#64ab8f">5</span>. 安装mysql-server
[root@qianfeng01 ~]<span style="color:#da924a"># rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm</span>
<span style="color:#7575e4">--------------------------</span>到此为止,rpm安装完毕 <span style="color:#7575e4">-----------------------</span>
mysql在linux中的服务项叫mysqld
<span style="color:#64ab8f">6</span>. 启动mysql的服务项mysqld
[root@qianfeng01 ~]<span style="color:#da924a"># systemctl start mysqld</span>
[root@qianfeng01 ~]<span style="color:#da924a"># systemctl status mysqld 并查看</span>
<span style="color:#64ab8f">7</span>. 查看mysql提供的默认密码,并复制, 注意,如果服务项启动失败,则不会产生mysqld.log文件
[root@qianfeng01 ~]<span style="color:#da924a"># cat /var/log/mysqld.log | grep password</span>
<span style="color:#64ab8f">8</span>. 登录mysql,并修改密码
[root@qianfeng01 ~]<span style="color:#da924a"># mysql -uroot -p'9Pe%mQVcs-#<' 回车即可</span>
.... 进入后,修改密码
mysql> alter user root@<span style="color:#d26b6b">'localhost'</span> identified by <span style="color:#d26b6b">'@Mmforu45'</span>;
<span style="color:#64ab8f">9</span>. 如果想要远程连接该机器上的mysql server, 那么mysql server需要进行远程授权
mysql> grant all privileges on *.* to root@<span style="color:#d26b6b">'%'</span> identified by <span style="color:#d26b6b">'@Mmforu45'</span>;
然后可以在windows启动navicat 远程连接linux上的mysql了。</span></span>
4.4 yum在线安装机制
4.4.1 yum安装原理介绍
在使用rpm机制的时候,我们最闹心的地方,可能就是软件依赖问题了。而YUM机制恰恰帮助我们解决了这一问题。YUM,是Yellow dog Updater, Modified 的简称。YUM会通过分析rpm软件包内的预设参数,制定软件依赖的解决方法,然后自动处理软件依赖的问题。这样,在安装、升级或者是卸载时,用户就不必头疼这个依赖问题了。 图示YUM在线升级得原理和过程:
YUM服务器:
YUM客户端
安装流程
<span style="background-color:#333333"><span style="color:#b8bfc6">yum服务器: 存储了大量的现成的软件,并且维护着这些软件之间的依赖关系列表
安装流程: 机器在执行yum安装指令准备安装软件A时,会先向yum服务器发送请求,获取软件A的依赖关系列表,下载到本地,与本地的资料库做比较,如果本地的资料库缺少依赖关系中的某些软件,就会从yum服务器上获取所缺的依赖软件以及软件A,然后按照依赖顺序,开始安装。 </span></span>
<span style="background-color:#333333"><span style="color:#b8bfc6">yum服务器的地址存储在/etc/yum.repo.d/CentOS-Base.repo文件中</span></span>
小贴士:yum在线安装底层应用的还是RPM机制安装,只不过帮助管理依赖软件的安装而已
yum指令常用的参数:
4.4.2 YUM常用的查询功能
<span style="background-color:#333333"><span style="color:#b8bfc6">]# yum list all <==列出yum源仓库里面的所有可用的安装包
]# yum list installed <==列出所有已经安装的安装包
]# yum list available <==列出没有安装的安装包 ####安装软件
]# yum info [appName] <==查看软件的信息
]# yum search [keywords] <==根据关键字查找到相关安装包软件的信息
]# yum whatprovides [fileName] <==查找包含指定文件的相关安装包</span></span>
4.4.3 YUM的安装/卸载功能
<span style="background-color:#333333"><span style="color:#b8bfc6">语法:yum [install | update| reinstall | remove ] [软件名称]
]# yum install appname <==安装指定的软件
]# yum reinstall appname <==重新安装指定的软件
]# yum update [appname] <==升级指定软件,不指定软件时,升级整个系统的软件
]# yum remove appname <==卸装指定的软件</span></span>
4.4.4 案例演示:
<span style="background-color:#333333"><span style="color:#b8bfc6">以前安装过的:
yum -y install vim
yum -y install bzip2
yum -y install net-tools
现在:本地时间可能不准,那么就需要和网络上的时间进行同步,那么可以使用ntpdate -u ntp1.aliyun.com进行同步。但是ntpdate指令不存在,需要安装。
yum -y install ntp
说明: ntp这款软件依赖于ntpdate和autogen, yum都会帮助提前下载并安装。</span></span>
4.5 源码安装
由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache、tomcat、php等软件。开源软件基本都提供源码下载,源码安装的方式;
4.5.1 源码安装的优缺点
1)优点
<span style="background-color:#333333"><span style="color:#b8bfc6">1.用户可以自己定制软件功能,安装需要的模块,不需要的功能可以不用安装。
2.用户还可以自己选择安装路径,方便管理。
3.卸载软件也很方便,只需删除对应的安装目录即可。
4.能最大程度和服务器平台融合,效率稍微比其他方式高。
5.没有windows所谓的注册表之说。</span></span>
2)缺点
<span style="background-color:#333333"><span style="color:#b8bfc6">1.安装较为繁琐,需要自己配置
2.安装较为耗时,需要自己编译源码
3.安装较为容易出错,出错也难以解决</span></span>
4.5.2 案例演示:安装Nginx
1) 下载源码包,并解压到你喜欢的位置
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># tar -zxvf nginx-1.8.0.tar.gz -C /usr/local</span></span></span>
2)进入该软件的家里
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># cd /usr/local/nginx-1.8.0</span></span></span>
3)执行配置信息
注意:需要c语言环境提前安装好
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 ~]<span style="color:#da924a"># yum -y install gcc-c++</span>
[root@qianfeng01 ~]<span style="color:#da924a"># yum install -y pcre pcre-devel</span>
[root@qianfeng01 ~]<span style="color:#da924a"># yum install -y zlib zlib-devel</span>
[root@qianfeng01 ~]<span style="color:#da924a"># yum install -y openssl openssl-devel</span></span></span>
安装好环境后,在配置nginx的属性信息
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 nginx-1.8.0]<span style="color:#da924a"># ./configure \</span>
<span style="color:#7575e4">--prefix</span><span style="color:#b8bfc6">=</span>/usr/local/nginx-1.8.0 \
<span style="color:#7575e4">--pid-path</span><span style="color:#b8bfc6">=</span>/usr/local/nginx-1.8.0/tmp/nginx.pid </span></span>
4)在家里执行编译指令
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 nginx-1.8.0]<span style="color:#da924a"># make</span></span></span>
5)在家里执行安装指令
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 nginx-1.8.0]<span style="color:#da924a"># make install</span></span></span>
如果出现了bin或者sbin目录,则表示安装成功。
6)清空缓存
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@qianfeng01 nginx-1.8.0]# make clean</span></span>