要在 CentOS 7 上安装 Nginx 1.26.2 版本(或其他版本)并通过源码进行安装,下面是详细的步骤:
首先,确保你的系统已经安装了必要的依赖包。打开终端并运行以下命令:
sudo yum update -y
sudo yum install -y gcc make pcre-devel zlib-devel openssl-devel
前往 Nginx 官方网站 获取最新版本的 Nginx。如果你需要下载 Nginx 1.26.2,使用 wget
或 curl
来下载源码包:
cd /usr/local/src
sudo wget http://nginx.org/download/nginx-1.26.2.tar.gz
或者使用 curl
:
cd /usr/local/src
sudo curl -O http://nginx.org/download/nginx-1.26.2.tar.gz
下载完成后,解压源码包:
sudo tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2
在编译 Nginx 之前,你需要配置它。你可以根据自己的需求选择不同的模块或功能。这里给出一个常见的配置:
sudo ./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/nginx.pid \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-pcre
--prefix=/usr/local/nginx
:指定 Nginx 安装目录。--with-http_ssl_module
:启用 SSL 支持。--with-http_v2_module
:启用 HTTP/2 支持。--with-pcre
:启用 PCRE 支持,通常用于正则表达式处理。你可以根据需要加入其他模块。如果你不确定,可以运行 ./configure --help
来查看所有可选配置。
配置完成后,运行以下命令开始编译:
sudo make
这一步会根据配置选项来编译 Nginx,可能需要几分钟时间。
编译完成后,可以使用以下命令安装 Nginx:
sudo make install
这将把 Nginx 安装到你之前配置的路径下。
安装完成后,可以通过以下命令启动 Nginx:
sudo /usr/local/nginx/sbin/nginx
如果希望 Nginx 在系统启动时自动启动,可以创建一个系统服务。
首先,创建一个新的 nginx.service
文件:
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 stop
PIDFile=/usr/local/nginx/nginx.pid
[Install]
WantedBy=multi-user.target
保存并退出文件后,重新加载 systemd 配置:
sudo systemctl daemon-reload
现在可以启用并启动 Nginx 服务:
sudo systemctl enable nginx
sudo systemctl start nginx
如果你的 CentOS 7 上启用了防火墙,确保允许 HTTP 和 HTTPS 流量:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
在浏览器中访问你的服务器 IP 地址,应该能看到 Nginx 的欢迎页面。如果安装成功,页面会显示类似以下内容:
Welcome to nginx!
你还可以通过命令行检查 Nginx 状态:
sudo /usr/local/nginx/sbin/nginx -t
如果配置正确,你会看到:
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
停止 Nginx:
sudo /usr/local/nginx/sbin/nginx -s stop
重启 Nginx:
sudo /usr/local/nginx/sbin/nginx -s reload
通过这些步骤,你已经成功在 CentOS 7 上通过源码安装了 Nginx 1.26.2。你可以根据需要调整配置文件,安装更多模块,或者自定义其他设置。
如果在 CentOS 7 上执行 sudo nano
时出现 command not found
错误,说明 nano
编辑器没有安装。你可以选择安装 nano
或使用其他编辑器(如 vim
或 vi
)进行编辑。
nano
编辑器如果你希望继续使用 nano
,可以通过以下命令安装它:
sudo yum install nano -y
安装完成后,你可以重新运行:
sudo nano /etc/systemd/system/nginx.service
vi
或 vim
编辑器如果你不想安装 nano
,可以使用 CentOS 上默认安装的 vi
或 vim
编辑器。命令如下:
sudo vi /etc/systemd/system/nginx.service
使用 vi
编辑器时,按以下步骤操作:
i
进入插入模式,开始编辑文件。Esc
键退出插入模式。:wq
保存并退出。如果你不想保存更改,可以输入 :q!
退出而不保存。
选择适合你的编辑器,继续设置 Nginx 服务即可。
如果在 CentOS 7 上看到 FirewallD is not running
的提示,说明 firewalld
服务没有启动或没有安装。
firewalld
状态首先,你可以通过以下命令检查 firewalld
是否正在运行:
sudo systemctl status firewalld
如果看到类似于 inactive
或 not found
的状态,说明 firewalld
没有启动或者没有安装。
firewalld
如果 firewalld
已经安装但没有启动,可以通过以下命令启动它:
sudo systemctl start firewalld
然后,检查它是否成功启动:
sudo systemctl status firewalld
firewalld
开机自启如果你希望 firewalld
在系统启动时自动启动,可以运行以下命令:
sudo systemctl enable firewalld
firewalld
(如果没有安装)如果 firewalld
没有安装,可以通过以下命令进行安装:
sudo yum install firewalld -y
安装完成后,启动并设置开机自启:
sudo systemctl start firewalld
sudo systemctl enable firewalld
如果 firewalld
启动后,你需要允许 HTTP 和 HTTPS 流量(常见的 Web 服务),可以使用以下命令:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
firewalld
如果你不打算使用 firewalld
,你可以选择禁用它并使用 iptables
或其他防火墙管理工具。禁用 firewalld
的命令如下:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
然后,你可以启用和配置 iptables
来进行防火墙管理。
firewalld
未运行或未安装,可以通过安装并启用它。firewalld
,可以禁用它并使用其他防火墙管理工具。