Apache httpd、WebDAV、各種設定

Apache httpd、WebDAV、各種設定

/var/www/dental-atelier.ch/2つの異なる方法でアクセスしたいディレクトリ()があります。

一般的なウェブページのように

<VirtualHost 78.47.122.114:80> 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/dental-atelier.ch 

    <Location /> 
       Options +Includes 
    </Location> 

    ServerName dental-atelier.ch 
    ServerAlias dental-atelier.ch www.dental-atelier.ch 
    ErrorLog logs/dental-atelier.ch-error_log 
    CustomLog logs/dental-atelier.ch-access_log combined 

</VirtualHost> 

一度はWebDavを使用しましたが、今回はSSLを使用しました。

<VirtualHost _default_:443>

    DocumentRoot "/var/www/html"

    # Use separate log files for the SSL virtual host; note that LogLevel
    # is not inherited from httpd.conf.
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn

    <Directory /var/www/html>
        Options +Includes
    </Directory>

    Alias /webdav /var/www/webdav

    <Directory /var/www/webdav/dental-atelier.ch/> 
        AuthType Basic 
        AuthName "Password Required" 
        AuthUserFile /etc/shadow 
        Require user user 
        DAV On 
        Options Indexes FollowSymLinks 
    </Directory> 

</VirtualHost>

これはhttpd 2.2では問題ではありません。

2.4にアップグレードした後、httpdは同じディレクトリに対して両方の設定を許可しません。 1つ目は(最初の仮想ホストと一緒に)単独で動作し、2つ目は2番目の仮想ホストと単独で動作します。両方を設定すると

$ cadaver https://78.47.122.114/webdav/dental-atelier.ch
WARNING: Untrusted server certificate presented for `ip1.corti.li':
Certificate was issued to hostname `ip1.corti.li' rather than `78.47.122.114'
This connection could have been intercepted.
Issued to: ip1.corti.li
Issued by: http://www.CAcert.org, CAcert Inc.
Certificate is valid from Thu, 10 Apr 2014 10:43:34 GMT to Sat, 09 Apr 2016 10:43:34 GMT
Do you wish to accept the certificate? (y/n) y
Authentication required for Password Required on server `78.47.122.114':
Username: user
Password: 
Could not access /webdav/dental-atelier.ch/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to `78.47.122.114' closed.
dav:!> 

編集のためにWebDAVを介してHTTP共有ディレクトリを使用できるようにする方法についてのアイデアはありますか?

SSL仮想ホストログには、IncludesSSLではなく仮想ホスト(ポート80)で指定されたディレクティブに関連するエラーが表示されます。

ssl_accessログ:

129.132.179.107 - - [19/Feb/2015:15:40:29 +0100] "OPTIONS /webdav/dental-atelier.ch/ HTTP/1.1" 401 381
129.132.179.107 - user [19/Feb/2015:15:40:34 +0100] "OPTIONS /webdav/dental-atelier.ch/ HTTP/1.1" 200 -
129.132.179.107 - user [19/Feb/2015:15:40:34 +0100] "PROPFIND /webdav/dental-atelier.ch/ HTTP/1.1" 405 261

SSL_error_log:

[Thu Feb 19 15:40:34.556872 2015] [include:warn] [pid 29499] [client 129.132.179.107:65259] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /webdav/dental-atelier.ch/index.html
[Thu Feb 19 15:40:34.557949 2015] [include:warn] [pid 29499] [client 129.132.179.107:65259] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /webdav/dental-atelier.ch/index.html

編集する

問題は、実際には、2つの異なる仮想ホストで同じディレクトリを異なる方法で使用することに関連しています。同じディレクトリをコピーし、/var/www/webdav/testそのtestディレクトリを使用してSSL仮想ホストを設定すると、すべてが非常にスムーズになります。

同じディレクトリからHTTP仮想ホストを削除する場合も同様です。

両方に同じデータがある場合、Apache httpdは何とかそれを検出します。 2.2ではそうではありません。

答え1

実際、問題は異なります。ディレクトリにindex.htmlファイルが含まれており、Apache httpdは自動的にそれを渡します。

環境

DirectoryIndex disabled 

問題を解決しました。

関連情報