Top過去ログ目次掲示板

作成日:2003年10月22日 作成:おやじ
掲示板で過去に質問された内容です。

No.1752 CGIを実行すると500…


No.1752 投稿時間:2003年10月22日(Wed) 19:09 投稿者名:ハッシュ URL:
タイトル:CGIを実行すると500…

はじめまして。

おやじ様のサイトを有難く使わせていただいております。
Linuxに関して詳しく説明していただいてますので
私は感謝の気持ちでいっぱいです。

本題の質問ですが、

この度、Linuxで自宅サーバーをしようとしたところ
ある程度は上手く行きましたが
2つほど問題にぶつかりました。

その一つとは

Userアカウントを作成すると

http://xxx.yyy.jp/~○○○

っとしたいのですが、
どうしても、

http://xxx.yyy.jp/○○○

っと「チルダ」なしの様になります。
私としては、「チルダ」をつけたいのですが
色々設定を見直してもよくわかりませんでした。

そして2つの問題ですが

CGIを動かしてみました。
そしたら

http://www.aconus.com/~oyaji/bbs/wforum.cgi?mode=allread&no=1725&page=0

で質問されてる S 様同様に私も500のエラーになります。
そしてFAQで紹介されてる様に

Pealのパスを変更

CGIその物をの変更

などなどをしましたが まったく同じです。。

httpd.confは おやじ様が紹介されてる設定と同じ様な物に
してありますので、問題ないかとは思いますが…(汗

もちろんFAQに紹介されてる簡単なCGIも実行しました。
CGIのパーミッションは 「755」 にしてあります。

色々と試行錯誤いたしましたが問題解決ならずです。。。
どうか皆様の豊富なお知恵をお貸しいただけますでしょうか?
よろしくお願いします。


No.1753 投稿時間:2003年10月22日(Wed) 20:47 投稿者名:つばさ URL:
タイトル:Re: CGIを実行すると500…

> はじめまして。
はじめまして
最近いつも拝見させていただいております
私も同じ問題で悩んでいます もう4日もです
2.0.47 Redhat9です

WinXPでは2.0.47は設定がうまくいきバーチャル使用でも快適に動いているのですが
UNIX版のApache2は初めての設定です
1.3.27でもバーチャルで稼動しました。
パーミッション 簡単なCGIや今まで使用していたCGI パールへのパス
Linuxの改行
全て500エラーになってしまいます。

UNIX版1.3.27で使用していたCGIも動きません

SSIは動きますが
誰かわかる方がおられましたら教えていただきたいのですが
宜しくお願いいたします。

エラーメッセージは
premature end of script headers: "cgi名"とcgiがおかしいとでます。


 


No.1756 投稿時間:2003年10月22日(Wed) 21:32 投稿者名:OAK URL:http://kkk.nu/
タイトル:CGI はプログラムですよ

皆さんCGIというのはプログラムであることを忘れていませんか?
どういう意味かと言うと、デバッグもできるしローカルでも実行できるのです。

すぐに500のエラーがでる。パーミッションがどうのという前に
そのプログラムをCGIでなく実行する事。

つまり /home/http/cgi/test.cgi というプログラムなら

su nobody ( httpの実行UIDにする)
cd /home/http/cgi/
./test.cgi
を実行すれば動くのです。
perl -d ./test.cgi でデバッグする事も可能だし
環境やその他によりGET POST もシミュレートできます。

私の場合500がでたらほとんど実行するとエラーします。


No.1758 投稿時間:2003年10月22日(Wed) 21:57 投稿者名:つばさ URL:
タイトル:Re: CGI はプログラムですよ

> 皆さんCGIというのはプログラムであることを忘れていませんか?
> どういう意味かと言うと、デバッグもできるしローカルでも実行できるのです。

ご返答ありがとうございます 
私のスキルではよく意味がわかりません
申し訳ございません


No.1761 投稿時間:2003年10月22日(Wed) 23:00 投稿者名:D.H URL:
タイトル:Re^2: CGI はプログラムですよ

こんばんは、D.Hです。

> > 皆さんCGIというのはプログラムであることを忘れていませんか?
> > どういう意味かと言うと、デバッグもできるしローカルでも実行できるのです。
>
> ご返答ありがとうございます 
> 私のスキルではよく意味がわかりません
> 申し訳ございません

まずは、理屈抜きにCGIファイルが保存されてるサーバーで例を参考にCGIを実行してみて下さい。

例:
test.cgiが/home/www/cgi-bin/に保存されている場合。
cd /home/www/cgi-bin
./test.cgi

もしtest.cgiに問題なければ、成功時の結果が表示され、問題があればエラーとなり、エラー内容が表示されます。
そして、表示された結果をそのまま教えてくくれれば、おやじさんをはじめ解決の参考になります。

そもそもCGIとは、クライアント(IEやネットスケープなどのブラウザ)からの要求をサーバーで処理し、その結果をクライアント(ブラウザ)に返して表示する仕組みです。
つまり、ブラウザからCGIを実行して、何も問題なければちゃんと表示されるし、逆に何か問題があればその問題に対応したエラーコードが表示されるのです。例:エラー500 Internal Server Error
でも、ただエラーコードが表示されても、具体的にどこがいけないのか分かりませんよね。
具体的にどこがいけないのかを調べるために、CGIファイルが保存されているサーバーから直接CGIを実行するのです。そうすれば先に書いたようにどこに問題があるのかが分かるのです。

OAKさんが言っていた
「皆さんCGIというのはプログラムであることを忘れていませんか?
どういう意味かと言うと、デバッグもできるしローカルでも実行できるのです。
(中略)
私の場合500がでたらほとんど実行するとエラーします。」
とはそういうことなのです。


No.1774 投稿時間:2003年10月23日(Thu) 19:09 投稿者名:つばさ URL:
タイトル:動きました

「 #!/usr/bin/perl -- 」 これでした。
#!/usr/bin/perl でprintenvが動いていましたので
違うと思っていましたので試さなかったのです

5日も費やしてしまいました。 いつもこんな感じです
素人は大変です

いろいろご協力ありがとうございました。
OAKさん、D.Hさん、おやじさん、貴重なご意見ありがとうございました。


No.1755 投稿時間:2003年10月22日(Wed) 21:26 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:思いつくままですが。

こんばんは。

> その一つとは
>
> Userアカウントを作成すると
>
> http://xxx.yyy.jp/~○○○
>
> っとしたいのですが、
> どうしても、
>
> http://xxx.yyy.jp/○○○
>
> っと「チルダ」なしの様になります。
> 私としては、「チルダ」をつけたいのですが
> 色々設定を見直してもよくわかりませんでした。

 設定ではなくて、ドキュメントを置く場所を間違ってませんか?
下記を参考にしてください。http://xxx.yyy.jp/~○○○なら、
/home/○○○/public_html/index.html等、ユーザディレクトリの
下のpublic_htmlディレクトリ配下を探しに行きます。

 http://www.aconus.com/~oyaji/faq/apache_html2.htm

後、最近は表示されていないようですが、下記の落とし穴1は大丈夫ですか?

 http://www.aconus.com/~oyaji/www/apache_linux.htm

> http://www.aconus.com/~oyaji/bbs/wforum.cgi?mode=allread&no=1725&page=0
>
> で質問されてる S 様同様に私も500のエラーになります。
> そしてFAQで紹介されてる様に
>
> Pealのパスを変更
>
> CGIその物をの変更
>
> などなどをしましたが まったく同じです。。

 後、思いつくのは、cgiをアスキーモードでftpしているかぐらいですかね。
試しに、cgi-binディレクトリにあるprintenvを開き、perlのパスを直し
パーミッションを755にして、

 httpd://xxxxxxx.xxx.xxx/cgi-bin/printenv

と入力するとどうなりますか?
 cgiとして実行されれば、ずらずらとperl関数が表示されるはずです。
でないとなると???ですが、どんなエラーがでますか?


No.1757 投稿時間:2003年10月22日(Wed) 21:53 投稿者名:つばさ URL:
タイトル:Re: 思いつくままですが。


>  後、思いつくのは、cgiをアスキーモードでftpしているかぐらいですかね。
> 試しに、cgi-binディレクトリにあるprintenvを開き、perlのパスを直し
> パーミッションを755にして、
>
>  httpd://xxxxxxx.xxx.xxx/cgi-bin/printenv
>
> と入力するとどうなりますか?
>  cgiとして実行されれば、ずらずらとperl関数が表示されるはずです。
> でないとなると???ですが、どんなエラーがでますか?

早速のご返答ありがとうございます
httpd://xxxxxxx.xxx.xxx/cgi-bin/printenvでも500のエラーが出てしまいます。
perl関数が表示されません

なぜでしょうか?


No.1759 投稿時間:2003年10月22日(Wed) 22:01 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:続 思いつくまま。

>
> >  後、思いつくのは、cgiをアスキーモードでftpしているかぐらいですかね。
> > 試しに、cgi-binディレクトリにあるprintenvを開き、perlのパスを直し
> > パーミッションを755にして、
> >
> >  httpd://xxxxxxx.xxx.xxx/cgi-bin/printenv
> >
> > と入力するとどうなりますか?
> >  cgiとして実行されれば、ずらずらとperl関数が表示されるはずです。
> > でないとなると???ですが、どんなエラーがでますか?
>
> 早速のご返答ありがとうございます
> httpd://xxxxxxx.xxx.xxx/cgi-bin/printenvでも500のエラーが出てしまいます。
> perl関数が表示されません
>
> なぜでしょうか?

書いたとおり、cgiパスの変更とパーミッションを変更したならわかりません。
変な話ですが、perlが入っていないとかはないですよね。
コマンドで

 perl -v

でperlのバージョンはでますか?


No.1760 投稿時間:2003年10月22日(Wed) 22:21 投稿者名:つばさ URL:
タイトル:Re: 続 思いつくまま。

はい 入っています

バージョン5.8.0のように表示されます

なぜでしょうか すごく不思議です


No.1762 投稿時間:2003年10月23日(Thu) 06:23 投稿者名:ハッシュ URL:
タイトル:Re^2: 続 思いつくまま。

おはようございます。

私も色々試したところ、つばさ様同様 出来ません。。
やはり、設定のどこかが間違ってるのでしょうか?

Perlのバージョンは、つばさ様と同じです。

httpd.confの設定は おやじ様が紹介されてると通りにしているのですが…
困りましたね(汗


No.1765 投稿時間:2003年10月23日(Thu) 11:48 投稿者名:つばさ URL:
タイトル:Re: 思いつくままですが。

>
>  httpd://xxxxxxx.xxx.xxx/cgi-bin/printenv
>
> と入力するとどうなりますか?
>  cgiとして実行されれば、ずらずらとperl関数が表示されるはずです。
> でないとなると???ですが、どんなエラーがでますか?

perl関数が出ました。 うれしいー
・・・・が他のCGIだと動かないんです

CGIがいけないのですか? サーバーで実行しても何にも表示されない
昨日はなんかずらずら表示されたのですが
わけわかんなくなってます


No.1766 投稿時間:2003年10月23日(Thu) 16:11 投稿者名:つばさ URL:
タイトル:原因がわからない

perl関数が出ました。 うれしいーのもつかのまです

また表示されなくなりました。

最初からまたやり直してみようと思います。


No.1767 投稿時間:2003年10月23日(Thu) 16:25 投稿者名:ハッシュ URL:
タイトル:Re: 原因がわからない

Perlの関数ってのは ブラウザ上からアクセスするのでしょうか?

私の場合は、一切表示されません…(涙


No.1772 投稿時間:2003年10月23日(Thu) 18:34 投稿者名:つばさ URL:
タイトル:そうらしいです

CGIが動く設定にした場合だと
デフォルト状態でhttp://サーバー名/cgi-bin/test-cgiで表示されます。
htdocs以下にindex.htmlファイル置き表示される状態ならです


No.1892 投稿時間:2003年11月07日(Fri) 01:13 投稿者名:ハッシュ URL:
タイトル:Re: 出来ました

> Userアカウントを作成すると

> http://xxx.yyy.jp/~○○○

> っとしたいのですが、
> どうしても、

> http://xxx.yyy.jp/○○○

> っと「チルダ」なしの様になります。
> 私としては、「チルダ」をつけたいのですが
> 色々設定を見直してもよくわかりませんでした。

この件については、解決しました。
おやじ様を始め、ご協力を頂きました皆様には、大変感謝いたします。

ふと思ったのですが、
public_htmlを作らないといけないのですが、
各ユーザを作ったときに自動的に、public_htmlを作成するように
したいのですが、可能なんでしょうか?

変な質問かとは存じますが、よろしくお願いします。


No.1893 投稿時間:2003年11月07日(Fri) 03:31 投稿者名:U-mex URL:
タイトル:スプリクトを作れば出来ますよ。

まずは、おめでとうございます。

> ふと思ったのですが、
> public_htmlを作らないといけないのですが、
> 各ユーザを作ったときに自動的に、public_htmlを作成するように
> したいのですが、可能なんでしょうか?

自分でシェルスプリクトを作れば出来ます。
Windowsで言うところのバッチファイルですが機能としては段違いに色んな事が
出来るので、Linuxで動いているプログラムの6□7割強がこのスクリプトで動作
していると言っても過言ではありません。

単純なスクリプト作成の流れとして、Userアカウント作成 -->User Passwd登録
-->ディレクトリpublic_htmlの作成……このようにして作ればいいわけです。


No.1894 投稿時間:2003年11月07日(Fri) 03:53 投稿者名:ハッシュ URL:
タイトル:Re: スプリクトを作れば出来ますよ。

> 自分でシェルスプリクトを作れば出来ます。
> Windowsで言うところのバッチファイルですが機能としては段違いに色んな事が
> 出来るので、Linuxで動いているプログラムの6□7割強がこのスクリプトで動作
> していると言っても過言ではありません。
>
> 単純なスクリプト作成の流れとして、Userアカウント作成 -->User Passwd登録
> -->ディレクトリpublic_htmlの作成……このようにして作ればいいわけです。

早速のレスありがとうございます。
わたくしのスキルでは、少しわかり難いでございます。
申し訳ございません。。

ご迷惑でなければ、詳しく教えていただけますでしょうか?
よろしくお願いします


No.1897 投稿時間:2003年11月07日(Fri) 16:04 投稿者名:sugari URL:
タイトル:public_htmlの作成なら・・・

> > Userアカウントを作成すると
>
> > http://xxx.yyy.jp/~○○○
>
> > っとしたいのですが、
> > どうしても、
>
> > http://xxx.yyy.jp/○○○
>
> > っと「チルダ」なしの様になります。
> > 私としては、「チルダ」をつけたいのですが
> > 色々設定を見直してもよくわかりませんでした。
>
> この件については、解決しました。
> おやじ様を始め、ご協力を頂きました皆様には、大変感謝いたします。
>
> ふと思ったのですが、
> public_htmlを作らないといけないのですが、
> 各ユーザを作ったときに自動的に、public_htmlを作成するように
> したいのですが、可能なんでしょうか?
>
> 変な質問かとは存じますが、よろしくお願いします。

おやじさんの記事の応用で、
# mkdir /etc/skel/public_html
とやっておけば、ユーザーを作成するだけでpublic_htmlが自動生成されると思います。


No.1898 投稿時間:2003年11月07日(Fri) 23:35 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:これで大丈夫です。

こんばんは。

> おやじさんの記事の応用で、
> # mkdir /etc/skel/public_html
> とやっておけば、ユーザーを作成するだけでpublic_htmlが自動生成されると思います。

 見てくれている人は、チャント見てくれているのでうれしいです。この応用編は、思いますではなく、これで正解でチャントpublic_htmlができます。一応ですが、パーミッションを755にしておいたほうがいいかもしれません。(多分755になっていますが)
 要は、ユーザ登録時に、ユーザのホームディレクトリに自動作成したいものを/etc/skelに放り込んでおけば、パーミッションはそのままに、登録ユーザ:グループでコピーされます。

# mkdir /etc/skel/public_html
# chmod 755 /etc/skel/public_html

 今回の件だけに限って言えば、この方法で十分だと思いますが、U-mexさんもおっしゃっているように、シェルスクリプトは是非勉強されたほうがいいと思います。
結構やりたいことができると思います。(というおやじは、まだまだシェルは使いこなせず、perlもやっとやっとですが。)


No.1904 投稿時間:2003年11月08日(Sat) 11:22 投稿者名:ハッシュ URL:
タイトル:Re: 反応なし。。。

> こんばんは。
>
> > おやじさんの記事の応用で、
> > # mkdir /etc/skel/public_html
> > とやっておけば、ユーザーを作成するだけでpublic_htmlが自動生成されると思います。
>
>  見てくれている人は、チャント見てくれているのでうれしいです。この応用編は、思いますではなく、これで正解でチャントpublic_htmlができます。一応ですが、パーミッションを755にしておいたほうがいいかもしれません。(多分755になっていますが)
>  要は、ユーザ登録時に、ユーザのホームディレクトリに自動作成したいものを/etc/skelに放り込んでおけば、パーミッションはそのままに、登録ユーザ:グループでコピーされます。
>
> # mkdir /etc/skel/public_html
> # chmod 755 /etc/skel/public_html
>
>  今回の件だけに限って言えば、この方法で十分だと思いますが、U-mexさんもおっしゃっているように、シェルスクリプトは是非勉強されたほうがいいと思います。
> 結構やりたいことができると思います。(というおやじは、まだまだシェルは使いこなせず、perlもやっとやっとですが。)

U-mex様、おやじ様、レスありがとうございます。

教えていただいたようにいたしまして、
実際に、/etc/skel/内にpublic_htmlフォルダが作成されました。

しかし、ユーザーを作成すると反応はありません。
ユーザーの追加はWebmin上から行っているのですが
シェルの指定を/bin/bashっとしてますが
この場合、そのままでよろしいでしょうか?

そして、U-mex様がおっしゃってる応用のページってのは、
どこのページを指してるのでしょうか?


No.1905 投稿時間:2003年11月08日(Sat) 12:04 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:Webminを使うからでは?

こんにちは。

> 教えていただいたようにいたしまして、
> 実際に、/etc/skel/内にpublic_htmlフォルダが作成されました。
>
> しかし、ユーザーを作成すると反応はありません。
> ユーザーの追加はWebmin上から行っているのですが
> シェルの指定を/bin/bashっとしてますが
> この場合、そのままでよろしいでしょうか?

 skel放り込みの件は、useraddコマンドを使ったり、redhat標準のGUIツール
を使ったときの話です。Webminが独自にやっているならこの機能は生かせない
かもしれません。便利な反面、何をやっているのかがわからいのがWebminです。
Webminを使う以上、設定にどう反映されるかがよく見えないので、動く範囲、
設定できる範囲を自分で見極めていくしかないのではないでしょうか?
 Webminもコンソールモードみたいのがあったのではないですか?
あと、気になるのが、手動設定とWebmin設定が同じconfigにかぶった時、結果が
どうなるかがよくわかりません。

> そして、U-mex様がおっしゃってる応用のページってのは、
> どこのページを指してるのでしょうか?

 U-mexさんではなくsugariさんですよ。courier-imapです。別に応用例が書いてある
わけではないですよ。sugariさんは、skelにMaildirをいれておけば、自動作成される
というのをご覧になって、Maildirを作成するという表面的な事ではなく、この作業
の本質(useraddでユーザ追加時にホームディレクトリに定型のファイルやフォルダを作成
したければ、skelに作っておけば自動生成されるという事。)を捉えられて、今回にも
使えると思われたのではないでしょうか?
 こういうアプローチは、1を見て、読んで10に対応できるようになるので、ある意味、
非常に効率的で、スキルも一気にアップすると思います。(sugariさん、生意気言って
すみません。)



掲示板▲頁先頭