cgi-bin配下にあるYukiWikiのスタイルシートの適応や画像の表示ができない
はじめに
自分のPCで動かしているApacheにYukiWikiをインストールしてみた.インストールといっても,ダウンロードしたアーカイブを展開してcgi-binディレクトリに放り込んだだけである.あっさり起動したのだが,画面があっさりしすぎている.どうやら,スタイルシートに書いてある内容が反映できていないようだ.ロゴ画像も出ていない.解決しなければ.
環境は以下の通りである.
- Windows XP Professional SP1a
- Apache 2.0.48(Windows版)
- cygwin 1.5.7-1
- perl 5.8.0
主だったディレクトリ構成は以下の通り.
C:/Program Files/Apache Group/Apache2/
- Apacheをインストールしたディレクトリ.以下
$APACHE_HOME
と表記. $APACHE_HOME/cgi-bin/ykwk/
- YukiWikiをインストールしたディレクトリ.
cygwinで動かしているので,まず$APACHE_HOME/cgi-bin/ykwk/wiki.cgi
の1行目を以下のように修正する.
修正後:#!c:/progra~1/cygwin/bin/perl.exe 修正前:#!/usr/bin/perl
アクセスするためのURLはhttp://localhost/cgi-bin/ykwk/wiki.cgi
である.FrontPageが表示できればYukiWikiは動いている.
やり方その1:スタイルシートと画像の保管ディレクトリを変える
$APACHE_HOME/cgi-bin/にあるからスタイルシートも画像もうまく扱えないのなら,移してしまえば良いということだ.$APACHE_HOME/cgi-bin/ykwk/
から$APACHE_HOME/htdocs/ykwk/
へ移すことにする.htdocsに移したのはhttpd.confを変更しなくてもアクセスできるからで,他意はない. 移すファイルは以下の三つ.
- wiki.css
- icon40x40.gif
- icon80x80.gif
$APACHE_HOME/cgi-bin/ykwk/wiki.cgi
を以下の通り修正する.
修正後:my $modifier_url_data = 'http://localhost/ykwk'; # Your data URL (not DIRECTORY, but URL). 修正前:my $modifier_url_data = '.'; # Your data URL (not DIRECTORY, but URL).
http://localhost/cgi-bin/ykwk/wiki.cgi
へアクセスして,スタイルシートと画像がきちんと扱えていれば成功である.
うまくいかない場合は,ブラウザの「ソースを表示」を使ってFrontPageソースを表示してみよう.スタイルシートや画像ファイルのURLが正しく設定できているのか確認できる.
やり方その2:httpd.confを修正
デフォルトの設定で,apacheはcgi-bin配下のファイルは全てcgiと扱う.cssもgifもcgiとして実行を試みる.当然失敗する.cssやgifはスタイルシートや画像として扱うようにapacheを設定すれば,YukiWikiのディレクトリ構成を変えなくても使えるようになる.つまり,やり方その1のように特定のファイルを別ディレクトリに移す必要はなくなる.
そのためには,httpd.confを修正する.具体的には,AddHandlerを使って拡張子cssとgifに対応するハンドラを指定する.以下の通りである.
<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all AddHandler text/css css #追加 AddHandler image/gif gif #追加 </Directory>
拡張子にはピリオドをつけてもつけなくても良い.つまり,“AddHandler text/css css”と“AddHandler text/css .css”,“AddHandler image/gif gif”と“AddHandler image/gif .gif”は同じことである.拡張子に対応するハンドラは${APACHE_HOME}/conf/mime.typesの中に書いてあるものを書けば良い(と思う).
もし,やり方その1で$APACHE_HOME/bin/ykwk/wiki.cgi
の$modifier_url_data
を修正していたら,修正前の状態へ戻す必要がある.
httpd.confを修正したのでApacheを再起動して,http://localhost/cgi-bin/ykwk/wiki.cgi
にアクセスしてみよう.スタイルシートと画像がきちんと扱えていれば成功である.