在 Ubuntu 系统上,将 NGINX 安装到指定目录(例如 /usr/local)是完全可行的,尽管默认情况下,NGINX 会安装到 /etc/nginx 和 /usr/sbin/nginx 等目录中。为了将 NGINX 安装到自定义目录,我们可以选择从源代码编译并安装 NGINX。
以下是安装步骤:
1. 更新系统包
首先,确保你的 Ubuntu 系统是最新的,并安装所需的依赖包:
sudo apt update
sudo apt upgrade -y
2. 安装构建 NGINX 所需的依赖
在 Ubuntu 上编译 NGINX 需要一些开发工具和库。执行以下命令来安装必要的依赖:
sudo apt install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev
3. 下载 NGINX 源代码
从 NGINX 的官方网站下载最新的稳定版本源码包。
cd /usr/local/nginx #没有就手动建一个
wget https://nginx.org/download/nginx-1.25.1.tar.gz # 请根据需要下载最新版本
tar -zxvf nginx-1.25.1.tar.gz
cd nginx-1.25.1
4. 配置编译选项
在编译 NGINX 之前,需要使用 ./configure 命令来指定编译选项。这是将 NGINX 安装到指定目录的关键步骤。
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module \
--with-pcre --with-zlib=/usr/local/nginx
--prefix=/usr/local/nginx:指定安装路径为/usr/local/nginx。--conf-path:指定 NGINX 配置文件的位置。--pid-path:指定 NGINX 进程 ID 文件的位置。--with-http_ssl_module:启用 SSL 模块。--with-pcre:启用 PCRE 模块(用于正则表达式支持)。--with-zlib=/usr/local/nginx:如果你有自定义的 zlib 库,可以指定路径。
如果你不需要某些模块,可以通过调整配置选项来禁用它们。
5. 编译并安装 NGINX
配置完成后,运行以下命令来编译并安装 NGINX:
make
sudo make install
这将 NGINX 安装到 /usr/local/nginx 目录下。
6. 启动 NGINX
安装完成后,使用以下命令启动 NGINX 服务:
sudo /usr/local/nginx/sbin/nginx
你可以通过访问服务器的 IP 地址或 localhost 来验证 NGINX 是否成功启动:
http://localhost/
如果一切正常,你应该看到 NGINX 默认的欢迎页面。
你可以尝试通过以下命令来检查 NGINX 是否已经正确安装:
bash
复制代码
/usr/local/nginx/sbin/nginx -v
如果安装正确,应该显示 NGINX 的版本信息。例如:
yaml
复制代码
nginx version: nginx/1.25.1
如果可以正确显示版本,那么 NGINX 已经安装成功,只是没有添加到 PATH 中。
7. 将 NGINX 可执行文件路径添加到 PATH
为了方便以后使用 nginx 命令,你可以将 /usr/local/nginx/sbin 目录添加到 PATH 环境变量中。
- 打开
.bashrc文件来编辑你的环境变量:
bash
复制代码
nano ~/.bashrc
- 在文件的最后一行添加以下内容:
bash
复制代码
export PATH=$PATH:/usr/local/nginx/sbin
- 保存并关闭文件(按
Ctrl+X,然后按Y保存)。 - 使环境变量立即生效:
bash
复制代码
source ~/.bashrc
- 现在你应该能够通过以下命令访问 NGINX:
bash
复制代码
nginx -v
8. 配置 NGINX 服务(可选)
如果你希望 NGINX 作为系统服务运行(例如,通过 systemctl 管理),你需要手动创建一个 systemd 服务单元文件:
sudo nano /etc/systemd/system/nginx.service
将以下内容粘贴到文件中:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target
[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PIDFile=/usr/local/nginx/nginx.pid
[Install]
WantedBy=multi-user.target
保存并退出文件后,重新加载 systemd 并启动 NGINX:
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx
8. 停止或重新加载 NGINX
- 停止 NGINX:
sudo /usr/local/nginx/sbin/nginx -s stop - 重新加载 NGINX 配置:
sudo /usr/local/nginx/sbin/nginx -s reload
总结
通过以上步骤,你已经成功地将 NGINX 安装到自定义目录 /usr/local/nginx。在此过程中,我们通过从源代码编译 NGINX,指定了安装目录和相关配置文件路径。你可以根据需要进一步调整 NGINX 配置文件和模块。