WebDAVの困ったトラブル2


WordPressのテーマ等特定フォルダにWebDAVでアクセスしたい!
でもフォルダは作成できるのに、ファイルのダウンロード、コピー、変更等を行うと「エラー」が出て出来ないことに遭遇。
他と設定同じなのに〜
ということでお困りのそこのサーバー管理者のあなた….原因はMimeコード設定(ApacheならAddType設定)かもしれませんよ!

原因

WebDAVでアクセスするフォルダに対して、PHPファイル(拡張子php)のMimeタイプがapplication/x-httpd-php(拡張子PHPはPHPコードであるのでそのように扱え)になっている場合、ファイル操作に対してPHPが実行されてしまうためエラーが出る

※ファイル操作してエラーになった場合、ログには「PHP Fatal error」が出てくる

対処方法

WebDAVでアクセスするURLに対して、application/x-httpd-php設定した拡張子を解除すればよい。
サンプル例をあげてみます。

問題例

WordPressサイト:http://example.com/hogehoge/ (フォルダは/hogehoge/)と仮定
 ┗ .htaccess(AddType application/x-httpd-php .phpが記載)
WebDAV:http://example.com/hogehoge/webdav/ と仮定
 ┗ フォルダとしては、/hogehoge/wp-content/themes/ と仮定

themes以下にもその設定が有効になってしまう。

対処方法1(.htaccessでの対処)

/hogehoge/wp-content/themes/.htaccess を作成し

<Location /hogehoge/webdav/>
AddType application/x-httpd-php-source .php
</Location>

を追加する。
Locationを追加しなければ、ウェブサイトの方も該当フォルダ以下(今回はテーマ)のPHP
がテキスト認識されてしまうので、サイトの表示がおかしくなります。

対処方法2(Apache設定での対処)

<Directory "/hogehoge/">
.....
AddType application/x-httpd-php  .php
</Directory>

と設定されているならば、

<Directory "/hogehoge/">
.....
</Directory>

<Location  /hogehoge/>
AddType application/x-httpd-php  .php
</Location>

に変更し、フォルダではなくURLに対してPHPのmime設定が有効になるよう変更

対処方法3(Apache設定での対処)

<Directory "/hogehoge/">
.....
AddType application/x-httpd-php  .php
</Directory>

と設定されていて、これを変更したくない場合
その後に

<Location  /hogehoge/webdav/>
.....
AddType application/x-httpd-php-source .php
</Location>

を追加して、webdavのフォルダに対して、phpのmime設定を上書きするように設定する。

2014年1月7日 木谷

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中