このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/27 22:49
名前: R
URL:
ここのサイトのバーチャルホスト設定で設定を行ったのですが、CGIが使えなく、困っています。

また、1つのフォルダまとめてcgi,html,php等を使いたい。


googleなどで探したのですが、情報も古く見つからないので、質問しました。

ご指導宜しくお願いいたします。
記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 06:59
名前: ペングイン
URL: http://blog.trippyboy.com/
R様

<VirtualHost *:80>
ServerName virtual.com
DocumentRoot /var/www/html/virtual
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>

上記の設定で指定されているものは、以下のみです。
・virtual.comでの80番ポートへのアクセスを定義
・DocumentRootは /var/www/html/virtual
・各種ログは /var/log/httpd/virtual-access|error_logに保存

もしCGIの利用をお望みの場合は以下のような設定が必要になります。

<VirtualHost *:80>
ServerName virtual.com
DocumentRoot /var/www/html/virtual
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
#--ここから追加--#
  ScriptAlias /cgi-bin/ /希望の場所/cgi-bin/
  <Directory /希望の場所/cgi-bin>
  AllowOverride None
  Options ExecCGI
  Order allow,deny
  Allow from all
  </Directory>
#--ここまで追加--#
</VirtualHost>

この設定ですと、CGIは別ディレクトリに保存する必要が出てきます。

>また、1つのフォルダまとめてcgi,html,php等を使いたい。

この場合には「.htaccess」を用いて特定のディレクトリでCGIが使えるようにしましょう。
(CGI以外にも、Basic認証、リダイレクト、アクセス制限などが出来ます)

CGIを動かしたい.htaccessの記述
------
Options +ExecCGI
AddType application/x-httpd-cgi .cgi .pl #←ここは該当CGIの拡張子にそって変更

<Files ~ "^\.ht">  #←ここから先は「.ht*」ファイルをWeb表示させないため
Order allow,deny
Deny from all
</Files>
------

上記はhttpd.confにてAllowOverrideの設定がNoneになっていると動きません。
希望ディレクトリにてAllowOverrideがAllなどになっている必要があります。

/var/www/html/配下
/home/*/www/配下 はディフォルトで.htaccessが使えると思います。

記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 09:39
名前: R
URL:
ペングイン様ありがとうございます

.htaccess作成し

Options +ExecCGI
AddType application/x-httpd-cgi .cgi .pl

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

書いて保存して再起動して、IEでアクセスすると、500エラーになります。
CGI保存したのは、/var/www/html/
.htaccess保存したのは、/var/www/html/
記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 09:50
名前: R
URL:
CGIを644から755にすることでアクセス出来ました。

そこで、悩むのですが

http://xyx.com/test.cgi

http://xyx.com/にアクセスしたとき、自動的にCGIが表示するようにしたいのです。

あと、http://xyx.com/で表示したい。

http://xyx.com/test.cgi

URLにtest.cgiを表示させたくない
記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 10:24
名前: 新高校生
URL:
>CGIを644から755にすることでアクセス出来ました。
(^o^)これはイタイですね。。。

virtualの中に別に Options ExecCGI 等を定義しなくても、
httpd.confに書いておけばデフォルトとして機能すると思いました。
(実際自分のサイトでは機能しています)

ここのサイトを参考にしてhttpd.confを書いてるならcgiは使えるようになっています。
もっとも個別に明示しても何ら悪くはありませんが
記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 10:31
名前: stranger
URL: http://ja.528p.com/
何をなさりたいかよくわかりませんが

テストされる目的なら .htaccessに
DirectoryIndex test.cgi index.html

DirectoryIndex に設定されていないファイルは
ファイル名を指定して呼び出す必要あり

セキュリティの面から
DocumentRoot直下でCGIを許可すべきでない
記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 10:49
名前: R
URL:
新高校生様
stranger様
ありがとうございます。

セキュリティの面から
DocumentRoot直下でCGIを許可すべきでない

なぜでしょうか?

記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 14:28
名前: R
URL:
私、バカでした。

セキュリティの面から
DocumentRoot直下でCGIを許可すべきでない
の理由、.htaccessはセキュリティの面、設置するべきではないという事。

先行に”.”を付けても完全なセキュリティにはならないということ

サーバで.htaccess設置しなくてもCGI見れました。

最初アクセス出来なかったのは644になっていたからだと思います。

デフォルトでアクセス出来た・・・。755にすれば良かった。

によって、解決済みとさせていただきます。

記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 22:09
名前: stranger
URL: http://ja.528p.com/
apacheの公式マニュアルには
「適切なセキュリティ事前対策」がとられるならば、
CGI プログラムを任意のディレクトリで実行できないようにする理由はない
と書かれています

私は「適切なセキュリティ事前対策」に対して自信がないので
実行権を有するCGIをメインストリームに置いていません

phpはapacheのモデュールとして動く場合は、実行権が必要ないので
動的コンテンツにはphpを使っています
記事編集 編集
Re: バーチャルホスト設定 cgi等使用不可 このメッセージに返信する
日時: 2010/07/28 21:26
名前: ペングイン
URL: http://blog.trippyboy.com
>stranger様

大変分かりやすいご説明ありがとうございます。
今までにperl or phpで考えたことがあり、さっきまで頭の中で
埃を被っていました。

記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -