Linux基础命令《下》

2020-07-08 00:00:00 用户 命令 启动 配置文件 端口

上一篇讲解了nginx的四种安装方式,同样穿插着讲了一些常用命令。

Nginx默认的监听端口是80. 那么我们给他设置成81端口该如何设置?

因为是好几天前安装的nginx了,此时已经忘记nginx安装在什么地方了,也忘记配置文件在什么地方了,那么我们可以使用 find命令来查找。

find / -name nginx find命令就是查询文件 / 就是要查找的目录 -name 表示要查找的是文件名 nginx 值得是要查的文件名字

可以看到 /usr/bin/下有nginx的执行程序,那么我们也肯定安装了nginx。

那再去查询一下配置文集所在的位置

find / -name nginx.conf nginx配置文件默认为nginx.conf

可以看到配置文件在 /usr/local/conf/nginx.conf

下来修改nginx的配置,去修改端口号,以及启动所用的用户等,本篇文章不会详细的介绍nginx的一些配置,只会讲一些会用到本章所讲命令而设置到的配置。

打开配置文件, vim /usr/local/conf/nginx.conf

user nobody; 指的是用 nobody用户启动,我们修改成 nginx,并且去掉注释。

即 user nginx;

access_log logs/access.log main; 用户的访问日志所在的位置。我们自定义目录,就放在 /root/nginxlog 下吧

即 access_log /root/nginxlog/access.log;

手动创建目录 mkdir /root/nginxlog

listen 80; 监听在80端口,这个我们改成 81端口即可。

即 listen 81;

:wq 保存退出。

更改后的配置如下:

然后我们来启动nginx。

使用命令来启动nginx,即 nginx -c /usr/local/conf/nginx.conf nginx命令 -c 后面跟配置文件路径

上面我们知道nginx执行程序,在 /usr/bin下。所以我们的启动命令为: /usr/bin/nginx -c /usr/local/conf/nginx.conf

看到第二行有错误。

这说明我们的nginx这个用户是不存在的。

可以验证一下,使用 id nginx

那么我们来创建这个nginx用户。

命令为 useradd nginx

再次使用 id nginx查看,发现现在已经有这个用户了。

那我们再次启动看看。可以看到启动成功了

可以看到已经监听在了81端口了。使用 http://192.168.1.30:81 访问试试。

上面的 ss -tnlp 命令用来显示所有本机监听的端口的

可以看到我们在81端口也访问到nginx了。之前是80端口。

看一下之前设置的日志目录是否有日志产生。

可以看到已经有日志产生了。

我们上面是通过root用户启动的nginx,可以查看进程验证 ps -ef | grep nginx

那么想用我们创建的用户nginx启动呢,就需要先切换到该用户下了,然后再执行启动命令了。

切换用户命令 su - nginx

然后再使用 /usr/bin/nginx -c /usr/local/conf/nginx.conf 启动。

在启动之前,我们应该先切换到root目录下把nginx先关闭掉。

CTRL + D 退出当前用户,就到root用户了。

使用 ps -ef | grep nginx 查看nginx的进程,进程ID有:10145 10146

使用 kill -9 pid 杀掉进程

再使用 ps -ef | grep nginx 已经没有了。

再切换到nginx用户去启动nginx。

发现启动保存了,有2个文件没有权限,那么我们看一下这2个文件都是什么权限

因为nginx不能查看这些文件的权限,那么我们依旧使用 CTRL + D 退到root用户。

可以看到,这2个的属主和属组都是root,所以nginx没有权限访问。

所以我们需要用root用户给文件夹 /root/nginxlog/ 和 /usr/local/logs/error.log 添加nginx为属主和属组。

命令是:

chown nginx:nginx -R /root/nginxlog

chown nginx:nginx -R /usr/local/logs/error.log

添加权限以后再启动试试。

发现还是不行,因为 access.log 是在 root的家目录(/root)下所以就算 access.log文件有权限,但是没有/root目录的权限也是不行的。

所以我们要给access.log换一个目录,换到nginx的家目录下(/home/nginx/access.log)

当然nginx用户是没有权限去剪贴文件的,所以还需要退到root用户来操作, CTRL+D

切回到root用户后执行命令:mv /root/nginxlog /home/nginx/

移动完成后,不要忘记修改nginx的配置文件,因为目前nginx的配置文件是指向 /root/nginxlog/access.log的,我们需要修改指向到/home/nginx/nginxlog/access.log

:wq保存退出,再次 su 到 nginx用户。 su nginx

再次启动,发现没有报文件权限的错误的,但是又失败了,说不能监听81端口,又没有权限,这是怎么回事呢?

那是因为:Linux只有root用户可以使用1024一下的端口

那我们就再次修改一下端口,修改为8080端口去启动、

修改配置文件呢,还是需要退到root用户下去操作,为了方便,我们退到root目录后,直接给配置文件nginx用户的权限,这样以后nginx用户也是可以直接去修改配置文件了。

CTRL + D 退到root, 再 chown nginx:nginx /usr/local/conf/nginx.conf 给配置文件 nginx为属组和属主

修改端口为 8080 后再次启动尝试。

启动又是pid没有权限,那么大家应该很懂了吧。没有就用root用户给赋予权限。

再切换到nginx用户去启动:

可以看到虽然启动有警告,但是不影响启动,已经成功了,端口也监听成功了。

那我们再去 http://192.168.1.30:8080 访问。

好了,今天的文章到此结束了。

总结:

使用到的新命令:

exit / :wq :退出当前用户

useradd :创建用户

chown :赋予用户权限

su : 切换到一个用户

find : 用来查找文件 (更多使用以后碰到再讲)

ss -tnlp : 查看监听端口

感谢大家阅览

看更多内容请关注微信公众号:程序猿面试大全

相关文章