接上篇
4.logs(符号链接文件) 是/var/log/httpd的软连接,里面存放两类日志,access_log表示成功日志,error_log表示错误日志。
[root@controller httpd]# cd logs/
[root@controller logs]# ls
access_log error_log
[root@controller logs]# cat access_log
127.0.0.1 - - [17/Feb/2020:21:58:16 +0800] "HEAD / HTTP/1.1" 403 - "-" "curl/7.29.0"
::1 - - [16/Mar/2020:20:24:30 +0800] "GET / HTTP/1.1" 200 12 "-" "curl/7.29.0"
::1 - - [16/Mar/2020:20:29:00 +0800] "GET / HTTP/1.1" 200 12 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"
::1 - - [16/Mar/2020:20:29:00 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"
::1 - - [16/Mar/2020:20:29:00 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"
//::1 表示客户端 本地回环的IP地址
[16/Mar/2020:20:24:30 +0800] 表示访问日期
GET 表示使用HTTP的方法: GET获取网页的方法
/ HTTP/1.1表示使用的HTTP协议的版本
Firefox是RHEL中默认的网页版浏览器
Mozilla(浏览器类型):火狐浏览器所在的公司的名字。 Firefox/38.0 客户端用Firefox浏览器。
Apache的日志文件真实存在于/var/log/httpd中
实质是一个软链接。
5.modules:它是/usr/lib64/httpd/modules的软链接,存放的是httpd的模块文件。
[root@controller httpd]# cd modules/
[root@controller modules]# ls
mod_access_compat.so mod_buffer.so mod_filter.so mod_mpm_worker.so mod_slotmem_plain.so
mod_actions.so mod_cache_disk.so mod_headers.so mod_negotiation.so mod_slotmem_shm.so
//都是.so结尾的文件,是Apache的模块文件,这些文件又叫做动态链接库。
共享链接库:shareobject
有一些模块可以创建配置文件,有一些模块不允许创建配置文件。
Apache高度模块化,一个模块一个功能,它本身很小,依赖于这些模块,这些模块存放在/usr/lib64/httpd/modules
6.run:是/run/httpd的软链接,记录运行的Apache的主进程编号。存放进程锁文件:记录着运行的Apache的主进程编号。
避免这头启动一个Apache,那头启动一个Apache,去损坏Apache,如果一个进程被多次打开(有人读有人写,造成IO的错误)。
[root@controller httpd]# cd run
[root@controller run]# ls
authdigest_shm.3918 htcacheclean httpd.pid
[root@controller run]# cat httpd.pid
3918
//主进程的pid是3918
验证一下:
[root@controller run]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-03-16 20:18:33 CST; 24h ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 3918 (httpd)
发现运行的httpd就是3918
[root@controller httpd]# cd run
[root@controller run]# ls
authdigest_shm.3918 htcacheclean httpd.pid
[root@controller run]# systemctl stop httpd
[root@controller run]# ls
htcacheclean
//停止服务后发现只有htcacheclean
htcacheclean:每一个服务在run下都有一个文件夹,这个文件夹记录着自己启动后的进程编号,一个好处是如何反复起一个进程,那个系统凭什么帮你回显,帮你记录。
系统上默认在run这个文件夹下记录着各种服务在启动时候的进程编号。
关于run的一个知识点:
想安装一个软件包:都不要给 -y
[root@controller run]# yum install samba*
在另一个终端上:
[root@controller run]# yum install vsftpd.x86_64
Loaded plugins: fastestmirror, langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 7863.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 79 M RSS (476 MB VSZ)
Started: Tue Mar 17 21:08:38 2020 - 01:37 ago
State : Sleeping, pid: 7863
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 79 M RSS (476 MB VSZ)
Started: Tue Mar 17 21:08:38 2020 - 01:39 ago
State : Sleeping, pid: 7863
//回显yum正在使用中,一个进程正在使用的时候,在/var/run下有一个进程锁,就是该进程的一个pid文件,说这个文件是存在的状态,所有当前是安装不了 yum的。
yum是一个单进程的服务,现在有人占用它的线程,并且它的线程的编号已经被写到/var/run下面了,系统为了保护单进程的服务,不会让你在进行安装,让你等。如果你不想等可以这样做:
[root@controller run]# rm -f /var/run/yum.pid //把这个进程锁给删了
[root@controller run]# yum install vsftpd.x86_64
//再次安装软件包则它这头就是可以安装的了。