Q.ダイナミックパブリッシングを有効にすると 500 エラーが発生する
ダイナミックパブリッシングを有効にすると、サイト閲覧時に 500 エラー(Internal Server Error)が発生します。
A.
以下の方法でエラーを解消できる場合があります。
- .htaccess の修正
-
Movable Type が自動的に作成する .htaccess 内の記述に、ご利用のサーバーの設定で禁止されている項目が含まれる場合にエラーが発生することがあります。
サイトの公開パスに生成された .htaccess を編集し、禁止されている項目を削除することで対処できる場合があります。
以下、対処の一例をご案内します。
- サーバーに FTP クライアントソフトで接続し、.htaccess をダウンロード
- ダウンロードした .htaccess をテキストエディタで開き、以下の行を削除
Options -Indexes
- 編集した .htaccess を保存し、サーバー上の .htaccess に上書きアップロード
サーバーの設定によっては、ほかの修正が必要になる場合もあります。
.htaccess の設定項目が制限されていないか、サーバーの管理者までご確認ください。 - パーミッションの修正
-
Movable Type でサイトを作成する際、サイトパスに指定したディレクトリが存在しない場合は、自動的にディレクトリを生成します。デフォルトでは、自動的に生成されるディレクトリのパーミッションは「777」になります。
一部のレンタルサーバーは、suEXEC 環境を採用しているため、「その他(Other)」グループに「書き込み(Write)」パーミッションが指定されている「777」では suEXEC のポリシーエラーが発生します。
この問題を回避するためには、ダイナミックパブリッシングを利用するサイトのディレクトリのパーミッションを「755」あるいは「705」に変更する必要があります。環境変数「DirUmask」を指定することで、Movable Type がディレクトリを生成する際に設定するパーミッションを変更できます。
例えば、以下を mt-config.cgi に指定すると、Movable Type が生成するディレクトリとファイルのパーミッションがすべて「755」になり、suEXEC 環境でもダイナミックパブリッシングを利用できます。
DirUmask 0072 HTMLPerms 0777 HTMLUmask 0022 UploadPerms 0777 UploadUmask 0022