centos 安装nginx

本文介绍了在CentOS上安装Nginx的过程,包括依赖包的安装,解决依赖冲突的方法,以及从官方下载并安装Nginx的步骤。在安装过程中可能会遇到的错误,如yum无法解析主机,依赖库版本冲突等问题,文章提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考https://www.linuxidc.com/Linux/2016-09/134907.htm


Nginx的依赖包大概

gccPCRE pcre-devel、zlib 、openssl

要是yum安装遇到http://apt.sw.be/redhat/el7/en/x86_64/dag/repodata/repomd.xml:

[Errno 14] curl#6 - "Could not resolve host: apt.sw.be; Name or service not known"

使用传送门https://blog.youkuaiyun.com/wandrong/article/details/80487304

检查本地是否己安装可以用whereis或者rpm -q 查询

接下来开始安装

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

当安装pcre或其他库时报系统多版本冲突时,如

Protected multilib versions: pcre-8.32-17.el7.x86_64 != pcre-8.32-15.el7_2.1.i686

这里有一个骚操作,绝对让人印象深刻。包冲突时想删掉系统自带的

rpm -e --nodeps pcre*

结果导致涉及正则表达式的指令都不能使用了,包括yum,rpm,wget,ls,ll,ssh等等等等

都会报类似的error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 

网上查过一天资料,有说删了就重新下载的,可yum用不了,wget用不了

官网下包然后上传到服务器的,进行rpm -ivh时又用不了。

最重要的是,ssh用不了,会话超时时,终端就再也登陆不上了。

有哥们使用U盘引导系统才把系统自带的相关库恢复回去,我是直接因为这句指令搞挂了机子,重装系统。

亲身经历可用的是在后面加参数 --setopt=protected_multilib=false,与系统自带的保持并存。

yum install pcre pcre-devel --setopt=protected_multilib=false

至此依赖包安装完毕。

可用rpm -qa 命令查看己安装的包 


进入主题

开始下载nginx,可以去官网下载http://nginx.org/en/download.html

我这里用wget直接下压缩包

下载到/usr/local/

wget http://nginx.org/download/nginx-1.14.0.tar.gz
cd /usr/local/
tar -zxvf nginx-1.14.0.tar.gz

默认的配置文件目录前缀是/usr/local/nginx,所以可以把文件目录rename一下,去掉版本号

cd /usr/local/nginx
./configure
make
make install
./configure

使用的是默认配置,推荐。

如果make时报错,则很有可能是前方依赖库没有装好,检查仔细。

执行到make install时也报了一个错

"conf/koi-win" 与"/usr/local/nginx/conf/koi-win" 为同一文件

这个是一个路径问题,执行以下

./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf

天灵灵,地灵灵,nginx快显灵

如无报错,可以尝试启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

看看会不会报错,再查看一下进程

[root@VM_158_53_centos nginx]# ps -ef|grep nginx
root     19674     1  0 11:06 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody   19675 19674  0 11:06 ?        00:00:00 nginx: worker process
root     19688 11240  0 11:06 pts/0    00:00:00 grep --color=auto nginx
终于跑起来了!!!





CentOS 系统上安装 Nginx 服务器可以通过多种方式进行,包括使用系统的包管理器(如 `yum` 或 `dnf`)进行安装,或者从源代码编译安装。以下是适用于不同 CentOS 版本的安装方法: ### 使用 `yum` 安装 Nginx(适用于 CentOS 7 和 CentOS 6) 1. **更新系统软件包** 在安装之前,确保系统上的软件包是最新的。 ```bash sudo yum update ``` 2. **安装 EPEL 仓库** Nginx 可能在默认的 CentOS 仓库中不可用,因此需要先安装 EPEL 仓库。 ```bash sudo yum install epel-release ``` 3. **安装 Nginx** 安装完成后,可以使用以下命令安装 Nginx。 ```bash sudo yum install nginx ``` 4. **启动 Nginx 服务** 安装完成后,启动 Nginx 服务并设置为开机自启。 ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 5. **验证安装** 安装并启动 Nginx 后,可以通过访问服务器的 IP 地址来验证是否成功。你将看到默认的 Nginx 欢迎页面[^2]。 ### 使用 `dnf` 安装 Nginx(适用于 CentOS 8) 1. **更新系统软件包** CentOS 8 使用 `dnf` 作为默认的包管理器,首先确保系统软件包是最新的。 ```bash sudo dnf update ``` 2. **安装 EPEL 仓库** 与 CentOS 7 类似,CentOS 8 也需要安装 EPEL 仓库来获取 Nginx。 ```bash sudo dnf install epel-release ``` 3. **安装 Nginx** 安装完成后,使用以下命令安装 Nginx。 ```bash sudo dnf install nginx ``` 4. **启动 Nginx 服务** 安装完成后,启动 Nginx 服务并设置为开机自启。 ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 5. **验证安装** 通过访问服务器的 IP 地址来验证是否成功安装 Nginx,你将看到默认的 Nginx 欢迎页面[^2]。 ### 从源代码编译安装 Nginx(适用于 CentOS 8) 如果你需要特定版本的 Nginx 或者希望自定义编译选项,可以从源代码编译安装。 1. **安装依赖项** 在编译 Nginx 之前,需要安装一些依赖项。 ```bash sudo dnf install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel ``` 2. **下载 Nginx 源代码** 从 [Nginx 官方网站](https://nginx.org/download/) 下载所需的版本。 ```bash wget https://nginx.org/download/nginx-1.20.1.tar.gz tar -zxvf nginx-1.20.1.tar.gz cd nginx-1.20.1 ``` 3. **配置编译选项** 使用 `./configure` 命令配置编译选项。 ```bash ./configure --prefix=/usr/local/nginx --with-http_ssl_module ``` 4. **编译并安装** 使用 `make` 和 `make install` 命令进行编译和安装。 ```bash make sudo make install ``` 5. **创建 systemd 服务文件** 为了方便管理 Nginx 服务,可以创建一个 systemd 服务文件。 ```bash sudo nano /etc/systemd/system/nginx.service ``` 添加以下内容: ```ini [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.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 PrivateTmp=true [Install] WantedBy=multi-user.target ``` 6. **重新加载 systemd 配置** 创建完服务文件后,重新加载 systemd 配置。 ```bash sudo systemctl daemon-reexec ``` 7. **启动并启用 Nginx 服务** 启动 Nginx 服务并设置为开机自启。 ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` ### 配置防火墙(适用于 CentOS 7 和 CentOS 8) 如果你的服务器启用了防火墙(如 `firewalld`),需要允许 HTTP 和 HTTPS 流量。 ```bash sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload ``` ### 常用命令 - **启动 Nginx** ```bash sudo systemctl start nginx ``` - **停止 Nginx** ```bash sudo systemctl stop nginx ``` - **重启 Nginx** ```bash sudo systemctl restart nginx ``` - **查看 Nginx 状态** ```bash sudo systemctl status nginx ``` - **重新加载配置文件** ```bash sudo systemctl reload nginx ``` 通过以上步骤,你可以在 CentOS 系统上成功安装并配置 Nginx 服务器。根据你的需求选择适合的方法进行安装和配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值