Nginx 编译安装

本文介绍了手动编译安装 nginx 的具体步骤。

安装依赖包

RedHat 系

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

Debian 系

$ sudo apt install libpcre3 libpcre3-dev libssl-dev zlib1g-dev zlib1g

编译

$ ./configure --prefix=/etc/nginx  \
      --sbin-path=/etc/nginx/sbin/nginx \
      --conf-path=/etc/nginx/nginx.conf \
      --user=nginx \
      --group=nginx \
      --with-http_ssl_module \
      --with-http_realip_module \
      --with-http_addition_module \
      --with-http_sub_module \
      --with-http_dav_module \
      --with-http_flv_module \
      --with-http_mp4_module \
      --with-http_gunzip_module \
      --with-http_gzip_static_module \
      --with-http_random_index_module \
      --with-http_secure_link_module \
      --with-http_stub_status_module \
      --with-http_auth_request_module \
      --with-threads \
      --with-stream \
      --with-stream_ssl_module \
      --with-http_slice_module \
      --with-mail \
      --with-mail_ssl_module \
      --with-file-aio \
      --with-http_v2_module

错误排查

错误1

checking for OS Linux 3.10.0-327.36.1.el7.x86_64 x86_64 checking for C compiler … not found ./configure: error: C compiler cc is not found

$ yum install -y gcc gcc-c++

错误2

./configure: error: the HTTP rewrite module requires the PCRE library.You can either disable the module by using –without-http_rewrite_moduleoption, or install the PCRE library into the system, or build the PCRE librarystatically from the source with nginx by using –with-pcre=option.

$ yum install pcre-devel
$ sudo apt install libpcre3 libpcre3-dev

错误3

./configure: error: SSL modules require the OpenSSL library.You can either do not enable the modules, or install the OpenSSL libraryinto the system, or build the OpenSSL library statically from the sourcewith nginx by using –with-openssl=option.

$ yum install openssl-devel
$ sudo apt install libssl-dev

错误4

./configure: error: the HTTP gzip module requires the zlib library.

$ yum install zlib-devel
$ sudo apt install zlib1g-dev zlib1g

安装

$ make

$ groupadd -r nginx \
  && useradd -r -g nginx -s /bin/false -M nginx

$ sudo make install

加入环境变量

编辑 ~/.bash_profile

export PATH=/etc/nginx/sbin:$PATH

编辑 /etc/sudoers

注意:必须编辑此文件,否则 sudo 会找不到命令。

Defaults	secure_path="/etc/nginx/sbin:..."

systemd

/etc/systemd/system/ 下增加 nginx.service 文件,以下路径根据实际自己修改。

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/etc/nginx/run/nginx.pid
ExecStartPre=/etc/nginx/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/etc/nginx/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动

$ sudo nginx -t

$ sudo nginx

相关链接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏图像识别与深度学习

Bluetooth4_3运行流程(连接发射器SN00000009)

2996
来自专栏伪君子的梦呓

网络安全实验室(基础关) writeup~上

因为参加了一个比赛(网鼎杯),所以要快速入门一下信息安全,没想到赛制是线上采用 CTF 的赛制,所以就找了点题目做了一下。

4352
来自专栏小白安全

一种深度隐蔽的后门方式

这是关于域中深度隐蔽后门系列的第二篇,第一篇为利用文件目录ACL深度隐藏后门。 本篇主要介绍利用域中主机账号的口令散列值制作白银票据,结合文...

3317
来自专栏GopherCoder

『阅读源代码的姿势:以 go-restful 为例』

5663
来自专栏DeveWork

Mac OS X巧用AppleScript 制作网络位置切换自动化脚本(自动配置PAC 文件)

事情是这样的,自带的Macbook Air 在实习单位入的是办公网,办公网走自动代理(需要配置PAC 文件)。同时回来宿舍或家里需要民用的宽带网络。切换的时候出...

5205
来自专栏JackeyGao的博客

Django小技巧20: 使用多个settings模块

通常来说, 为了保持项目的配置简单,我们会避免使用多个配置文件。但理想很丰满, 现实是随着项目越来越大, settings.py可能也会变得相当复杂. 在那种情...

5361
来自专栏恰童鞋骚年

.NET Core微服务之基于IdentityServer建立授权与验证服务(续)

上一篇我们基于IdentityServer4建立了一个AuthorizationServer,并且继承了QuickStartUI,能够成功获取Token了。这一...

2785
来自专栏Hadoop实操

如何使用StreamSets实时采集Kafka并入库Kudu

3985
来自专栏日暮星辰

phpmyadmin与php.ini中的socket配置问题

昨天在安装完新的perconesql数据后,发现phpmyadmin不能正常连接了。一时查来查去不知出了什么问题。

1274
来自专栏FreeBuf

远程RPC溢出EXP编写实战之MS06-040

0x01 前言 MS06-040算是个比较老的洞了,在当年影响十分之广,基本上Microsoft大部分操作系统都受到了影响,威力不亚于17年爆出的”永恒之蓝”漏...

29310

扫码关注云+社区

领取腾讯云代金券