版本 Nginx 1.18.0 , CentOS 7 Linux
编译 nginx, 需要 zlib 包, pcre 包, --with-http_ssl_module 模块, 需要 openssl 包
nginx-1.18.0.tar.gz , zlib-1.2.11.tar.gz , pcre-8.43.tar.gz , openssl-1.1.1k.tar.gz
解压 nginx-1.18.0.tar.gz
1. 先搞配置, 执行 configure 命令, 会在 nginx-1.18.0 目录下 生成 Makefile 文件 和 objs 文件夹
先执行最简单模块的编译
./configure \
--prefix=/opt/nginx \
--with-pcre=/opt/nginx-files/pcre-8.43 \
--with-zlib=/opt/nginx-files/zlib-1.2.11 \
--with-http_ssl_module \
--with-openssl=/opt/nginx-files/openssl-1.1.1k
稍微复杂一点的模块的编译
./configure \
--prefix=/opt/nginx \
--conf-path=/opt/nginx/conf/nginx.conf \
--user=nginx \
--group=nginx \
--pid-path=/opt/nginx/pid/nginx.pid \
--error-log-path=/opt/nginx/logs/error.log \
--http-log-path=/opt/nginx/logs/access.log \
--with-pcre=/opt/nginx-files/pcre-8.43 \
--with-zlib=/opt/nginx-files/zlib-1.2.11 \
--with-http_ssl_module \
--with-http_image_filter_module \
--with-http_stub_status_module
--prefix 是编译后nginx的安装目录
--with-pcre 是pcre包解压后的目录
--with-zlib 是zlib包解压后的目录
--with-http_ssl_module 是添加 http ssl 模块
--with-openssl 是openssl包解压后的目录
2. 在 nginx-1.18.0 目录下执行 make 命令进行编译
3. 在 nginx-1.18.0 目录下执行 make install 命令进行安装
然后在 /opt/nginx 目录下就有了相关的文件, 下面是 nginx 的默认路径
pid文件: /opt/nginx/logs/nginx.pid
conf文件: /opt/nginx/conf/nginx.conf
error.log文件: /opt/nginx/logs/error.log
4. 执行 sbin/nginx 命令, 使用默认的conf配置文件启动nginx
执行 sbin/nginx -h 查看命令的帮助信息
nginx 的初始目录下有: conf, html, logs, sbin 四个文件夹
可能会遇到的问题
[emerg] getpwnam("nginx") failed 就是没有创建 nginx 这个用户
useradd -s /sbin/nologin -M nginx
the HTTP image filter module requires the GD library. http_image_filter_module 模块依赖 GD 库
yum -y install gd-devel