源码编译安装nginx服务
源码包基本概述
在linux环境下面安装源码包是比较常见的, 早期运维管理工作中,大部分软件都是通过源码安装的。那么安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。
源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。所以如果你的机器上没有安装gcc就没有办法去编译源码。可以使用yum -y install gcc
来完成安装。
源码包的好处
-
自定义修改源代码
-
定制需要的相关功能
-
新版软件优先更新源码
源码包的获取
官方网站, 可以获得最新的软件包
Apache官方网站
Nginx官方网站
Mysql官方网站
源码包分类
源码格式(需要编译安装)
二进制格式(解压后可以直接使用)
3W1H分别代表的是:
what--------做什么,做成什么,是目标
why---------为什么要做,是原因
where-------在哪儿做,是地点
how---------怎么做,是方法
源码安装三部曲(常见):
第一步:./configure(定制组件)
1.指定安装路径,例如: --prefix=/opt/nginx-1.12
2.启用或禁用某项功能, 例如 --enable-ssl
3.和其它软件关联,例如–with-pcre
4.检查安装环境,例如是否有编译器 gcc,是否满足软件的依赖需求
5.检测通过后生成Makefile文件
第二步: make
1.执行make命令进行编译, 可以使用-j指定CPU核心数进行编译
2.按Makefile文件进行编译, 编译成可执行二进制文件
3.生成各类模块和主程序
第三步: make install
按Makefile定义好的路径拷贝至安装目录中
通过源码编译安装nginx服务
1.进入nginx官网,找到当前nginx的最新版本的安装包链接
2.wget进行下载,并解压
注:但我们下载一个源码包后,如果不清楚安装步骤,可以在该包中找到INSTALL或README,这两个文件中都包含了该源码包的安装步骤
该源码包中还会有一个configure是一个用来定制组件的脚本文件
./configure的帮助文档
3.使用./configure进行编译安装,并指定安装路径 (源码安装软件包一般都是存放在/usr/local目录下或者/opt/目录下)
安装结束后没有出现error或fail则说明安装成功,并会在该源码包目录中生成一个makefile文件和objs目录
4.此时已经生成了makefile文件,下一步则需要我们执行make命令进行编译
(没有出现error或fail则执行成功)
必须在有makefile文件的目录下执行make,不然会出现下列报错
5.编译成功后会生成各类模块和主程序
6.按Makefile定义好的路径拷贝至安装目录中
安装前先查看我们定义的路径目录下是否存在该服务
使用make install安装
再次查看我们定义的路径目录(安装成功)
服务安装后进行查看
7.启动nginx服务
当我们需要使用nginx服务时,我们需要通过nginx主程序进行启动(正常在没有任何配置的情况下,只能在该主程序的所在目录下执行,在其他地方都无法执行,无法找到命令)。
我们可以通过$PATH环境变量,在其中加入nginx的主程序安装的位置
8.查看端口号
服务启动则会开启80端口号
9.访问nginx网页(提前关闭防火墙和selinux)
在浏览器中访问
源码编译报错信息处理
1.当出现这行报错的时候,说明你的机器上没有安装gcc就没有办法去编译源码,这时我们可以使用yum -y install gcc来完成安装
解决方法:
2. 遇到编译报错,一般都是缺少库文件或者其它文件。我们根据它提示的内容多次进行编译,安装相关文件
解决方法:
3. 在nginx中我们执行“./configure” 会提示 error: the HTTP gzip module requires the zlib library意思是告诉我们没有zlib library的支持了碰到此类问题我们只要安装这个库就可以了。
解决方法:
4.当我们需要使用nginx服务时,我们需要通过nginx主程序进行启动(正常在没有任何配置的情况下,只能在该主程序的所在目录下执行,在其他地方都无法执行,无法找到命令)
解决方法:
我们可以通过$PATH环境变量,在其中加入nginx的主程序安装的位置