Apache-2.4
Apache 2.4:要求(例如全部被拒絕)指令未得到遵守
我在 Ubuntu 20.04 上執行 Apache 2.4.41 並且無法在我的 VirtualHost 上獲得任何 Require 指令。作為一個最低限度的工作範例,我的 VHost 文件:
<VirtualHost *:80> ServerName my.domain.com DocumentRoot "/var/www/html/admin" <Directory /var/www/html/admin> Require all denied </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
旨在阻止所有訪問,但日誌顯示:
[authz_core:debug] [pid 340724] mod_authz_core.c(735): [client ***.***.***.***:59008] AH01625: authorization result of <RequireAny>: granted (directive limited to other methods)
我在 Apache 配置樹的其他地方看不到任何對 Require 行為的覆蓋。例如,
/etc/apache2/apache.conf
包含:<Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None </Directory>
我載入的模組是:
Loaded Modules: core_module (static) so_module (static) watchdog_module (static) http_module (static) log_config_module (static) logio_module (static) version_module (static) unixd_module (static) access_compat_module (shared) alias_module (shared) auth_basic_module (shared) authn_core_module (shared) authn_file_module (shared) authz_core_module (shared) authz_host_module (shared) authz_user_module (shared) autoindex_module (shared) cgi_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) filter_module (shared) headers_module (shared) mime_module (shared) mpm_prefork_module (shared) negotiation_module (shared) php7_module (shared) proxy_module (shared) proxy_http_module (shared) remoteip_module (shared) reqtimeout_module (shared) rewrite_module (shared) setenvif_module (shared) socache_shmcb_module (shared) ssl_module (shared) status_module (shared)
apachectl -t
並apachectl -S
給出標準輸出。有人對我接下來應該去哪裡有任何想法嗎?
(提醒:Apache 2.4 不是 Apache 2.2 所以希望使用目前的術語)
感謝所有閱讀我的問題的人 - 我找到了一個解決方案並認為我會分享它。
我將 Apache2 樹移到一側並從儲存庫重新安裝了相關軟體包。Require 指令套件現在再次起作用,因此我比較了新舊樹以找出差異。
我發現了一個晦澀的指令,其中包含我放置在啟用 conf 的目錄中的 Require all 命令,結果證明這是問題的原因。
因此,如果 Apache 指令存在問題,值得檢查的不僅僅是 apache2.conf 和 vhosts 目錄——還要檢查 conf 和 mods 目錄!
乾杯