本来以为yum升级一下就行了了,结果发现yum一直没有更新,最新版本就是1.12的,上官网看了下最新已更新到1.15.5,干脆下载安装包更新下吧。
准备
备份vhost,cert证书目录
卸载旧版
yum remvoe nginx
http://nginx.org/en/download.html 官网下载最新版本安装包
上传至服务器文件夹,这里上传到 media 文件夹举例。
解压文件
$ cd /media $ tar -zxvf nginx-1.15.5.tar.gz
这时候会产生一个新的文件夹 nginx-1.15.5
安装
cd nginx-1.15.5 //检测./configure --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-http_sub_module --with-stream --with-stream=dynamic
//等待结果,如果提示报错;根据提示安装一下依赖包:
$ yum install gcc-c++ $ yum install pcre pcre-devel $ yum install zlib zlib-devel $ yum install openssl openssl--devel
(吐槽:为什么不提前安装好依赖包?好问题,我也是提前装好了所有包,鬼知道一直提示需要安装openssl,弄了几次路径链接都不行,干脆重装搞定了。。。)
ok!继续,没有出错,安装
$ make && make install
如果没有出错,good,测试启动
cd /etc/nginx //指定安装的目录 ./sbin/nginx //启动 ./sbin/nginx -s stop //停止 pkill nginx //停止
1.15目录变更,如图
配置文件不再放在根目录,统一在 conf 文件夹里
上传备份的cert (ssl 证书文件夹)文件
cd conf vi nginx.conf //配置个人vhost,不推荐直接替换文件,鬼知道会出现什么问题。。。
重配置systemctl命令
个人比较习惯这样操控,之前yum安装的比较简单,开机启动
yum enable nginx.service
现在是源码安装的,需要手动配置,这里也记录下
开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:
/lib/systemd/system/
在系统服务目录里创建nginx.service文件
vi /lib/systemd/system/nginx.service
内容如下
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/etc/nginx/sbin/nginx
ExecReload=/etc/nginx/sbin/nginx -s reload
ExecStop=/etc/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]:服务的说明
Description:描述服务After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
保存退出。
其他命令
启动nginx服务
systemctl start nginx.service
设置开机自启动
systemctl enable nginx.service
停止开机自启动
systemctl disable nginx.service
查看服务当前状态
systemctl status nginx.service
重新启动服务
systemctl restart nginx.service
查看所有已启动的服务
systemctl list-units --type=service