如果之前有安装失败了,就先删除
# 停止nginx服务
systemctl stop nginx
# 删除之前的安装
rm -rf /usr/local/nginx
rm -rf /etc/nginx
rm -rf /var/log/nginx
rm -rf /var/run/nginx.pid
rm -rf /var/lock/nginx.lock
1. 安装编译依赖
bash
复制
sudo yum install -y gcc make pcre-devel zlib-devel openssl-devel wget
- 关键依赖说明:
pcre-devel:正则表达式支持(用于rewrite模块)。zlib-devel:Gzip 压缩支持。openssl-devel:HTTPS 加密支持(如需 TLS 1.3 需 OpenSSL 1.1.1+)。
2. 下载 Nginx 源码
推荐使用 稳定版(如 1.25.3):
bash
复制
wget https://nginx.org/download/nginx-1.25.3.tar.gz tar -zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3
# 进入nginx源码目录
cd nginx-1.25.3
让我们一步步排查问题:
1. **首先检查安装过程是否有错误**:
```bash
# 进入nginx源码目录
cd nginx-1.25.3
# 清理之前的编译
make clean
# 配置
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-threads \
--with-stream
# 检查configure是否成功
echo $?
# 编译
make -j$(nproc)
# 检查make是否成功
echo $?
# 安装
sudo make install
# 检查make install是否成功
echo $?
```
2. **检查nginx可执行文件是否存在**:(可以直接去nginx目录看)

```bash
# 检查nginx可执行文件
ls -l /usr/local/nginx/sbin/nginx
```
3. **手动创建必要的目录和文件**:
```bash
# 创建必要的目录
sudo mkdir -p /usr/local/nginx/conf
sudo mkdir -p /usr/local/nginx/logs
sudo mkdir -p /usr/local/nginx/sbin
# 设置权限
sudo chown -R nginx:nginx /usr/local/nginx
```
4. **检查源码目录中的配置文件**:
```bash
# 在nginx源码目录中
ls -l objs/nginx.conf
```
5. **手动复制配置文件**:
```bash
# 复制配置文件
sudo cp objs/nginx.conf /usr/local/nginx/conf/
```
6. **检查nginx是否可用**:
```bash
# 测试nginx配置
/usr/local/nginx/sbin/nginx -t
```
7. **检查安装日志**:
```bash
# 查看安装日志
sudo cat /var/log/messages | grep nginx
```
8. **检查磁盘空间**:
```bash
# 检查磁盘空间
df -h
```
9. **检查nginx用户**:
```bash
# 检查nginx用户是否存在
id nginx
# 如果不存在,创建nginx用户
sudo useradd -r nginx
```
10. **更新systemd服务文件**:
```bash
sudo tee /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
User=nginx
Group=nginx
[Install]
WantedBy=multi-user.target
EOF
# 重新加载systemd配置
sudo systemctl daemon-reload
```
请执行这些步骤,并告诉我:
1. configure 命令执行后是否有错误输出?
2. make install 命令执行后是否有错误输出?
3. 源码目录中的 objs/nginx.conf 文件是否存在?

3988

被折叠的 条评论
为什么被折叠?



