本文演示在基于 Docker 的 Alpine Linux 容器中通过源码安装 Nginx。
启动一个 Alpine 的容器
1 | docker run -it --name nginx-base alpine /bin/sh |
设置国内源
1 | echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.8/main/" > /etc/apk/repositories |
更新源
1 | apk update && apk upgrade |
安装 GCC 环境
1 | apk add build-base |
1 | apk add pcre pcre-dev |
PCRE - 全称 Perl Compatible Regular Expressions - Perl 兼容的正则表达式(库)。 Nginx 的 Rewrite 功能依赖于该库。
1 | apk add openssl openssl-dev |
1 | apk add zlib zlib-dev |
1 | apk add git |
1 | apk add wget |
1 | apk add curl |
构建 Nginx
获取源代码
1 | wget http://nginx.org/download/nginx-1.19.4.tar.gz |
解压 源文件
1 | tar -zxvf nginx-1.19.4.tar.gz |
进入解压后的目录,进行编译前的设置
1 | cd nginx-1.19.4 |
1 | ./configure |
系统显示类似以下的结果
1 | ..... |
执行 make, 进行构建
1 | make |
完成后,可以看到系统有类似以下的显示:
1 | ..... |
安装
1 | make install |
系统显示
1 | ..... |
可以看到, 编译好的 nginx 被安装在 /usr/local/nginx 目录中。
设置路径
打开 /etc/profile 文件,在最后加入
1 | export PATH=$PATH:/usr/local/nginx/sbin |
为了让修改生效,执行:
1 | source /etc/profile |
启动 nginx
在命令行执行:
1 | nginx |
然后执行:
1 | ps -a |
如果在系统反馈中看到 nginx, 则说明 nginx 已经编译成功,并能正常启动了。
1 | PID USER TIME COMMAND |
现在可以使用 curl 来测试一下, 执行:
1 | curl http://localhost |
可以看到 nginx 返回了nginx的默认网页。