このスレッドは未解決です(解決したらこちらで解決済にしてください)
<<戻る

バーチャルホストの件で このメッセージに返信する
日時: 2006/04/24 01:26
名前: あきです

教えてください お願いします。
環境説明
固定IP 1つでの運営なのですが
メインのドメインは、このサイトの通り設定しました。
CGIやPHPなどの動作も確認済みです。
ドキュメントルートは /var/www/html/です。

これにバーチャルドメインを設定しましたが その時のドキュメントルートを
/home/ユーザー名/public_html としました。
htmlファイルは、表示されますが この中にcgi-bin フォルダーを作って
バーチャルドメインでもCGIの利用をしたいのですが
設定がいくら調べても分かりません。
教えていただけないでしょうか?

PS、phpなどもバーチャルドメインでも使いたいのですが
  宜しくお願いします。
メンテ
Page: [1]

Re: バーチャルホストの件で ( No.1 ) このメッセージに返信する
日時: 2006/04/24 12:45
名前: 愚者

このサイトの説明では、バーチャルホストのドキュメントルートを「/var/www/html/virtual」にしてます。
「/var/www/html/virtual」に対するアクセス制御は、メインサイトのドキュメントルート「/var/www/html」にて設定した内容で制御されています。
設定内容は以下のとおり

<Directory "/var/www/html">
Options Includes ExecCGI FollowSymLinks
AllowOverride All
</Directory>

なので、同じ事を「/home/userdir/public_html」にやってあげればOKです。
(例)
#以下、追加ホスト情報(example.jp)
<VirtualHost *:80>
  ServerName example.jp
  DocumentRoot /home/examplejp/public_html
  ErrorLog logs/example.jp-error_log
  CustomLog logs/example.jp-access_log combined env=!no_log
  <Directory "/home/examplejp/public_html">
    Options Includes ExecCGI FollowSymLinks
    AllowOverride All
  </Directory>
</VirtualHost>

ただし、質問内容から判断すると、ユーザーには「/home/userdir/public_html/cgi-bin/」以下でのみ
cgiの実行を許可し、それ以外では実行を許可させないようにもとれます。この場合は、上の記述だけでは
不足します。
メンテ
Re: バーチャルホストの件で ( No.2 ) このメッセージに返信する
日時: 2006/04/24 21:18
名前: あきです
URL: http://b180snow.or.tp/index.cgi

ありがとうございます。
早速設定してみたのですが エラーがでます。
上記のURLです。

私が設定したのは、バーチャルホストを記載している部分を
このサイトの通り書いているところを教えて頂いた内容に
書き換えましたが表示が出来ません。

すいませんが教えていただけないでしょうか?

それとpublic_html/cgi-bin/index.cgi
も設置しているのですが 表示されません。
htmlファイルも置いてみたのですが
public_html から下のフォルダーのファイルが
表示されません。どうしてなのでしょうか?

http://b180snow.or.tp/cgi-bin/index.html
このファイルが存在しないと出ますが
申し訳ありませんが 教えていただけないでしょうか?
メンテ
Re: バーチャルホストの件で ( No.3 ) このメッセージに返信する
日時: 2006/04/25 00:06
名前: 愚者

>それとpublic_html/cgi-bin/index.cgi
>も設置しているのですが 表示されません。
>htmlファイルも置いてみたのですが
>public_html から下のフォルダーのファイルが
>表示されません。どうしてなのでしょうか?
>
>http://b180snow.or.tp/cgi-bin/index.html
>このファイルが存在しないと出ますが
>申し訳ありませんが 教えていただけないでしょうか?

以下のような記述がメインホスト設定部分にありませんか?

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

「/cgi-bin/」 のエイリアスとして 「/var/www/cgi-bin/」が設定されていると、バーチャルホスト側で
Directoryディレクティブを使ってもメインホスト側が優先されてしまいます。
上記をコメントアウトすれば解決すると思います。

cgiのエラーに関しては、まずerror_logを見てください。cgiのパーミッション等も確認してみて下さい。
メンテ
Re: バーチャルホストの件で ( No.4 ) このメッセージに返信する
日時: 2006/04/25 00:56
名前: あきです
URL: http://b180snow.or.tp/index.cgi

すいません
コメントアウトしてみたのですが
出来ませんでした。

ログを見たのですが サーバー初めて間もないので
書いてることが分かりません。

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

の部分をすべてコメントアウトしました。
パーミッションも755にしてありますが
表示されません。
 コメントアウトしたら public_html から下の
フォルダー でのhtmlファイルの表示は、出来ました。
でもcgiファイルは、表示されません

すいませんが どうしてもクリアしたいのですが
教えていただけないでしょうか?
宜しくお願いします。
メンテ
Re: バーチャルホストの件で ( No.5 ) このメッセージに返信する
日時: 2006/04/25 07:39
名前: 愚者

/var/log/httpd/error_log
これがメインホストのエラーログ

#以下、追加ホスト情報(example.jp)
<VirtualHost *:80>
  ServerName example.jp
  DocumentRoot /home/examplejp/public_html
  ErrorLog logs/example.jp-error_log
  CustomLog logs/example.jp-access_log combined env=!no_log
  <Directory "/home/examplejp/public_html">
    Options Includes ExecCGI FollowSymLinks
    AllowOverride All
  </Directory>
</VirtualHost>

のうち、ErrorLogで指定したファイルがバーチャルホストのエラーログ
実際には、/var/log/httpd/example.jp-error_log

自分でアクセスして、エラーログに何と書いてあるか見てみてください。
メンテ
Re: バーチャルホストの件で ( No.6 ) このメッセージに返信する
日時: 2006/04/30 22:45
名前: you
URL: http://nect.or.tp/cgi-bin/test.cgi

いろんなサイトを調べてみたのですが
やはり分かりませんでした。

エラーログには
Premature end of script headers: test.cgi
書いていましたが。

すいません。なんせ初心者で意味が分かりません。
すいませんが教えていただけないでしょうか?
メンテ
Re: バーチャルホストの件で ( No.7 ) このメッセージに返信する
日時: 2006/04/30 23:01
名前: Hiroki

こんにちは。
ログが見えないので断言はできませんが、状況的にSuexecが影響しているように思えます。

Suexec実行ファイルをリネームして無効化、あるいはモジュールリストからはずして無効化してしまうか、
バーチャルホストの設定の中に
SuexecUserGroup 実行ユーザ名 実行グループ
と記述してみてください。
詳細はこちら(http://httpd.apache.org/docs/2.0/ja/mod/mod_suexec.html#suexecusergroup)です。

それでもダメならこちら(http://httpd.apache.org/docs/2.0/ja/howto/cgi.html#troubleshoot)で
なにが悪いのか確かめてください。

#ちなみに解らないエラーに追い込まれたときは "エラーメッセージ" などで調べると比較的ヒットしやすいですよ。
メンテ
Re: バーチャルホストの件で ( No.8 ) このメッセージに返信する
日時: 2006/05/01 08:44
名前: ZED

そのエラーであれば

cgiの一行目
#! /usr/bin/perl --
に変更すれば動くかも・・・。
メンテ

Page: [1]

題名※必須
名前※必須
E-Mail
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
コメント※必須
認証キー※必須 CAPTCHA Image (画像で表示されている英数字を入力)※大文字・小文字不問

   クッキー保存

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