質問編集履歴

1 追加情報

nob777

nob777 score 112

2016/03/06 17:47  投稿

apacheでDocumentRoot以外のアクセス方法について
centos7 + apache環境にて、Aliasディレクティブを利用し、DocumentRoot以外に配置している
index.htmlを参照させようとしました。
しかし、403および404エラーが発生し、参照できません。
selinuxを解除し、どのユーザでも参照可能な/tmp配下にindex.htmlを配置しても
参照できません。
・apacheのエラーメッセージ(403エラー発生時のみ出力されます。404エラー時はエラーメッセージ無し。)
[Sun Mar 06 15:51:38.310390 2016] [autoindex:error] [pid 2989] [client 10.0.2.2:63300] AH01276: Cannot serve directory /tmp/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive
・httpd.confの抜粋
(httpd.confのコメント、空行を抜いた全行も最後に記載しておきます)
```httpd.conf
<Directory />
   AllowOverride none
   Require all granted
</Directory>
DocumentRoot "/var/www/html"
<IfModule dir_module>
   DirectoryIndex index.html index.php
</IfModule>
<IfModule alias_module>
   Alias /tmp /tmp
   <Directory /tmp>
       Require all granted
   </Directory>
   ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
```
下記は403エラーとなるURLです。
http://localhost/tmp/
下記は404エラーとなるURLです。
http://localhost/tmp/index.html
・/tmp配下にはindex.htmlが644で配置してあります
ls -l /tmp/index.html
-rw-r--r--. 1 root root 28 3月 6 15:07 /tmp/index.html
■質問事項
どのようにすれば参照できるのでしょうか?
■環境情報
・OSバージョン
 CentOS Linux release 7.2.1511 (Core)
・apacheバージョン
 Server version: Apache/2.4.6 (CentOS)
 Server built:  Nov 19 2015 21:43:13
■参考情報
```httpd.conf
ServerRoot "/etc/httpd"
Listen 80
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
<Directory />
   AllowOverride none
   Require all granted
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
   AllowOverride None
   Require all granted
</Directory>
<Directory "/var/www/html">
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory>
<IfModule dir_module>
   DirectoryIndex index.html index.php
</IfModule>
<Files ".ht*">
   Require all denied
</Files>
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>
     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 /tmp /tmp
   <Directory /tmp>
       Require all granted
   </Directory>
   ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options None
   Require all granted
</Directory>
<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
<IfModule mime_magic_module>
   MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
```
■追加情報  
 apacheをデバッグレベルで出力したログです。  
 
・http://localhost/tmp/  
[Sun Mar 06 17:26:32.087141 2016] [authz_core:debug] [pid 5571] mod_authz_core.c(809): [client 10.0.2.2:64052] AH01626: authorization result of Require all granted: granted  
[Sun Mar 06 17:26:32.087353 2016] [authz_core:debug] [pid 5571] mod_authz_core.c(809): [client 10.0.2.2:64052] AH01626: authorization result of <RequireAny>: granted  
[Sun Mar 06 17:26:32.087519 2016] [authz_core:debug] [pid 5571] mod_authz_core.c(809): [client 10.0.2.2:64052] AH01626: authorization result of Require all granted: granted  
[Sun Mar 06 17:26:32.087534 2016] [authz_core:debug] [pid 5571] mod_authz_core.c(809): [client 10.0.2.2:64052] AH01626: authorization result of <RequireAny>: granted  
[Sun Mar 06 17:26:32.087628 2016] [authz_core:debug] [pid 5571] mod_authz_core.c(809): [client 10.0.2.2:64052] AH01626: authorization result of Require all granted: granted  
[Sun Mar 06 17:26:32.087637 2016] [authz_core:debug] [pid 5571] mod_authz_core.c(809): [client 10.0.2.2:64052] AH01626: authorization result of <RequireAny>: granted  
[Sun Mar 06 17:26:32.087890 2016] [autoindex:error] [pid 5571] [client 10.0.2.2:64052] AH01276: Cannot serve directory /tmp/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive  
 
・http://localhost/tmp/index.html  
[Sun Mar 06 17:28:06.290017 2016] [authz_core:debug] [pid 5570] mod_authz_core.c(809): [client 10.0.2.2:64062] AH01626: authorization result of Require all granted: granted  
[Sun Mar 06 17:28:06.290412 2016] [authz_core:debug] [pid 5570] mod_authz_core.c(809): [client 10.0.2.2:64062] AH01626: authorization result of <RequireAny>: granted  
[Sun Mar 06 17:28:06.290631 2016] [core:info] [pid 5570] [client 10.0.2.2:64062] AH00128: File does not exist: /tmp/index.html  
 
また、切り分けのために下記のように/var/www/html内でAliasを使用した際のログも記載します。(正常アクセス可能)  
   Alias /nob /var/www/html/nob777↲  
   <Directory /var/www/html/nob777>↲  
       Require all granted↲  
   </Directory>↲  
 
・http://localhost/nob/index.html  
[Sun Mar 06 17:30:59.392574 2016] [authz_core:debug] [pid 6330] mod_authz_core.c(809): [client 10.0.2.2:64067] AH01626: authorization result of Require all granted: granted  
[Sun Mar 06 17:30:59.392697 2016] [authz_core:debug] [pid 6330] mod_authz_core.c(809): [client 10.0.2.2:64067] AH01626: authorization result of <RequireAny>: granted  
[Sun Mar 06 17:30:59.892143 2016] [proxy:debug] [pid 6574] proxy_util.c(1843): AH00925: initializing worker proxy:reverse shared  
[Sun Mar 06 17:30:59.892278 2016] [proxy:debug] [pid 6574] proxy_util.c(1885): AH00927: initializing worker proxy:reverse local  
[Sun Mar 06 17:30:59.892350 2016] [proxy:debug] [pid 6574] proxy_util.c(1936): AH00931: initialized single connection worker in child 6574 for (*)  
 
以上、よろしくお願いいたします。
  • Apache

    2804 questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • CentOS

    4376 questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る