Red Hat 9 and Apache
My server is responding in the error logs with:
"Directory index forbidden by rule" The error occurs when accessing the "Main" Site and any of the Virtual Sites, of which there are two. I do get the Apache Test Web page from the server and another box on my network, the permissions of the DocumentRoot are drwxrwx--- (2770) for each of the site's directories (used the recursive option) and the directories are currently owned by the Apache user and it's group I've been looking though the threads on this and other sights and followed all of the suggestions that I have found including the following: Reversing the Order Allow,Deny creating a .htaccess for the DocumentRoot (which I Subsequently removed) Adding or Removing the Indexes option in Virtual hosts section. I am posting my httpd.conf (edited to protect the Innocent) any help is greatly appreciated and please pardon my spelling ### Section 1: Global Environment ServerTokens OS ServerRoot "/etc/httpd" #ScoreBoardFile run/httpd.scoreboard PidFile "/var/run/httpd.pid" TimeOut 300 KeepAlive false MaxKeepAliveRequests 100 KeepAliveTimeout 15 ## ## Server-Pool Size Regulation (MPM specific) ## # prefork MPM <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 MaxClients 150 MaxRequestsPerChild 100 </IfModule> # worker MPM <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # perchild MPM <IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule> # Listen Listen XXX.XXX.XXX.XXX<eth0:1>:80 Listen XXX.XXX.XXX.XXX<eth0>:80 Listen XXX.XXX.XXX.XXX<eth0:2>:80 # Load config files from the config directory "/etc/httpd/conf.d". Include conf.d/*.conf # Dynamic Shared Object (DSO) Support LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_anon_module modules/mod_auth_anon.so LoadModule auth_dbm_module modules/mod_auth_dbm.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule asis_module modules/mod_asis.so LoadModule info_module modules/mod_info.so LoadModule cgi_module modules/mod_cgi.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule imap_module modules/mod_imap.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so #ExtendedStatus On ### Section 2: 'Main' server configuration User xxxxx Group xxxxx ServerAdmin <admin e-mail addy> ServerName <ServerName> UseCanonicalName on DocumentRoot "%DocumentRoot%" <LocationMatch "^/$"> Options -Indexes ErrorDocument 403 /error/noindex.html </LocationMatch> <IfModule mod_userdir.c> #UserDir "disable" UserDir public_html </IfModule> DirectoryIndex AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> TypesConfig "/etc/mime.types" DefaultType text/plain <IfModule mod_mime_magic.c> # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> HostNameLookups Off ErrorLog "/var/log/httpd/error_log" LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined #CustomLog logs/referer_log referer #CustomLog logs/agent_log agent #CustomLog logs/access_log combined ServerSignature on Alias /icons/ "/var/www/icons/" Alias /manual "/var/www/manual" <IfModule mod_dav_fs.c> # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> ScriptAlias /cgi-bin/ "%System Root%/cgi-bin" <IfModule mod_cgid.c> #Scriptsock logs/cgisock </IfModule> # Redirect permanent /foo http://www.example.com/bar # # Directives controlling the display of server-generated directory listings. # # FancyIndexing IndexOptions FancyIndexing VersionSort NameWidth=* AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ # # DefaultIcon is which icon to show for files which do not have an icon # explicitly set. # DefaultIcon /icons/unknown.gif #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz ReadmeName README.html HeaderName HEADER.html IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t AddEncoding x-compress Z AddEncoding x-gzip gz tgz # DefaultLanguage nl AddLanguage da .dk AddLanguage nl .nl AddLanguage en .en AddLanguage et .et AddLanguage fr .fr AddLanguage de .de AddLanguage he .he AddLanguage el .el AddLanguage it .it AddLanguage ja .ja AddLanguage pl .po AddLanguage kr .kr AddLanguage pt .pt AddLanguage nn .nn AddLanguage no .no AddLanguage pt-br .pt-br AddLanguage ltz .ltz AddLanguage ca .ca AddLanguage es .es AddLanguage sv .se AddLanguage cz .cz AddLanguage ru .ru AddLanguage tw .tw AddLanguage zh-tw .tw AddLanguage hr .hr LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw ForceLanguagePriority Prefer Fallback AddDefaultCharset ISO-8859-1 AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5 # For russian, more than one charset is used (depends on client, mostly): AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8 AddCharset GB2312 .gb2312 .gb AddCharset utf-7 .utf7 AddCharset utf-8 .utf8 AddCharset big5 .big5 .b5 AddCharset EUC-TW .euc-tw AddCharset EUC-JP .euc-jp AddCharset EUC-KR .euc-kr AddCharset shift_jis .sjis AddType application/x-tar .tgz #AddHandler cgi-script .cgi #AddHandler send-as-is asis AddHandler imap-file map AddHandler type-map var AddOutputFilter INCLUDES .shtml # Format: Action media/type /cgi-script/location # Format: Action handler-name /cgi-script/location Alias /error/ "/var/www/error/" BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .your-domain.com #</Location> #<Location /server-info> # SetHandler server-info # Order deny,allow # Deny from all # Allow from .your-domain.com #</Location> #<IfModule mod_proxy.c> #ProxyRequests On # #<Proxy *> # Order deny,allow # Deny from all # Allow from .your-domain.com #</Proxy> #ProxyVia On #CacheRoot "/etc/httpd/proxy" #CacheSize 5 #CacheGcInterval 4 #CacheMaxExpire 24 #CacheLastModifiedFactor 0.1 #CacheDefaultExpire 1 #NoCache a-domain.com another-domain.edu joes.garage-sale.com #</IfModule> # End of proxy directives. ### Section 3: Virtual Hosts # NameVirtualHost * LockFile "/var/lock/httpd.lock" CoreDumpDirectory "/etc/httpd" # Virtual host Default Virtual Host <VirtualHost *> ServerSignature email DirectoryIndex index.php index.html index.htm index.shtml LogLevel debug HostNameLookups off </VirtualHost> # Virtual host Vhost2 <VirtualHost XXX.XXX.XXX.XXX<eth0:2>> DocumentRoot "/www/vhost-2/public/htdocs" ServerName vhost-2 ServerSignature email <Directory "/www/vhost-2/public/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride None Allow from all Order Deny,Allow </Directory> <Directory "/www/vhost-2/public/cgi-bin"> Options ExecCGI AllowOverride None Allow from all Order Deny,Allow </Directory> </VirtualHost> # Virtual host Vhost1 <VirtualHost XXX.XXX.XXX.XXX<eth0:1>> ServerName vhost-1 ServerAlias www.vhost-1 DocumentRoot "/www/www.vhost-1/public/htdocs" ServerAdmin couponclippermo@hotmail.com ServerSignature email DirectoryIndex index.php index.html index.htm index.shtml <Directory "/www/www.vhost-1/public/htdocs"> Options ALL AllowOverride ALL Allow from all Order Allow,Deny </Directory> <Directory "/www/www.vhost-1/cgi-bin"> Options ExecCGI AllowOverride None Allow from all Order Deny,Allow </Directory> </VirtualHost> <Directory "/"> Options FollowSymLinks Includes AllowOverride None </Directory> <Directory "%DocumentRoot%"> Options Indexes FollowSymLinks AllowOverride None Allow from all Order Allow,Deny </Directory> <Directory "%DocumentRoot%/cgi-bin"> Options ExecCGI AllowOverride None Allow from all Order deny,Allow </Directory> |
For the most part everything looks ok.
1. not sure if it really matters but I think the order should preceed the action. example: Order Deny, Allow Deny from all I'd comment out these lines from each virtual host section and add them back in once your sure the virtual hosting part is working properly. If it works fine with out them and errors with them in, that's a pretty good place to figure out whats going on. Good referense docs: http://httpd.apache.org/docs-2.0/ |
Thanks for the info..
I know it was bad form of me to not post that I had been through the directives on the Apache site, but I already have, however they do deserve a second look.
Progressive (remove/change restart the daemon, rinse repeat) troubleshooting is what I've been doing but nothing as drastic as removing the VirtualHosts, I guess that is the next step it just seems a little drastic, but that's how last resorts usually go. Thanks for your help, it is greatly Appreciated! |
All times are GMT -5. The time now is 06:22 PM. |