1、准备编译环境
yum install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
-
List item
-
gcc:可以编译C和C++源代码
-
gcc-c++:编译c++(可以这么理解)
-
automake:从Makefile.am文件自动生成Makefile.in的工具
-
pcre pcre-devel:在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因为Nginx 的Rewrite模块和HTTP 核心模块会使用到PCRE正则表达式语法
-
zlip zlib-devel:nginx启用压缩功能的时候,需要此模块的支持。
-
openssl openssl-devel:开启SSL的时候需要此模块的支持。
2、下载安装包
wget http://nginx.org/download/nginx-1.14.2.tar.gz, 我们下载到home目录。如果没有安装wget,通过yum install wget安装。
3、解压缩
tar -xvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
这里我们解压到当前目录。
4、进入正题
nginx 编译需要3个步骤:
- configure
- make
- make install
下面,分别执行!
4.1、
./configure --prefix=/usr/local/nginx
–sbin-path=/usr/local/nginx/sbin/nginx
–conf-path=/usr/local/nginx/conf/nginx.conf
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–user=nginx --group=nginx
–with-http_ssl_module
–with-http_stub_status_module
–with-http_gzip_static_module
–http-client-body-temp-path=/var/tmp/nginx/client/
–http-proxy-temp-path=/var/tmp/nginx/proxy/
–http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
–http-scgi-temp-path=/var/tmp/nginx/scgi
–with-pcre
解释:命令大概分为3部分,第一部分,指定nginx文件的路径;第二部分,制定nginx模块。详细的解释,可以看configure的帮助文件:
./configure --help | more
4.2、 make
4.3、make install
不报错的话,就安装完成了。
5、启动
nginx编译完成,会在指定的目录生成可执行的文件,我们这里的目录是/usr/local/nginx(不明白的同学,可以回头看看上面的configure 命令)。我们先看一下目录结构:
目录解释:
- conf:nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
- html: 保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
- sbin: 保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。
5.1、启动
cd sbin
./nginx
报如下错误:
这是因为,没有nginx用户,如下解决:
useradd -s /sbin/nologin -M nginx
id nginx
再次执行./nginx,还出错,如图:
这是没有目录的原因,根据,提示创建目录即可, 注意,最后一个client目录,不用创建。
再次执行./nginx,未出现任何错误。成功启动。用浏览器访问:
默认端口80,成功!