ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:chisalin [Movable type] cgiと静的ファイルを別にインストールする場合
困り度:
  • すぐに回答を!
これまでロリポップのレンタルサーバーに置いていたものを
別のレンタルサーバーに変更しました。
新しいレンタルサーバーでのMovable typeのインストール方法が
わからず、カスタマーサポートに問い合わせたところ、以下のような
回答が来ました。
(このレンタルサーバーは、通常は「cgi-bin」「httpdocs」とファイルをわけていれるようになっています。)

[回答]
・cgiファイルと静的ファイルは、Movable Type をアップロードされるフォルダの中へ区別せずアップロード
・movable type のインストールディレクトリのパーミッションを777に変更
・movable type のインストールディレクトリ直下にあるcgiファイルのパーミッションを(644)に変更する
・Movable Type のデータを展開した際に表示される「.htaccess」ファイルを編集「Options ExecCGI Includes AddHandler cgi-script .cgi」

上記のように、「httpdocs」に「mt」を作りすべてアップし、パーミッションも変更しましたが、cgiがエラーになり動きません。
「cgi-bin」「httpdocs」と別れているのに、「httpdocs」にcgiを入れて動くものなのでしょうか?
それと、cgiのパーミッションは644で動くのでしょうか?

また、「cgi-bin」「httpdocs」と分けておかなければいけない場合は、「MT-4.1-ja」に入っているcgiだけ「cgi-bin」に入れて、あとのものは「httpdocs」の中に「mt」フォルダを作ってその中に全ていれるのでいいでしょうか?

よろしくお願いいたします。
質問投稿日時:08/05/06 10:28
質問番号:4001058
この質問に対する回答は締め切られました。

回答

良回答20pt

回答者:entree > 「cgi-bin」「httpdocs」と別れているのに、「httpdocs」にcgiを入れて動くものなのでしょうか?

CGI を動作させる方法はいくつかあります。cgi-bin ディレクトリ内に置くという方法もあれば、ディレクトリに以下の設定を追加する方法もあります。

Options ExecCGI Includes
AddHandler cgi-script .cgi

cgi-bin ディレクトリ内に置かれたファイルは全てCGI とみなされます。なので、静的ファイル (HTML や画像ファイルなど) であった場合はパーミッションがなければエラー、あってもCGI と見なされてサーバエラーにしかなりません。

Options ExecCGI、AddHandler ... を設定した場合、上の設定であれば拡張子が .cgi であるもののみCGI として動作するようになります。こちらが意図されている動作ではないでしょうか?

> それと、cgiのパーミッションは644で動くのでしょうか?

動きません。

> また、「cgi-bin」「httpdocs」と分けておかなければいけない場合は、
> 「MT-4.1-ja」に入っているcgiだけ「cgi-bin」に入れて、あとのものは
> 「httpdocs」の中に「mt」フォルダを作ってその中に全ていれるのでい
> いでしょうか?

ファイル間の参照は通常相対パスで書かれているはずなので、ソースコード (設定ファイルがあル場合は設定ファイル) を書き換えない限り、分けて置くことができません。

> 上記のように、「httpdocs」に「mt」を作りすべてアップし、パーミッ
> ションも変更しましたが、cgiがエラーになり動きません。

もし、WEB サーバのエラーログを参照できるのであれば参照してみて下さい。できないのであれば、改行コードの間違いなども含めて、ひたすら目視で追う必要があるでしょう。
種類:回答
どんな人:一般人
自信:参考意見
回答日時:08/05/07 09:24
回答番号:No.1
この回答へのお礼お返事をいただいたのに、お礼が遅くなって申し訳ありませんでした。
大変参考になりました。
ありがとうございました。