1. 安装编译所需的工具库
Nginx 是用 C 写的,所以需要先安装编译器和相关的依赖库。执行以下命令(如果提示需要 root 密码,请输入):
对于 Ubuntu/Debian 系统:
bash
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
对于 CentOS/RHEL 系统:
bash
sudo yum groupinstall "Development Tools"
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel
2. 创建安装目录
直接创建你想要的目标目录:
bash
mkdir -p /opt/qxq/service/nginx
3. 下载 Nginx 源码包
我们进入一个临时目录,下载最新的稳定版 (Stable) Nginx 源码。你可以去 Nginx 官方下载页 查看最新版本号。
bash
# 进入临时文件夹,比如 /tmp
cd /tmp
# 下载源码包 (以 nginx-1.24.0 为例,如果版本更新请替换链接中的版本号)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
# 解压
tar -zxvf nginx-1.24.0.tar.gz
# 进入解压后的目录
cd nginx-1.24.0
开始“傻瓜式”安装
现在,最关键的一步来了:配置编译选项。
4. 配置 (Configure)
下面的命令设置了安装路径、以及一些常用模块。
bash
./configure --prefix=/opt/qxq/service/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module
参数解释:
--prefix=/opt/qxq/service/nginx: 最重要! 指定安装的根目录就是你想要的路径。
后面的 --with-xxx 是启用一些常用的模块,比如 SSL 支持(用于 HTTPS)、状态页等。
如果这一步没有报错,会出现类似以下的总结信息,表示配置成功:
text
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/opt/qxq/service/nginx"
nginx binary file: "/opt/qxq/service/nginx/sbin/nginx"
...
5. 编译 (Make)
这一步会根据上一步的配置,将源代码编译成可执行文件。
bash
make
这个过程会输出很多编译信息,只要最后没出现 error 就没事。
6. 安装 (Make Install)
这一步才会真正把文件安装到第 4 步指定的 /opt/qxq/service/nginx 目录中去。
bash
make install
安装完成后,你的 /opt/qxq/service/nginx 目录下就会出现以下结构的文件:
text
/opt/qxq/service/nginx/
├── sbin/
│ └── nginx # 主程序文件
├── conf/ # 配置文件目录
│ ├── nginx.conf # 主配置文件
│ └── ...
├── html/ # 默认网站根目录
│ ├── 50x.html
│ └── index.html
└── logs/ # 日志文件目录 (运行后才会生成)
运行和测试
7. 启动 Nginx
进入安装目录的 sbin 文件夹,启动它:
bash
# 进入安装目录下的sbin文件夹
cd /opt/qxq/service/nginx/sbin
# 启动nginx
./nginx
8. 检查是否安装成功
方法一:检查进程
bash
ps aux | grep nginx
如果看到有 master process 和 worker process 就说明成功启动了。
方法二:访问测试
在你的浏览器中输入你的服务器 IP 地址 (例如 http://你的服务器IP)。
如果能看到 “Welcome to nginx!” 的欢迎页面,就大功告成了!
方法三:查看端口
bash
netstat -anltp | grep :80
应该能看到 nginx 程序正在监听 80 端口。
常用命令 (在 /opt/qxq/service/nginx/sbin 目录下执行)
停止: ./nginx -s stop
优雅停止 (等当前请求处理完): ./nginx -s quit
重新加载配置文件 (修改配置后必用): ./nginx -s reload
检查配置文件语法是否正确: ./nginx -t
可能遇到的问题和解决:
如果启动时报错 bind() to 0.0.0.0:80 failed (13: Permission denied)
原因: Linux 普通用户无法使用 1024 以下的端口。
解决:
A (推荐): 将监听端口改为 1024 以上的,比如 8080。修改 /opt/qxq/service/nginx/conf/nginx.conf 文件,将 listen 80; 改为 listen 8080;,然后重新启动。
B: 用 root 权限启动(不推荐,违背了安全原则):sudo /opt/qxq/service/nginx/sbin/nginx
如何开机自启?
这种编译安装方式不会自动配置系统服务。如果需要,可以手动创建一个 systemd 服务文件,但对于“傻瓜式”安装,暂时可以先不用考虑。