# 定义Apache安装目录变量
Define SRVROOT "D:/Apache"

# 监听HTTP默认端口
Listen 80

# 服务器域名
ServerName localhost:80

# 设置服务器根目录引用,引用SRVROOT变量
ServerRoot "${SRVROOT}"

# 服务器管理员邮箱,错误页面显示的联系邮箱
ServerAdmin qz15@vip.qq.com

# 需要开启的模块

#ssl模块功能
LoadModule ssl_module modules/mod_ssl.so
#ssl模块缓存功能
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

# 系统默认开启的模块

 # 实现基于MIME类型的脚本执行
LoadModule actions_module modules/mod_actions.so
# 提供URL重定向和别名功能
LoadModule alias_module modules/mod_alias.so
# 限制HTTP方法
LoadModule allowmethods_module modules/mod_allowmethods.so
# 发送文件时不添加HTTP头
LoadModule asis_module modules/mod_asis.so
# 基本认证功能
LoadModule auth_basic_module modules/mod_auth_basic.so
# 核心认证功能
LoadModule authn_core_module modules/mod_authn_core.so
# 基于文件的认证提供者
LoadModule authn_file_module modules/mod_authn_file.so
# 核心授权功能
LoadModule authz_core_module modules/mod_authz_core.so
# 基于组的授权
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
# 基于主机名的访问控制
LoadModule authz_host_module modules/mod_authz_host.so
# 基于用户的授权
LoadModule authz_user_module modules/mod_authz_user.so
# 自动生成目录列表
LoadModule autoindex_module modules/mod_autoindex.so
# CGI脚本支持
LoadModule cgi_module modules/mod_cgi.so
 # 目录处理
LoadModule dir_module modules/mod_dir.so
 # 环境变量控制
LoadModule env_module modules/mod_env.so
 # 服务器端包含(SSI)
LoadModule include_module modules/mod_include.so
 # ISAPI扩展支持
LoadModule isapi_module modules/mod_isapi.so
# 日志配置
LoadModule log_config_module modules/mod_log_config.so
 # MIME类型关联
LoadModule mime_module modules/mod_mime.so
# 内容协商
LoadModule negotiation_module modules/mod_negotiation.so
# 基于请求头设置环境变量
LoadModule setenvif_module modules/mod_setenvif.so

# 设置运行Apache的用户和组
<IfModule unixd_module>
# 以daemon用户身份运行
User daemon
# 以daemon组身份运行
Group daemon
</IfModule>

# 安全防护配置
<Files ".ht*">
# 禁止访问.htaccess等配置文件
    Require all denied
</Files>

# 错误日志存储路径
ErrorLog "logs/error.log"
 # 日志警告级别（warn及以上）
LogLevel warn

# 访问日志配置
<IfModule log_config_module>

# 定义combined日志格式
    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>
# 如果有logio模块，定义combinedio日志格式
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
  # 使用common格式记录访问日志
    CustomLog "logs/access.log" common
</IfModule>

# 别名设置
<IfModule alias_module>
   
 ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"

</IfModule>

# CGI模块配置
<IfModule cgid_module>
</IfModule>

# CGI目录访问控制
<Directory "${SRVROOT}/cgi-bin">
 
# 禁止.htaccess覆盖
    AllowOverride None
# 无特殊选项
    Options None
# 允许所有访问
    Require all granted
</Directory>

# 请求头处理
<IfModule headers_module>
    RequestHeader unset Proxy early
</IfModule>

# MIME类型配置
<IfModule mime_module>
# MIME类型配置文件路径
    TypesConfig conf/mime.types
# 添加.Z文件的MIME类型
    AddType application/x-compress .Z
# 添加.gz和.tgz文件的MIME类型
    AddType application/x-gzip .gz .tgz
</IfModule>

# 代理HTML模块配置
<IfModule proxy_html_module>
# 包含代理HTML配置文件
Include conf/extra/proxy-html.conf
</IfModule>

# 目录权限控制（安全关键配置）
<Directory />
# 禁止.htaccess覆盖配置
    AllowOverride none
# 默认拒绝所有访问
    Require all denied
</Directory>

# 网站根目录设置
DocumentRoot "${SRVROOT}/htdocs"
# 网站文件存储主路径
<Directory "${SRVROOT}/htdocs">

# 允许目录列表和符号链接
    Options Indexes FollowSymLinks
 # 禁用.htaccess
    AllowOverride None
 # 允许所有访问
    Require all granted
</Directory>

# 默认首页文件（按优先级排序）
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>


# 开启SSL模块
<IfModule ssl_module>
# SSl需要开启的模块 (注意路径)
Include conf/extra/httpd-ssl.conf
# 启动时随机种子
SSLRandomSeed startup builtin
# 连接时随机种子
SSLRandomSeed connect builtin
</IfModule>

# 开启PHP功能模块,以下文件需在php8根目录下有
PHPIniDir "D:/php8"
LoadFile D:/php8/php8ts.dll
LoadFile D:/php8/libssh2.dll
LoadModule php_module "D:/php8/php8apache2_4.dll"
AddType application/x-httpd-php .php .html