三、配置文件
3.1、主配置文件
主配置文件所在路径为:
[root@kittod ~]# ll /etc/httpd/conf/httpd.conf
-rw-r--r--. 1 root root 11921 Oct 20 14:25 /etc/httpd/conf/httpd.conf
3.2、默认主配置文件详解
# ServerRoot:目录树的顶部,服务器的保留配置、错误和日志文件。不要在目录路径的末尾添加斜杠。 ServerRoot指令设置服务器所在的目录。通常,它将包含conf/和logs/子目录。其他配置指令(例如, Include或LoadModule)中的相对路径被视为相对于此目录。如果将ServerRoot指向非本地磁盘,如果使 用基于文件的互斥,请确保在互斥指令中指定本地磁盘。如果希望为多个httpd守护进程共享同一 ServerRoot,则至少需要更改PidFile。
ServerRoot "/etc/httpd"
# Listen指令指示apachehttpd只侦听特定的IP地址或端口;默认情况下,它响应所有IP接口上的请求。 Listen现在是一个必需的指令。如果它不在配置文件中,服务器将无法启动。
# Listen指令告诉服务器接受指定端口或地址和端口组合上的传入请求。如果只指定了端口号,服务器将侦 听所有接口上的给定端口。如果给定了IP地址和端口,服务器将侦听给定的端口和接口。
# 可以使用多个Listen指令指定要侦听的多个地址和端口。服务器将响应来自任何列出的地址和端口的请 求。
Listen 80
# 此指令允许在服务器配置文件中包含其他配置文件。
# Shell样式(fnmatch())通配符可用于路径的文件名或目录部分,以按字母顺序同时包含多个文件。此 外,如果Include指向一个目录而不是一个文件,apachehttpd将读取该目录和任何子目录中的所有文件。 但是,不建议包含整个目录,因为很容易意外地将临时文件留在目录中,从而导致httpd失败。相反,我们鼓 励您使用如下所示的通配符语法,以包括与特定模式匹配的文件,例如*.conf。 # 如果通配符表达式与任何文件不匹配,则Include指令将失败并出错。如果忽略不匹配的通配符,则可以使 用IncludeOptional指令。 # 指定的文件路径可以是绝对路径,也可以是相对于ServerRoot目录的路径。
Include conf.modules.d/*.conf
# 如果您希望httpd作为不同的用户或组运行,则必须首先以root用户身份运行httpd,然后它将切换。
# 用户/组:要作为运行httpd的用户/组的名称(或#编号)。
# 与大多数系统服务一样,创建一个专用的用户和组来运行httpd通常是一种好的做法。
User apache
Group apache
# ServerAdmin:您的地址,服务器问题应通过电子邮件发送到该地址。此地址出现在某些服务器生成的页 面上,例如错误文档。
例如admin@your-domain.com
ServerAdmin root@localhost
# ServerName提供服务器用于标识自身的名称和端口。这通常可以自动确定,但我们建议您指定,这是为了 防止启动过程中出现问题。
# 如果您的主机没有注册的DNS名称,请在此处输入其IP地址。
ServerName 0.0.0.0:80
# Directory指令包含一组仅适用于命名文件系统目录、子目录及其内容的指令。
# <Directory>和</Directory>用于封装一组指令,这些指令仅适用于命名目录、该目录的子目录以及相 应目录中的文件。可以使用目录上下文中允许的任何指令。目录路径可以是目录的完整路径,也可以是使用 Unix shell样式匹配的通配符字符串。在通配符字符串中?匹配任何单个字符,*匹配任何字符序列。您还可以使用[]字符范围。所有通配符都不匹配“/”字符,因此<Directory "/*/public\u html">将不匹 配/home/user/public\u html,但<Directory "/*/public\u html">将匹配。
# 如果愿意,目录路径可以被引用,但是如果路径包含空格,则必须被引用。这是因为空格表示参数的结束。
# 拒绝访问服务器的整个文件系统。您必须明确允许访问下面其他<Directory>块中的web内容目录,none表 示忽略目录下的.htaccess文件
# 这里拒绝所有/的访问
<Directory />
AllowOverride none
Require all denied
</Directory>
# DocumentRoot:提供文档的目录。默认情况下,所有请求都来自此目录,但符号链接和别名可用于指向其 他位置。
DocumentRoot "/var/www/html"
# 允许对该目录的访问
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
# 进一步放宽对默认文档根目录的访问:
<Directory "/var/www/html">
# 这里启用了基于文件目录和符号链接的访问,注释改行表示关闭该功能
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 如果指定模块存在,则按照指定的指令执行
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
# 包含应用于匹配文件名的指令,这里拒绝了.ht前缀的所有文件
<Files ".ht*">
Require all denied
</Files>
# 错误日志路径,ErrorLog指令设置服务器将记录其遇到的任何错误的文件名。如果文件路径不是绝对路 径,则假定它是相对于ServerRoot的。
ErrorLog "logs/error_log"
# 日志级别,按照严重程度 debug < info < notice < warn < error < crit < alert < emerg.
LogLevel warn
# 访问日志格式化配置模块,详见
http://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
# alias:将web路径映射到文件系统路径,并用于访问不在DocumentRoot下的内容。
# ScriptAlias:控制哪些目录包含服务器脚本。脚本别名基本上与别名相同,只是目标目录中的文档被视 为应用程序,并在请求时由服务器运行,而不是作为发送到客户端的文档。关于尾随“/”的规则适用于 ScriptAlias指令和Alias指令。
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
# 对cgi目录的定义
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
# 对mime的配置
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
# 字符集配置
AddDefaultCharset UTF-8
# 对mime的配置
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
# 在支持它的系统上,可以使用内存映射或sendfile系统调用来传递文件。这通常会提高服务器性能,但在 从网络安装的文件系统提供服务时,或者在系统上中断对这些功能的支持时,必须将其关闭。
EnableSendfile on
# 包含其他配置文件
IncludeOptional conf.d/*.conf
3.3、默认测试页面
当用户没有自定义页面在默认目录 /var/www/html下时,服务器会按照以下配置文件引导访问该测 试页面。
[root@kittod ~]# ll /etc/httpd/conf.d/welcome.conf
-rw-r--r--. 1 root root 516 Jun 15 2020 /etc/httpd/conf.d/welcome.conf
如果需要自定义配置文件,建议按照主配置文件最后一行指令来包含指定后缀的文件
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
3.4、测试自定义页面
给指定文件写入信息,测试自定义页面
[root@kittod ~]# echo welcome to httpd! > /var/www/html/index.html
|