CGI設置時のエラー suEXECに関わるエラー

先日、サーバの引っ越しでレンタルサーバにサイトを引っ越した時にCGIエラーが発生した時の備忘録となります。
MovableTypeを使用したサイトでしたが、ファイル、DBの設定が完了してログインをしようとすると下記の500エラーが発生して少しハマりました。。

suexec polcy violation: see suexec log for more detailsi

調べてみるとsuExecという仕組みでCGIが動いていて、これが原因となっていること。
suExecは、CGIを使用する上でのセキュリティの仕組みで、Apacheの実行ユーザとは別に指定したユーザによるCGIを実行を可能にする仕組みになります。

レンタルサーバでは良くありますが、1台のサーバで複数のWebサイトが入っておりそれぞれ別のユーザでFTPアップロードしてサイトを作成しています。
当然Apacheの実行ユーザとFTPユーザが違うのでパーミッションを777とか666など甘い状態にして動かしたりします。
suExecを使用するとCGIをFTPユーザで実行できるのでパーミッションを755などで設定します。
suExec下でCGIが実行されている場合、パーミッションを777にしていると逆にエラーにされてしまいます。

このエラーの回避方法
1.実行するCGIファイルと、ファイルがあるおディレクトリのパーミッションを755に変更
まずはこれが基本になります。

2.宣言文を変更する。
通常、宣言分は #!/usr/local/bin/perl -w の用に書きますがこれを下記のように変更します。

#! /usr/bin/perl —

このsuExec絡みのエラーは所有権の問題なので基本はパーミッション設定で直ると思います。

(Visited 202 times, 1 visits today)