nginx使用yum安装及源码安装全过程

简介:nginx使用yum安装及源码安装全过程

书接上文,我们已经安装了PHP,今天我们来讲讲nginx安装吧!

nginx官方推荐使用yum方式进行安装,yum安装方式确实方便,可惜yum源上的nginx可能不是最新版本,如果你想要最新版本,还是需要源码进行安装,今天对这两种安装方式分别进行演示和说明

如果您没有看过我的【php源码安装】的文章,没有安装linux扩展库,请先安装如下扩展库:

#有些Linux扩展默认的镜像源上没有,当时epel上有,所以我们需要安装到epel镜像源
yum install -y epel-release
#安装Linux扩展库
yum install -y gcc gcc-c++ wget autoconf git unzip automake make perl-Data-Dumper boost-doc boost-devel vim zlib zlib-devel pcre pcre-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers sqlite-devel oniguruma oniguruma-devel libjpeg libjpeg-devel libpng libpng-devel gzip

如果你已经安装部分扩展,重新执行上面的命令即可,yum会自动跳过已安装的扩展库

一:yum安装

1.安装必备组件:

yum install -y yum-utils

如果权限不足,可以使用sudo加权

sudo yum install -y yum-utils

2.设置yum镜像源。创建/etc/yum.repos.d/nginx.repo文件,设置如下内容

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

注意:baseurlcentos 指的是系统,如果你使用的是 Amazon Linux 请将centos改成 amzn2

3.安装

yum install -y nginx

安装完成后可以使用 nginx -v 检查是否安装成功及安装的版本

yum方式安装默认安装路径为:/etc/nginx 目录下 

也可以使用 nginx -t 检查配置文件,从而判断其安装目录

4.启动关闭重载nginx

#查看nginx状态
service nginx status
#启动nginx
service nginx start
#关闭nginx
service nginx stop
# 重载nginx(重新启动nginx)
service nginx reload
#设置开启自启动
systemctl enable nginx
# 如果需要重新加nginx载配置文件
nginx -s reload
# 在重载nginx配置文件时,最好先检查一下配置文件是否有错误
nginx -t [配置文件路径,可以省略]

有人可能直接使用 nginx 回车启动,本人不建议大家使用这种方式启动,不易管理。

5.yum安装的nginx目录结构

#主程序
/usr/sbin/nginx
#安装目录
/etc/nginx
#配置文件
/etc/nginx/nginx.conf 
#默认日志文件,可以自己修改nginx配置文件
/var/log/nginx/access.log

 

二:源码安装

安装源码之前我们可能需要确认是否安装openssl,PCRE系统库:

# Ubuntu系统,如果已安装不会重复安装
sudo apt install libpcre3 libpcre3-dev openssl-devel
# centos系统,如果已安装不会重复安装
sudo yum install libpcre3 libpcre3-dev openssl-devel

1.下载nginx源码

wget http://nginx.org/download/nginx-1.22.1.tar.gz

2.解压缩

tar -zxvf nginx-1.22.1.tar.gz

3.进入源码目录编译安装

#进入源码目录
cd nginx-1.22.1
#生成编译文件
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/config/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --modules-path=/usr/local/nginx/modules  --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-pcre
#编译安装
make && make install
# 测试安装,如果没有错误则是已经安装成功
test -d

关于configure 参数作用及意义,可参考configure参数官网文档

安装完成后创建软链: ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

这样就可以使用nginx了

4.启动关闭重载nginx,但是在使用systemctl启动时可能会报错

这是因为找不到nginx.service文件,在 /usr/lib/systemd/system 目录下新建一个 nginx.service 文件,添加下内容

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/config/nginx.conf
ExecReload=/usr/bin/nginx -s reload
ExecStop=/usr/bin/nginx -s stop

[Install]
WantedBy=multi-user.target

使用 systemctl daemon-reload 命令使其生效,现在可以使用service启动nginx了

有遗漏或者不对的可以在我的公众号留言哦

编程经验共享公众号二维码

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1