Linux源码安装nginx

1.编译环境如gcc和 gcc-c++编译器,make

先安装一些编译源码包需要的devel包

yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel

2.准备软件 :

nginx-1.15.9.tar.gz
下载地址:
http://nginx.org/en/download.html

3.开始安装

源码编译3步骤:./configure , make ,make install

  1. 先解包
root:/sources # tar xf nginx-1.15.9.tar.gz

nginx源码编译镜像 nginx源码包安装_nginx源码编译镜像

  1. 进入nginx源码文件夹
root:/sources # cd nginx-1.15.9/

Ps:先看文件夹内REDME文件与INSTALL文件(没有就不看)
3.通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成Makefile

root:/sources/nginx-1.15.9 # ./configure  --prefix=/app/nginx

Ps:这步如果提示需要依赖包那就yum 包名-devel

a. 指定安装路径,例如 --prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它软件关联,例如--with-pcre
d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求

4.make 根据Makefile文件,构建应用程序

nginx源码编译镜像 nginx源码包安装_操作系统_02

root:/sources/nginx-1.15.9 # make -j 2

nginx源码编译镜像 nginx源码包安装_操作系统_03

最终生成:Makefile
# make  -j 4   #按Makefile文件编译,可以使用-j 4指定4核心CPU编译,提升速度
# make install  #按Makefile定义的文件路径安装
# make clean //清除上次的make命令所产生的object和Makefile文件。使用场景:当需要重新执行configure时,需要执行make clean

5.make install 复制文件到相应路径

nginx源码编译镜像 nginx源码包安装_nginx源码编译镜像_04


6.查看安装文件夹

nginx源码编译镜像 nginx源码包安装_操作系统_05


就此nginx以安装完成

7.删除源码包:

安装完,删除:

make uninstall

有时删除不干净,所以建议大家安装时,在configure步骤添加一个: --prefix 参数。这样删除或备份时,直接对删除--prefix指定的安装目录操作就可以了。

4.源码编译出错的5个种完美解决方法

从windows上传extundelete文件到linux,安装xmanager v5 或者CTR
解压并安装extundelet

tar jxvf extundelete-0.2.4.tar.bz2 
cd extundelete-0.2.4
rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm 
./configure   #检查系统安装环境
Configuring extundelete 0.2.4

源码编译出错后,常见解决方法:
共5种方法
方法1:

# rpm -ivh ext2fs^C   #按两下tab键。 一般情况,ext2fs就是要安装的软件包的名字开头。如果存在 自动补全

方法2:

# ls *ext2fs*   #查找完整关键字

方法3:

# ls *2fs*    #查找部分关键字

方法4:

终极大招
http://www.rpmseek.com/index.html

方法5:

使用yum去搜索
# yum search ext2fs
安装库:
# rpm -ivh e2fsprogs-libs-1.41.12-11.el6.x86_64.rpm 
warning: e2fsprogs-libs-1.41.12-11.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                                                            ########################################### [100%]
package e2fsprogs-libs-1.41.12-11.el6.x86_64 is already installed
互动:这里显示库已经安装,但是configure时又说找不到。怎么办?
解决:安装了库,却显示找不到。 这种情况: 需要安装库的开发文件
# rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm

扩展:技巧

查看rpm包安装后生成的文件:
#rpm -qpl e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm | more
# make  -j 4  
# make install  #安装
# ls /usr/local/bin/extundelete   #查看安装后的文件
/usr/local/bin/extundelete
总结,软件安装方法特点:
rpm+yum:方便,软件版本低。稳定性好、管理方便。性能稍差。
源码编译安装:麻烦,软件版本新,可以定制。稳定性稍差、管理稍差。性能好。
源码编译安装:主要是安装LAMP或LNMP 架构时,我们会用
8.3.4  安装.src.rpm源码包的方法(了解)  
srpm: Source RPM 的意思,也就是这个 RPM 档案里面含有原始码( Source Code )。
上传lrzsz-0.12.20-27.1.el6.src.rpm 到linux的/root目录 
# rpm -e lrzsz  #先卸载软件包
编译:
# rpmbuild --rebuild  lrzsz-0.12.20-27.1.el6.src.rpm     #根据将src.rpm中源码文件编译成可执行的二进制文件。
若顺利执行成功则会在root用户家目录下生成一个:/root/rpmbuild目录。 
在/root/rpmbuild/RPMS/x86_64/目录下生成lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm这个rpm文件。
#rpm -ivh rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm   #安装