{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

如何对Nginx进行编译、安装(在centos7上)?

RobinTangRobinTang 回答0 收藏1
收藏问题

4条回答

tinysun1234

tinysun1234

回答于2022-06-28 11:53

这个非常简单,需要先安装nginx依赖库(工具),然后下载源码包,最后再make编译安装就行,下面我简单介绍一下实现过程,主要内容如下:

1.首先,下载nginx依赖库及编译工具,这个直接在终端输入命令“yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel”就行,如下,我的centos7环境已经正确安装:

2.接着就是下载nginx源码包,这个直接到nginx官网上下载就行,如下,这里建议下载最新的稳定版本:

下载的话,右键复制链接,然后直接使用wget命令下载就行,如下,大概也就1M左右,很快就能下载完成:

3.下载完成后,解压这个源码包,命令“tar -xvf nginx-1.16.0.tar.gz”,接着cd进入到nginx主目录,如下,这些就是nginx的所有源文件:

4.最后就是make编译安装,先执行configure配置脚本(我这里使用默认配置,你也可以自定义),接着执行命令“make && make install”就行,如下,如果没有出现error错误,则说明nginx已经正确安装:

安装完成后,还需要先启动nginx服务,之后才能在正常访问,这个直接执行命令“/usr/local/nginx/sbin/nginx”就行,如下,说明nginx已经正常启动,默认端口号是80,如果端口冲突的话,可以修改一下启动端口:

接着打开本地浏览器,输入地址“127.0.0.1”,如果出现nginx欢迎界面,则说明nginx已经成功启动,如下:

至此,我们就完成了在centos7上编译安装nginx。总的来说,整个过程非常简单,就是先下载nginx依赖库及编译工具,然后tar解压,最后再make编译安装就行,只要你有一定的linux基础,熟悉一下上面的安装过程,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

评论0 赞同0
  •  加载中...
yangrd

yangrd

回答于2022-06-28 11:53

按照下面的教程安装,你可以轻松完成编译、安装、验证。


1.安装系统依赖库


为了编译Nginx源代码,需要标准的GCC编译器,同时Nginx的一些模块需要依赖其他第三方库,通常有pcre库(支持rewrite模块)和openssl库(支持ssl模块)。

为此,需要使用服务器root用户,提前安装操作系统的依赖库。

# yum install -y gcc gcc-c++ pcre-devel openssl-devel


2.下载Nginx源码包


我们可以访问官网地址:http://nginx.org/en/download.html 进行下载,选择最新的Stable version(稳定版),在下图链接地址右键点击,选择“复制链接地址”。





然后在Linux服务器上 执行如下命令即可下载到服务器,这里以1.18.0版本为例。

#wget http://nginx.org/download/nginx-1.18.0.tar.gz

接着解压这个压缩包,并进入这个解压后的文件夹目录:

# tar zxf nginx-1.18.0.tar.gz

# cd nginx-1.18.0



3.编译Nginx


这里要说明一点:可以用root进行编译,也可以用普通用户编译。


为了安全性,这里将以普通用户testerzhang进行编译安装,同时安装到/opt/tester/nginx-1.18.0这个目录。


总共有3个命令要执行,如下方代码块所示:


$ ./configure --prefix=/opt/tester/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module


$ make

$ make install


这里要说明一点:编译./configure的时候可选的参数不仅仅是这些参数,这里只是加入了常用的模块,满足日常Nginx的需求使用。


如果需要使用Nginx其他模块特性,可以查看帮助说明,详细的编译选项请自行搜索。




4.Nginx配置文件


编译安装完成后,我们可以在对应的安装目录找到配置文件。

如本例的安装目录/opt/tester/nginx-1.18.0下面有个目录conf,我们可以看到有一个nginx.conf配置文件,这个文件是配置nginx最基本的信息,其中默认端口是80端口。




这里需要说明一下:


  • 如果你不需要以root启动,可以配置为大于1024的可用端口,那么普通的用户就可以直接启动Nginx。
  • 如果你配置的Nginx端口是小于1024,必须root用户才可以启动Nginx服务。


5.Nginx相关命令


  • 启动命令

# ./nginx


  • 停止命令

# ./nginx -s stop


  • 重新读取最新配置

# ./nginx -s reload


通过这5个步骤,你就可以使用自己编译后的Nginx服务。


希望这个答案,可以帮助到你。

评论0 赞同0
  •  加载中...
kgbook

kgbook

回答于2022-06-28 11:53

这个问题不难,

我曾写过nginx专题系列,源码安装部分如下:

3.2 源码安装:

登录http://nginx.org官网,点击右侧的download

  • 主线版本:也叫开发版本,目前最新但是还没有经过大量测试的版本。
  • 稳定版本:稳定版通常是经过大量测试的,相对比较稳定的版本,企业中我们也会使用稳定版。
  • 历史版本:通常是往期的稳定版本。

3.2.1 下载包:

# 选择想要下载的版本,直接单击右键复制地址下载:

wget http://nginx.org/download/nginx-1.18.0.tar.gz

3.2.2 安装依赖:

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

3.2.3 解压包:

tar xf nginx-1.18.0.tar.gz

cd nginx-1.18.0

3.2.4 预编译:

预编译主要是用来检查系统环境是否满足安装软件包的条件, 并生成Makefile文件,该文件为编译、安装、升级nginx指明了相应参数。

./configure --help 可以查看预编译参数

--prefix 指定nginx编译安装的目录;

--user=*** 指定nginx的属主

--group=*** 指定nginx的属主与属组

--with-*** 指定编译某模块

--without-** 指定不编译某模块

--add-module 编译第三方模块

开始预编译:

./configure --prefix=/usr/local/nginx

3.2.5 编译并安装

make && make install

3.2.6 查看版本

/usr/local/nginx/sbin/nginx -v nginx version: nginx/1.18.0

3.2.7 启动nginx:

/usr/local/nginx/sbin/nginx

3.2.8 检查进程及端口:

# 查看进程: [root@localhost ~]# ps -ef|grep nginx

root 6853 1 0 20:27 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx

nobody 7839 6853 0 21:35 ? 00:00:00 nginx: worker process

# 查看端口

[root@localhost ~]# netstat -ntlp|grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6853/nginx: master

可以看到端口及进程表示nginx WEB服务已经搭建成功!

我有专门写过nginx系列,感兴趣可以看下:

2021年nginx最新系列之nginx安装部署(含yum、源码方式)

2021年nginx最新系列之nginx配置文件详解

2021年nginx最新系列之访问控制

评论0 赞同0
  •  加载中...
Clect

Clect

回答于2022-06-28 11:53

作为一个使用Linux的用户,一定要多看官方手册,那是使用开源软件最为有效的手段,如下是官方说明

http://nginx.org/en/docs/configure.html

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<