Carpe Diem

  Top > スポンサー広告> Webサーバ > BBSの設置  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

BBSの設置

2011 - 09/22 [Thu] - 12:39

今回は改行コード、.cgiや.cssや.gifファイルの扱いで時間がかかりました。

使用したのはこちらの掲示板
WEB PATIO

ダウンロード後の僕の経過及び対処を述べていきます。

①ダウンロードしてチュートリアル通りに設定を編集し、cgi-binで動くか確かめる。
Perlの位置を#!/usr/local/bin/perl→#!/usr/bin/perlに変更し、パーティションを変えます。

check.cgiを開こうとすると、ここで500エラーを食らいます。
原因は改行コードのせい。どうやらWindowsとUnixでは改行コードが違うようで、それを修正しないと使えないようです。このプログラムはWindowsようであり、また転送ソフトを用いれば自動で改行コードを修正してくれるのですが、僕の場合Ubuntuサーバで直接使っているので手作業で編集します。

それぞれcgiファイルを開いて、C-x,RET,fをすると文字コード編集がミニバッファにて出来ます。
そこでsjis-unixと打ち込んで改行コードをunix対応にします。

これで一応500エラーはなくなりました。なぜかadmin.cgiは500エラーですが。。まぁ後で修正しよう。

ソース:
文字コード(改行コード)の切り替え


②gif画像が表示されない。image magick偏
チュートリアル通りcheck.cgiを動かすとimage magickでエラーを食らいました。
perl用のimage magickがインストールされてないようなのでインストール。

$ sudo apt-get install perlmagick

ソース:
PerlMagickのインストール


③gif画像が表示されない。Exec format error偏

500エラーはなくなったものの、サンプルページの用に表示されない。エラーログを見るとPermission denied: exec ofExec format error: exec ofがgifファイルに対して起きている。
どうやらこれcgi設定との競合?みたいなものらしい。cgi-binフォルダは/etc/apache2/site-available/のdefault-sslを見るとScriptAliasで設定してあるけど、これはファイルが全てスクリプトとして認識されてgifが使えなくなるらしい。
対処法は
AddHandler image/gif .gif
を加えればOK。
後から分かったんですが、このpatio、CSSも使用しているので
AddHandler text/css .css
とかまぁ色々必要でした。ScriptAliasの例は次に乗せます。

ソース:
「Exec format error:exec of xxxxxx/xxx.gif failed」エラーで画像表示されない
cgi-bin配下にあるYukiWikiのスタイルシートの適応や画像の表示ができない


④シンボリックリンクで表示ができない
cgi-binフォルダを公開しっぱなしは嫌なので今まで通りシンボリックリンクで行こうと考えましたが、どうやらScriptAliasではシンボリックリンクでの.cgiは機能しないみたい。他の拡張子は大丈夫みたいだけど。
なのでまぁ/var/www/に直接patio/フォルダをmvして、/etc/apache2/site-available/のdefault-sslで

         ScriptAlias /BBS/ /var/www/patio/
         <Directory "/var/www/patio">
                SSLRequireSSL
                Options FollowSymLinks MultiViews +ExecCGI
                AddHandler cgi-script .cgi .pl
                AddHandler application/x-shockwave-flash .swf
                AddHandler image/gif .gif
                AddHandler image/jpeg .jpeg .jpg .jpe
                AddHandler image/png .png
                AddHandler text/html .html .htm .shtml
                AddHandler text/css .css
                Order deny,allow
                allow from all
         </Directory>


と記述。apacheを再起動してちゃんとサンプルページ通りに動くのを確認。

追記:シンボリックリンクでもいけました。単に設定がおかしかっただけでした。


後はadmin.cgiがちゃんと動けばいいんだけど・・・なぜだ。

$ perl -wc admin.cgi

ではちゃんとSyntaxOKとなる。うーん。

追記:できました。admin.cgiだけperlの場所が#!/usr/local/bin/perlのままでした。


参考:
CGIが動かない時は
CGI による動的コンテンツ

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。