Linux で自宅サーバ [ Home Server Techncial ]

>>トップページに戻る

BBS 過去ログ No.0001に戻る

タイトル: CGI・SSIが動作しません
記事No: 180
投稿日: 2003/02/16(Sun) 18:10
投稿者: Shu   <infinity@s18.xrea.com>
URL: http://infinity.s18.xrea.com/
初めまして、こんにちは。高専に通うShuと申します。現在、自宅サーバ開設に向けて勉強しています。

このたび、kensukeさんのWebサイト「Linuxで自宅サーバ」を拝見させていただきました。
大変分かりやすく書いてありまして、自宅サーバ開設の勉強に重宝しております。

しかし、どうしてもできないことがありまして、ぜひ、アドバイスしていただきたいことがあります。

現在、私のVAIO C1にTurbo Linux 7 Workstation FTP版をインストールしまして、Apacheもインストールし、
やっと自宅サーバ開設だ、と思っていたのですが、CGI・SSIを動作させることがどうしてもできません。

Turbo Linuxインストール時に「すべて」インストールを選んだため、Perlはインストールされているようでした。
「which perl」でパスの確認をしましたところ、「#/usr/bin/perl」とちゃんと返ってきました。
確認したところ、CGI・SSIのファイルに記述するPerlのパスも間違っていません。
パーミッションはとりあえず動作するまで「777」にしています。

また、Apacheの「httpd.conf」の設定でも、
785 行目辺りにあります、「AddHandler cgi-script .cgi」、
790 行目辺りにあります、「Addtype text/html .shtml」、
791 行目辺りにあります、「Addhandler server-parsed .shtml」
の先頭の「#」を消しましたし、
573 行目辺りから 584 行目辺りに渡って設定するCGI・SSIのファイルを格納するディレクトリの設定も、
「Options」の部分を「None」から「ExecCGI Includes」に変えています。(こちらのサイトで解説されてる通りに設定しております)
また、 363 行目辺りの「DirectoryIndex」も「index.html」から「index.shtml」に変更しています。(SSIカウンタを使用しようとしているため)
345 行目辺りから356行目辺りに渡って設定する、「<Directory /home/*/public_html>」の部分もすべて「#」を外しまして、
「Options」の「IncludesNoExec」を「Includes ExecCGI」に変更しました。
283 行目の「DocumentRoot」の指定も間違っていないようです。

長々と申し訳ありません。アドバイスいただければ幸いです。

P.S.
質問をさせていただいているにも関わらず、恐縮ですが、Webサイト内の記述にタイプミスと思われる部分を見つけました。
・トップページのメニューにあります、「無料ドメインを取得する」というところの「ダイナミックDSN」という部分です。→「ダイナミックDNS」ではありませんでしょうか。
・「Webサーバの基本設定」の「CGI / Perlの設定」というところで、下から8行目の「Prel」という部分です。→「Perl」ではありませんでしょうか。

タイトル: パーミッション
記事No: 181
投稿日: 2003/02/16(Sun) 20:51
投稿者: shimirin   <shimirin@kt.rim.or.jp>
ぼくは自宅サーバをめざして、いろいろやっているところなのですが、RedHatではパーミッション(cgiファイルの)が755じゃないといけないようです。
あとはじめ間違えたんですが、userのディレクトリにrootでファイルをおいてしまいました。これだと、所有者がrootになってしまって取り換えたような記憶があります。

タイトル: Re: パーミッション
記事No: 185
投稿日: 2003/02/17(Mon) 22:46
投稿者: Shu   <infinity@s18.xrea.com>
URL: http://infinity.s18.xrea.com/
shimirinさん、返信ありがとうございます。
> ぼくは自宅サーバをめざして、いろいろやっているところなのですが、RedHatではパーミッション(cgiファイルの)が755じゃないといけないようです。
そうなんですか。
しかし、パーミッションは755の場合と777の場合とでは、グループと他ユーザが書き込みアクセス権を持つか持たないかの違いなので、ここでは逆に777の方がいいのではないかと思っていたのですが…。いい忘れましたが、使用しようとしておりますのは具体的に言いますと、Kentさんの「TEXT COUNTER」です。いろいろとパーミッションは変えてみたのですが、結果は変わりませんでした。
SSIは使用できるようになっているみたいなのですが、
(<!--#exec cmd="/bin/echo test "--> でちゃんと「test」と表示されました)
いざ、カウンタを動作させようとするとうまくいかないのです。

> あとはじめ間違えたんですが、userのディレクトリにrootでファイルをおいてしまいました。これだと、所有者がrootになってしまって取り換えたような記憶があります。
そうなんですか。パーミッションを変えれば所有者が誰であってもアクセスできる人を制限できるものと思っていました…。
いろいろと勉強が必要ですね。ありがとうございます。
もうちょっと頑張ってみます。

タイトル: Re^2: パーミッション
記事No: 190
投稿日: 2003/02/19(Wed) 01:14
投稿者: shimirin   <shimirin@kt.rim.or.jp>
そうか、SSI、CGIは実行できるんですね。
カウンタ設置は初めてですか?
ぼくの経験だと、count.datなどの数字だけのファイルの最後で改行している場合、表示できなかったことがあります。

タイトル: Re^2: パーミッション
記事No: 191
投稿日: 2003/02/19(Wed) 01:24
投稿者: shimirin   <shimirin@kt.rim.or.jp>
あ、それから、777は危ないというようなことが、CGIなどのキーワードでインターネット検索すると出てきます。たしかRedHatだとディレクトリも755でないとダメだったようです。
ぼくの場合、自分でuserアカウントを作って、そこでだいぶ遊んでいるのは、rootで間違えるとまずい、という意識があります。root権限が必要なときのみrootでログインします。
ですからApacheでも、/~shimirin/ にいろいろ置いて試してみてます。公開に向けて、var/www/html や /var/www/cgi-bin に整理してから置くことにしています。

タイトル: Re^3: パーミッション
記事No: 192
投稿日: 2003/02/19(Wed) 16:46
投稿者: Shu   <infinity@s18.xrea.com>
URL: http://infinity.s18.xrea.com/
> そうか、SSI、CGIは実行できるんですね。
> カウンタ設置は初めてですか?
> ぼくの経験だと、count.datなどの数字だけのファイルの最後で改行している場合、表示できなかったことがあります。

自宅サーバは全てが初めてです。
レンタルサーバではトップページにSSIカウンタを使用しています。そちらでも同じくKENTさんの「TEXT OUNTER」を使用させていただいています。
自宅サーバで使用する際には、#execコマンドで指定するパス以外は変えず、他はすべて同じ状態で使用しようとしています。なので、原因はパスの指定が間違っているか、httpd.conf の設定がおかしいか、のどちらかだとは検討はついているんですけどね。

> あ、それから、777は危ないというようなことが、CGIなどのキーワードでインターネット検索すると出てきます。たしかRedHatだとディレクトリも755でないとダメだったようです。
> ぼくの場合、自分でuserアカウントを作って、そこでだいぶ遊んでいるのは、rootで間違えるとまずい、という意識があります。root権限が必要なときのみrootでログインします。
> ですからApacheでも、/~shimirin/ にいろいろ置いて試してみてます。公開に向けて、var/www/html や /var/www/cgi-bin に整理してから置くことにしています。

そうですよね。パーミッション777だとその他のユーザにも書き込み権を与えてしまいますよね。
とりあえず、私は現時点では一つ一つ原因を見つけていくためにパーミッションを777にしていました。
正常に動作するようになりましたら、それぞれ適切なアクセス権に変更しようと思っています。
それから私も通常はuserアカウントを使っています。設定やソフトウェアのインストールを行うときのみrootでログインしています。

今回もお忙しい中、ご返信ありがとうございました。
他にもいろいろ試してみます。

タイトル: ファイルの設置場所を確認して下さい
記事No: 195
投稿日: 2003/02/19(Wed) 18:03
投稿者: kensuke@管理人   <webmaster@miloweb.net>
URL: http://www.miloweb.net/
こんにちは、Shuさん。

返信がとんでもなく遅くなり、大変申し訳ないです。

CGIが動かないとの事ですが、
当サイトのBBSでも過去によく頂いた質問なので、その時の解決方法を書いておきます。
Shuさんのご参考になれれば幸いです。

・.cgiファイルの文字コードを「EUC」にする。
 これは、改行コードがWin環境とLinux環境が違う為です。

・Perlへのパスの確認
 Shuさんは、whichコマンドで確認済みですね。

・.cgiのパーミッションを755にする
 KENT-WEBさんが配布されているカウンタなどにはファイル中にパーミッションの設定例が記載されているので、その記載通りに設定する事をお勧めします。あと、ログファイルなどのパーミッションもちゃんと設定しなければ動作しませんので、ご注意下さい。

・Apacheのディレクトリの確認
 .cgiファイルを設置するディレクトリが本当にApacheの設定ファイル(httpd.conf)中にCGIが動作する様に設定されているかを確認します。


上記の項目を確認してみて下さい。
確実に動くとは言えませんが、動いた方もいらっしゃいますので、一度チャレンジしてみて下さい。


問題解決した暁には、対策方法をBBSに書き込んで頂ければ幸いです!


追伸
サイト中の誤字脱字の件、ご報告ありがとうございました!
後日、修正させていただきますネ(^-^;

タイトル: #/usr/bin/perl --
記事No: 196
投稿日: 2003/02/19(Wed) 23:36
投稿者:
> ・Perlへのパスの確認
#/usr/bin/perl --
perl横の --がポイント。
改行問題を強制的に解決してくれる魔法のキーワード。

私はこれで救われました。

タイトル: 問題解決しました!
記事No: 198
投稿日: 2003/02/20(Thu) 18:59
投稿者: Shu   <infinity@s18.xrea.com>
URL: http://infinity.s18.xrea.com/
kensukeさん、shimirinさん、帝さん、ありがとうございました。
CGIが無事、動くようになりまして、問題解決しました。
httpd.confの設定はおかしくなかったみたいで、逆にオプションを付けすぎていたくらいでした。
原因はパスにあったようです。
こちらのページでも解説していただいていたように、また、帝さんがおっしゃっていたように、「#!/usr/bin/perl --」とすることで解決した模様です。実は以前、試していたのですが「#!/usr/bin/perl--」と見間違えてしまい、perlの後のスペースが抜けた記述をしていました。そのため動作しなかったものと考えられます。
ただ、依然とSSIのカウンタは動作しないままです。ですが、絶対にSSIカウンタでないといけないわけではありませんので、CGIのみで動くカウンタを取り付けました。こちらはきちんと動作してくれました。

> ・.cgiファイルの文字コードを「EUC」にする。
>  これは、改行コードがWin環境とLinux環境が違う為です。
>
どのようにして文字コードを変換すればよいのか分かりませんでしたが、
私はVAIO C1にTurbolinuxをインストールしてそれをサーバにしておりまして、ファイルの編集は全て画面が大きくて見やすいメインのPCでやって、LANでLinuxの方に送り込んでいます。特に何もしていないのですが、動作しました。Windowsの方で編集したからでしょうか。
もしよろしければ、文字コードの変換方法をお教えいただけると幸いです。

現在、皆様のおかげでCGIも動作するようになりまして、サーバを試験運営しております。( http://hina.minidns.net/
まだ、学生で電気代の問題もありますので、常時稼動させるわけにはいきませんが、時々稼動させていますので、どうぞいらしてください。
掲示板への書き込みも大歓迎です!
将来的には現在無料Webスペースを借りて運営している私のホームページ( http://infinity.s18.xrea.com/ )のコンテンツを全て自宅サーバの方に移してしまおうと考えております。

本当にお忙しい中、ありがとうございました。
心より御礼申し上げます。

タイトル: 文字変換
記事No: 200
投稿日: 2003/02/20(Thu) 21:41
投稿者:
> 原因はパスにあったようです。
> こちらのページでも解説していただいていたように、また、帝さんがおっしゃっていたように、「#!/usr/bin/perl --」とすることで解決した模様です。
解決おめでとうございます。
将来的には#!/usr/bin/perlで動かせるようになりたいですね。

> ただ、依然とSSIのカウンタは動作しないままです。
なんかすっごく簡単な問題のような気がします。
だってCGIが動いたんやしね。

> > ・.cgiファイルの文字コードを「EUC」にする。
> どのようにして文字コードを変換すればよいのか
帝はWindowsクライアントマシンで汎用テキストエディターを使ってFTPでサーバにcgiファイルを送っています。

TeraPadが無料なんでオススメです。秀丸エディタは有料なんで使ってないですが定番みたいです。

窓の杜ライブラリ
http://www.forest.impress.co.jp/editor.html

タイトル: NKF
記事No: 202
投稿日: 2003/02/20(Thu) 23:28
投稿者: shimirin   <shimirin@kt.rim.or.jp>
秀丸はよく使ってます。というか、文章書くときにはWindowsでは秀丸のみです。4000円ですが、だいぶ使い込んでから払いました(^^)。
秀丸はEUCコードも扱えます。

タイトル: ありがとうございます。
記事No: 203
投稿日: 2003/02/21(Fri) 21:32
投稿者: Shu URL: http://infinity.s18.xrea.com/
帝さん、shimirinさん、ありがとうございます。

> 将来的には#!/usr/bin/perlで動かせるようになりたいですね。

そうですね。どこが悪いのか分かりませんが、ぜひ、原因を見つけて直したいです。
SSIの方はまた時間を見つけてやってみますね。

> 帝はWindowsクライアントマシンで汎用テキストエディターを使ってFTPでサーバにcgiファイルを送っています。
>
> TeraPadが無料なんでオススメです。秀丸エディタは有料なんで使ってないですが定番みたいです。
>
> 窓の杜ライブラリ
> http://www.forest.impress.co.jp/editor.html

ということはWindowsマシンで編集してサーバに送れば問題ないということなんですね。だから、変換作業をしなくても動作していたんですね。
私はMIFESを使用しております。TeraPadや秀丸も使いやすそうですね。
TeraPadの方は帝さんのオススメだということですので、こちらも使ってみます。秀丸は学校の授業で使ってますが、こちらもいいですよね。

>shimirinさん
nkfというコマンドで変換できるんですね。ありがとうございます。
それから、私のWebサイトの掲示板への書き込みありがとうございました!
やっぱり自宅のサーバの掲示板に書き込みがあるのは嬉しいです。
まだテスト運用のような感じになっていますが、ぜひまたいらしてくださいね。


皆様、本当にありがとうございました。

タイトル: flock
記事No: 204
投稿日: 2003/02/21(Fri) 22:30
投稿者: shimirin   <shimirin@kt.rim.or.jp>
ぼくもSSIカウンタを試してみました。CGIカウンタなら動くのにSSIカウンタで動かないという現象が起きました。Shuさんと同じですね。
で、minichatだっけ、chatのCGIを入れたんですが、ファイルロックを適用するとBusyが出ることがわかりました。カウンタはファイルロック関係の関数を使っているので、これと関係するのではないかと思った次第ですが、まだわかりません。
余談ですが、chatでは、タグ許可にして(公開するときには許可しません^^)、息子と遊んでみました(LAN内で)。掲示板は自作してうまく動いています(これはlock機能を使っていません)。

タイトル: ぼくの場合は設定ミスでした
記事No: 206
投稿日: 2003/02/22(Sat) 02:34
投稿者: shimirin   <shimirin@kt.rim.or.jp>
SSIカウンタが動くようになりました。
httpd.confの(というかwebminから入って変更)Includesだけにしました。/home/*/public_htmlの設定のところです。noexecをとっただけです。
これはShuさんはすでにやってあるんでしたね。

タイトル: ちなみに
記事No: 207
投稿日: 2003/02/22(Sat) 02:52
投稿者: shimirin   <shimirin@kt.rim.or.jp>
本に出てたものを改変しました。たいてい、こんなスクリプトですね。

#!/usr/local/bin/perl

print "Content-type: text/plain\n\n";
$logfile='./count.log';
$imgurl='http://localhost/~shimirin/img/counter';

open IN,"+< $logfile";
flock(IN, 2);
$count=<IN>;
seek(IN, 0, 0);
truncate(IN, 0);
$count++;
print IN $count;
close IN;

$l = length $count;
for($i=0; $i<$l; $i++){
$c = substr($count, $i, 1);
$img = $c . '.gif';
$line .= "<img src=\"$imgurl/$img\">";
}

print $line;

タイトル: Re: flock
記事No: 208
投稿日: 2003/02/23(Sun) 12:31
投稿者: Shu   <infinity@s18.xrea.com>
URL: http://infinity.s18.xrea.com/
> ぼくもSSIカウンタを試してみました。CGIカウンタなら動くのにSSIカウンタで動かないという現象が起きました。Shuさんと同じですね。
> で、minichatだっけ、chatのCGIを入れたんですが、ファイルロックを適用するとBusyが出ることがわかりました。カウンタはファイルロック関係の関数を使っているので、これと関係するのではないかと思った次第ですが、まだわかりません。
> 余談ですが、chatでは、タグ許可にして(公開するときには許可しません^^)、息子と遊んでみました(LAN内で)。掲示板は自作してうまく動いています(これはlock機能を使っていません)。

ご返信、ありがとうございます。遅れてしまい申し訳ありません。

相変わらず、こちらはSSI使用できずじまいでしたが、悩んだときは一度期間をあけて再トライすることも大事、と聞きますので、またチャレンジしてみようと思います。

私のほうもチャットをつけてみました。KENTさんの「Windy」です。
こちらは当然ですが、きちんと動作しました。ファイルロックを適用しております。

まだまだ、CGI/SSIの設置ができるくらいで自分でスクリプトを書くことがほとんどできませんので、まだまだ勉強が必要ですね。

皆様のおかげで自宅サーバを開設することができました。
本当にありがとうございました。

タイトル: NKF
記事No: 201
投稿日: 2003/02/20(Thu) 23:23
投稿者: shimirin   <shimirin@kt.rim.or.jp>
Linux上でファイルの文字コードを変換するには、コマンドライン上で、

nkf -e file1 >file2

です。file1がShift_JISなら、file2がEUC_JPになっています。
nkfはWindows版もありますね。

▲ページの最上部に戻る

Copyright© Home Server Technical. All Right Reserved.
webmaster@miloweb.net