Приветствую. Убил полдня, пока докопался до причины. Итак, есть Dev-машина на XP SP3 + все обновы, Apache: Код | C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd.exe -v Server version: Apache/2.2.11 (Win32) Server built: Dec 10 2008 00:10:06
C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd.exe -V Server version: Apache/2.2.11 (Win32) Server built: Dec 10 2008 00:10:06 Server's Module Magic Number: 20051115:21 Server loaded: APR 1.3.3, APR-Util 1.3.4 Compiled using: APR 1.3.3, APR-Util 1.3.4 Architecture: 32-bit Server MPM: WinNT threaded: yes (fixed thread count) forked: no Server compiled with.... -D APACHE_MPM_DIR="server/mpm/winnt" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/apache" -D SUEXEC_BIN="/apache/bin/suexec" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error.log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
|
+PHP, ну и ещё стоят MySQL и PostgreSQL, впрочем они тут не участвуют. Суть проблемы. С какого то момента перестали показываться каталоги без index.html/php. Апач упорно выдавал Код | 403 Forbidden You don't have permission to access / on this server.
|
записи в логе говорили о запрете просмотра каталогов без индекс-файлов: Код | [Fri May 23 10:19:58 2015] [error] [client 127.0.0.1] Directory index forbidden by Options directive: C:/WebServers/home/test2/
|
Буквально вчера всё работало, последие правки в конфиг вносились 3 месяца назад. Сам конфиг прост как двери и почти не отличается от дефолтного: Код | ThreadsPerChild 250 MaxRequestsPerChild 0 ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2" Listen 80
LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_default_module modules/mod_authz_default.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 LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule imagemap_module modules/mod_imagemap.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule userdir_module modules/mod_userdir.so
ServerAdmin [email protected]
ScriptAlias /php/ "c:/PHP-5.4.38/" AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php-cgi.exe"
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
<Directory /> AllowOverride All </Directory>
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"> Options +Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
<FilesMatch "^\.ht"> Order allow,deny Deny from all </FilesMatch>
ErrorLog logs/error.log LogLevel warn
<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> # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog logs/access.log common </IfModule>
<IfModule alias_module> ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" </IfModule>
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
DefaultType text/plain
<IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule>
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot c:/webservers/home/test2 ServerName test2 ServerAlias test2 </VirtualHost>
<IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule>
|
В корне C:/WebServers/home/test2/ естественно не было никаких .htaccess. Я долго ломал голову, правил конфиг и так и эдак. Ничего не помогало. Пока случайно не обнаружил в корне диска C: файл .htaccess такого содержания: Код | DirectoryIndex index.php index.html Options -Indexes
|
Файл я по запаре откуда-то скопировал, да там и забыл. Удалил его, всё наладилось. Вернул назад - опять не пускает. Ещё раз повторю, файл лежал в C:\.htaccess Вот теперь сижу и соображаю, это баг или фича? Или где-то у меня рукожопие? Почему .htaccess действует оттуда, откуда апач его вообще не должнен брать?
|