Ubuntu 下通过源码安装 Nginx 1.6.2 到自定义目录 /home/aot/nginx
的步骤
以下是将 Nginx 1.6.2 源码包离线安装到自定义目录的详细流程,包含依赖管理、编译配置和服务管理:
一、准备工作
1. 下载源码包和依赖(需联网环境准备)
- Nginx 1.6.2 源码包:
从官网下载 nginx-1.6.2.tar.gz。 - 依赖库(若离线需提前下载):
# 在联网机器上下载编译依赖(Ubuntu) apt-get download build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
2. 传输文件到离线服务器
将以下文件通过 U 盘或内网传输到目标服务器:
nginx-1.6.2.tar.gz
- 依赖的
.deb
包(如build-essential_*.deb
,libpcre3-dev_*.deb
等)
二、安装编译依赖
1. 安装 .deb
包
# 进入依赖包目录
cd /path/to/deps# 安装所有依赖
sudo dpkg -i *.deb
2. 验证工具链
# 检查 gcc 和 make 是否可用
gcc --version
make --version
三、编译安装 Nginx
1. 解压源码包
tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
2. 配置编译选项(指定安装路径)
./configure \--prefix=/home/aot/nginx \ # 指定安装目录--with-http_ssl_module \ # 启用 SSL 模块--with-pcre \ # PCRE 正则库支持--with-zlib # 压缩库支持
- 若提示依赖缺失:检查是否已安装
libpcre3-dev
和zlib1g-dev
。
3. 编译并安装
make
sudo make install # 需要 sudo 权限写入系统目录(如 /usr/local/lib)
四、配置环境变量
1. 将 Nginx 可执行文件路径加入 PATH
echo 'export PATH=/home/aot/nginx/sbin:$PATH' >> ~/.bashrc
source ~/.bashrc
2. 验证安装
nginx -v
# 输出:nginx version: nginx/1.6.2
五、管理 Nginx 服务
1. 启动 Nginx
/home/aot/nginx/sbin/nginx
2. 停止 Nginx
/home/aot/nginx/sbin/nginx -s stop
3. 重新加载配置
/home/aot/nginx/sbin/nginx -s reload
4. 创建 Systemd 服务(可选)
sudo vim /etc/systemd/system/nginx.service
文件内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target[Service]
Type=forking
ExecStart=/home/aot/nginx/sbin/nginx
ExecReload=/home/aot/nginx/sbin/nginx -s reload
ExecStop=/home/aot/nginx/sbin/nginx -s quit
PIDFile=/home/aot/nginx/logs/nginx.pid[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx
六、验证服务状态
1. 检查端口监听
netstat -tulnp | grep nginx
# 正常输出:tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN <PID>/nginx
2. 访问默认页面
在浏览器输入服务器 IP 地址,若显示 “Welcome to nginx!” 表示成功。
七、常见问题解决
1. 编译时报错 C compiler cc is not found
- 原因:未安装编译工具链。
- 解决:离线安装
build-essential
包。
2. 启动时报错 bind() to 0.0.0.0:80 failed
- 原因:80 端口被占用(如 Apache)。
- 解决:关闭占用程序或修改 Nginx 端口:
# 编辑配置文件 vim /home/aot/nginx/conf/nginx.conf # 修改监听端口:listen 8080; /home/aot/nginx/sbin/nginx -s reload
3. 权限不足无法启动
- 原因:非 root 用户尝试绑定 1024 以下端口。
- 解决:
- 使用
sudo
启动。 - 或赋予端口绑定权限:
sudo setcap 'cap_net_bind_service=+ep' /home/aot/nginx/sbin/nginx
- 使用
八、卸载 Nginx
# 停止服务
/home/aot/nginx/sbin/nginx -s stop# 删除安装目录
rm -rf /home/aot/nginx# 移除 Systemd 服务(如果已创建)
sudo rm /etc/systemd/system/nginx.service
sudo systemctl daemon-reload
总结
通过以上步骤,您已将 Nginx 1.6.2 安装到自定义目录,并配置了基础服务管理。如需更复杂的模块支持(如 HTTP2、GeoIP),可在 ./configure
阶段添加对应参数。建议定期检查 Nginx 安全公告,确保版本安全。