電子書籍の厳選無料作品が豊富!

サーバーとperlはつい最近はじめた初心者です。
カテゴリーをどちらにしようか悩みましたが、いろいろを試した結果
こちらに質問することにしました。もしかしたらperlの設定かもしれません。もしも間違っていたら申し訳ございません。
サーバーの種類はCentOS Linux 5 バージョン 1.390です。
バーチャルドメインで3つのドメインを管理しています。
一応以下のように仮定させてもらいます。
AAA.com
BBB.com
CCC.com

末行に書いたテスト用(test.cgi)をBBB.comのディレクトリーに
アップしたところ、403エラーになりました。
パーミッションエラーかなと思い、パーミッションの設定をすべて
行いましたが解決できませんでした。
実際にAAA.comでは普通に稼動しているはずなのに、おかしいな~と
思って、その同じスクリプトをBBB.comにアップしたところ、
きちんと表示されました。

そこで、AAA.comの設定をhttp.confからすべて外してBBB.comのtest.cgi
を確認したところ、表示されました。

もしかしたら、複数のドメインでperlを使う場合には、
なにか設定を行う必要があるのでしょうか?

バーチャルドメインで設定している内容は以下のとおりです。
※勝手にリンクマークされるのでwww は xxx に置き換えました。
<VirtualHost ***.***.***.***>
DocumentRoot /var/xxx/AAA-com
ServerName AAA.com
HostNameLookups off
UseCanonicalName on
ScriptAlias /cgi-bin/ /var/xxx/AAA-com/cgi-bin/
<Directory /var/xxx/AAA-com/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>


<VirtualHost ***.***.***.***>
DocumentRoot /var/xxx/BBB-com
ServerName AAA.com
HostNameLookups off
UseCanonicalName on
ScriptAlias /cgi-bin/ /var/xxx/BBB-com/cgi-bin/
<Directory /var/xxx/BBB-com/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

テスト用のスクリプトは以下のとおりです。
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html><head><title>CGI-Perl TEST</title>\n";
print "<meta http-equiv='content-type' content='text/html; charset=shift_jis'>\n";
print "</head><body><h2>CGI-Perlテスト</h2>\n";
print "</body></html>\n";
exit;

A 回答 (2件)

apacheはインストールした環境によると思います。

設定ファイルの在処は/etc/apache/httpd.confでしょうか。この場合だとシステムのログディレクトリ下にあるはずです。

 OSなど環境は異なりますが、擬似的に下記のような設定をして動作させると、
   http://aaa.com/cgi-bin/test.cgi
http://bbb.com/cgi-bin/test.cgi
も動作します。

/etc/hosts
192.168.0.18 aaa.com
192.168.0.15 bbb.com

/etc/apache/httpd.confの追加設定

<VirtualHost 192.168.0.18>
DocumentRoot /home/www/aaa-com
ServerName aaa.com
HostNameLookups off
UseCanonicalName on
ScriptAlias /cgi-bin/ /home/www/aaa-com/cgi-bin/
<Directory /home/www/aaa-com/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost 192.168.0.15>
DocumentRoot /home/www/bbb-com
ServerName bbb.com
HostNameLookups off
UseCanonicalName on
ScriptAlias /cgi-bin/ /home/www/bbb-com/cgi-bin/
<Directory /home/www/bbb-com/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

この回答への補足

何度もありがとうございます。本当にお手数おかけして申し訳ございません。

/etc/hosts の設定ですが、違いがありました。
現在下記のように書いてあります。
123.0.0.1www.xxx.com www localhost.localdomain localhost
::1localhost6.localdomain6 localhost6
120.111.222.333 www.xxx.net xxxname
120.111.222.334 www.xxx.jp xxxname

/etc/apache/httpd.con の設定ですが、同じ設定で間違いありませんでした。

そして、エラーログです。見つけることができました。
ありがとうございます。
下記のメッセージが書いてありました。
[Mon Feb 02 11:09:41 2009] [error] [client 123.45.67.891] Directory index forbidden by Options directive: /var/www/BBB-com/cgi-bin/

これを調べてみたら、パーミッションかドキュメントルートの書き方が
おかしいのかと思って、確認しましたが、なにもおかしな箇所は
ありませんでした。

トホホです。。。

補足日時:2009/02/02 17:56
    • good
    • 0

AAA.com、BBB.comはIPアドレスが異なるのですよね?


BBB.comの設定で「ServerName BBB.com」にしないと駄目なのではないでしょうか?
/var/log/apache/error_logに何かエラーメッセージが出力されていますか?

この回答への補足

お返事ありがとうございます。

> BBB.comの設定で「ServerName BBB.com」にしないと駄目なのではないでしょうか?
すみません。質問したときの単なる入力ミスでした。正しくはServerName BBB.comです。

エラーログですが、/var/log/に、apacheのディレクトリーがありませんでした。これが原因でしょうか?

補足日時:2009/01/31 15:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!