投稿日:2007年03月05日 作成鷹の巣

No.21412 AddHandlerについて



AddHandlerについて

No.21412 投稿時間:2007年03月05日(Mon) 19:21 投稿者名:kimi URL:

始めまして、kimiと申します。

早速質問に移らせていただきますが、
./etc/apache2/sites-available/**内の
<VirtualHost>の中の一部です。

ScriptAlias /cgi-bin/ "/mnt/www/host1/cgi-bin/"
<Directory "/mnt/www/host1/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler text/html .html .htm
AddHandler image/jpeg .jpeg .jpg .jpe
AddHandler image/png .png
AddHandler image/gif .gif
</Directory>

としても/mnt/www/host1/cgi-bin/以下でhtml等を表示できません。
CGI(perl)は問題なく実行できます。
ScriptAliasを単にAliasとしても結果は同じでエラー500です。
再起動コマンドは「sudo /etc/init.d/apache2 restart」
OS自体も再起動させたりしておりますが・・・
AddHandler * .*/も一応試してみました・・・
ディレクトリの絶対パス?を意味する(自信なし)""も一応取ったりはずしたり・・・
html等の表示不可以外は三つのVirtualHostもうまく機能しており
すべて思い通り運営できております。
最後の</VirtualHost>の下には何も記入はありません。

Debian:sarge
apache:2.0.54
html等ファイルの権限は644親フォルダ755、オーナーはapache実行ユーザーおよびrootでは無く一般ユーザー
apache2.confはコメントアウト多数、付け足しは無かったはず
httpd.confは空
apacheのエラーログは?行目がおかしいと言うみたいにhtmlをやはりcgiとして実行している感じです。

これらをふまえて考えられる原因はありますか?
以前に少し試みて無理だったのでcgiプログラムを書き直し
htmlはすべてサーバールート以下で運営しており問題はないのですが
どうしてもcgi-bin以下でhtml等を表示したくてただムキになっております。
同じ症状で困っている方がいるかどうかも知りたいです。

ぜひお返事ください。




#運営→運用
#個人なので読み変えてください。 修正 21:19


Re: AddHandlerについて

No.21414 投稿時間:2007年03月06日(Tue) 00:19 投稿者名:わらび URL:

ScriptAliasでは、HTMLを表示できません。
参考
http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html#scriptalias

>ScriptAlias /cgi-bin/ "/mnt/www/host1/cgi-bin/"
Aliasにすれば、表示できるはずです。
こんな感じで。
Alias /cgi-bin/ "/mnt/www/host1/cgi-bin/"

ですが、
>ScriptAliasを単にAliasとしても結果は同じでエラー500です。
とのことなので、たぶんどこかで設定が残っている可能性があります。

たぶん、別のconfファイルで上書きがされている可能性が高いでしょう。

apacheの設定ディレクトリ(/etc/apache2かな?)で、以下のコマンドを実行して
別のファイルで/cgi-bin/をマッピングしていないか、調べてみた方がいいですね。
find ./ -exec grep 'cgi-bin' /dev/null {} \;

Aliasでマッピングし、OptionでCGIを有効にして、
HTMLとCGIの両方ができることを、以下の環境で確認しました。
Debian sarge, apache 1.3

設定はこんなんです。

Alias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin/">
Options ExecCGI
</Directory>


Re^2: AddHandlerについて

No.21415 投稿時間:2007年03月06日(Tue) 09:19 投稿者名:kimi URL:

> apacheの設定ディレクトリ(/etc/apache2かな?)で、以下のコマンドを実行して
> 別のファイルで/cgi-bin/をマッピングしていないか、調べてみた方がいいですね。
> find ./ -exec grep 'cgi-bin' /dev/null {} \;

気が抜けるくらい簡単に解決いたしました。
本当にありがとうございます。

原因はperl.confに同じようなAliasが存在している事にありました。
perl.confの存在すら忘れていて途方にくれていましたが
教えていただいたコマンドのおかげで「あっ」と苦笑いです。

おかげさまでcgiの設定を全部perl.confに移動し
整理もできて一石二鳥の結果になりました。

apacheもさることながらlinuxの勉強もきちんとします。
findは-name位でしか使ったことありませんでした・・・


目次掲示板過去ログ目次▲頁先頭