CGIを使ってみよう
せっかくの自宅サーバですから,CGIも使ってみたいですね。
ココでダウンロードした,画像添付もできるマルチスレッド式掲示板の設置に挑戦してみました。

ダウンロードしたファイルを解凍すると,左のようなファイルやフォルダがでてきます。


【元のファイル構成】

 public_html (ホームディレクトリ)
      |
      +-- mt-joyful / mt-joyful.cgi [755]
            |         joyful.log    [666]
            |         count.dat     [666]
            |         jcodeg.pl     [644]
            |         cgi-lib.pl    [644]
            |         pastno.dat    [666]
            |
            +-- img [777] / home.gif, bear.gif, ...
            |
            +-- lock [777] /
            |
            +-- past [777] / 1.dat [666] ...

【ファイル構成(以下のように変更)】

  httpd  
      |
      + cgi-bin
      |     |
      |     +-- mt-joyful / mt-joyful.cgi [755]
      |            |        joyful.log    [666]
      |            |        count.dat     [666]
      |            |        jcodeg.pl     [644]
      |            |        cgi-lib.pl    [644]
      |            |        pastno.dat    [666]
      |            |
      |            +-- lock [777] /
      |            |
      |            +-- past [777] / 1.dat [666] ...
      |
      +html
         | 
         +-- img [777] / home.gif, bear.gif, ...

Apacheのデフォルト設定では,CGIが呼び出す画像をcgi-binディレクトリ以下に置いてはダメなんだそうです。
試しにやってみたら,画像が表示されませんでした。ふ〜ん,そうなのか。

うまく設定すればちゃんと画像が表示できるらしいんですが,「セキュリティ上の問題」から画像ファイルはhtmlディレクトリに置くべきなんだそうです。なんだかよく分かりませんが,初心者は素直に従った方が良さそうですね。

ですから,ファイル構成は下図のようにしてやりましょう。これなら大丈夫ですよね。

#!/usr/local/bin/perl
#!/usr/bin/perl

# 戻り先のURL (index.htmlなど)
$homepage = "../index.html";
$homepage = "../../index.html";

# 管理者用マスタパスワード (英数字で8文字以内)
$pass = '0123';
$pass = 'himitsu';

# 添付ファイルのアップロードディレクトリ
# → パスの最後は / で終わること
# → フルパスだと / から記述する
$ImgDir = './img/';
$ImgDir = '/home/httpd/html/img/';

# アップロードディレクトリのURLパス
# → パスの最後は / で終わること
$ImgUrl = "./img/";
$ImgUrl = "../../img/";

mt-joyful.cgiをエディタで開いて編集してやります。
まずはperlのパスの設定。Vine Linuxだと,#!/usr/bin/perlでいいみたいです。
以下同様に,青文字の部分を赤文字のように書き換えてやります。

編集が終わったら上書き保存します。
FTPでファイル転送できるようにcgi-binディレクトリの準備をしておきましょう。
Webminのファイルマネージャで/home/httpd/cgi-binを選んで「info」ボタンを押し,赤丸で囲んだ部分を書き換えます。
(murataはLinuxインストール時に設定した「一般ユーザ」名です)
FTPクライアントを起動して,サーバにファイル転送します。
「ファイル構成」の所に書いてある数字を参考にパーミッション設定も忘れずにやっておきましょう。
これで作業完了。
http://physics.myhome.cx/cgi-bin/mt-joyful/mt-joyful.cgiにアクセスするとちゃんと表示されますね。記念に何か書き込んでみてください。(^-^)


【CGI 関連リンク】
JOYFUL-2CH
KENT WEB
CGIを設置する




Linuxで自宅サーバ 
\1980のジャンクPCで自宅サーバ  
ノートPCにNFSインストール  
自宅サーバでHPを公開しよう
CGIを使ってみよう
WebDAVを使ってみよう(1)
WebDAVを使ってみよう(2)
kernelの再構築(VineLinux2.5)
自宅サーバでLiveカメラ
自宅サーバでLiveカメラ(2)
Wormの攻撃
ADSLの導入とIPアドレス自動更新
DiCE for Linux
メールサーバ(Postfix)の設定



【Top Page】