安装方式
- yum(CentOS)
- apt-get(ubuntu)
- brew(mac)
- wget+make(通用)
在ubuntu中使用make安装会有很多包不存在,需要手动去安装。在mac中使用make安装会有很多权限相关的问题,建议直接使用brew。 ubuntu需要安装的一些常见的包,持续更新!
apt-get
apt-get update
apt-get install nginx -y
yum
yum install nginx -y
brew
# 首先安装brew
# https://brew.sh/
# 没有科学的同学,百度下国内版本
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装nginx
brew install nginx
编译安装
download
- Mainline version
最新的版本 - Stable version
稳定的版本 - Legacy versions
历史版本
我们选择稳定的版本: nginx-1.20.0
wget https://nginx.org/download/nginx-1.20.0.tar.gz
解压
tar -xzf nginx-1.20.0.tar.gz
-x 从压缩文件中还原文件。
-z 通过 gzip 指令处理压缩文件。
-f 指定压缩文件。
具体可以查看
tar
的命令
编译
参数介绍
./configure --help | more
nginx 执行过程中会找哪些目录下的哪些文件,做为他的辅助文件。
如果没有任何变动,只需要指定 --prefix
这个参数就行。
在执行过程中表示使用或者不使用哪些文件。一般以 with
或者 without
开头。
with
开头的模块默认是不会打包进 nginx 中的。加了代表会被打包进去
without
开头的默认会被编译进 nginx 中的。加了表示会被移除
nginx 编译中需要的一些特殊的参数,比如用到了 gcc 编译时候需要加一些参数、或者需要打印 debug 级别的日志。
默认编译
./configure --prefix=/home/kaikeba/nginx
代表使用的是默认编译,编译到目录 /home/kaikeba/nginx
。
make 编译
make
如果没有任何错误,就编译完成了,生成了大量的中间文件,并最终生成了可以运行的 nginx 二进制文件。可以在 objs 目录查看。
nginx 的目标文件放在 objs/nginx 这里。
如果我们要对 nginx 进行升级,不能执行 make install
. 需要在objs
目录把 nginx 执行文件 copy 到安装目录中。
c 语言编译时生成的所有中间文件,都会放在 objs/src
目录。
如果使用动态模块编译,会生成对应的 .so
文件也会放在 objs
目录下。
make install
首次安装时候使用这个命令。
安装完毕以后
cd /home/kaikeba/nginx
这里就是之前指定的安装目录。
- sbin
执行文件目录 - conf
配置文件目录,默认是从之前源码的 conf 目录中 copy 了一份过来 - logs
日志目录 - html
默认的网页目录
软连接
因为我们 --prefix
指定的安装目录不是 /usr/bin/nginx
,所以需要软连接到执行目录之后才能全局使用。
ln -s /home/kaikeba/nginx/sbin/nginx /usr/bin
启动nginx
nginx
# 或
service nginx start
卸载nginx
apt-get
# 停止nginx服务
sudo service nginx stop
# 删除除了配置文件以外的所有文件。
sudo apt-get remove nginx nginx-common
# 删除所有与nginx有关的东西,包括配置文件。
sudo apt-get purge nginx nginx-common
# 在上面命令结束后执行,主要是删除与Nginx有关的且不再被使用的依赖包。
sudo apt-get autoremove
# 删除两个主要的包。
sudo apt-get remove nginx-full nginx-common
yum
- 先停止 nginx 服务
sudo service nginx stop
相当于
sudo systemctl stop nginx.service
- 删除 nginx 的自动启动
chkconfig nginx off
systemctl disable nginx.service
- 删除 Nginx 本地文件
# 其实在执行yum remove nginx的时候,会清理 /usr/sbin/nginx
rm -rf /usr/sbin/nginx
rm -rf /etc/nginx
rm -rf /etc/init.d/nginx
- yum 清理
yum remove nginx
brew
sudo service nginx stop
brew uninstall nginx
# 最后根据提示删除对应的相关配置文件即可。
卸载通过make安装的
# 停止nginx服务
sudo service nginx stop
# 或
nginx -s quit
# 或
ps aux | grep nginx
kill -9 pid
# 删除软连接
rm -rf /usr/bin/nginx
# 删除nginx目录
rm -rf /home/kaikeba/nginx
# 删除其他比如日志文件等文件
# ...