はじめまして。
おやじ様のサイトを有難く使わせていただいております。
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」 にしてあります。
色々と試行錯誤いたしましたが問題解決ならずです。。。
どうか皆様の豊富なお知恵をお貸しいただけますでしょうか?
よろしくお願いします。
> はじめまして。
はじめまして
最近いつも拝見させていただいております
私も同じ問題で悩んでいます もう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がおかしいとでます。
皆さん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がでたらほとんど実行するとエラーします。
> 皆さん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がでたらほとんど実行するとエラーします。」
とはそういうことなのです。
「 #!/usr/bin/perl -- 」 これでした。
#!/usr/bin/perl でprintenvが動いていましたので
違うと思っていましたので試さなかったのです
5日も費やしてしまいました。 いつもこんな感じです
素人は大変です
いろいろご協力ありがとうございました。
OAKさん、D.Hさん、おやじさん、貴重なご意見ありがとうございました。
こんばんは。
> その一つとは
>
> 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関数が表示されるはずです。
でないとなると???ですが、どんなエラーがでますか?
> 後、思いつくのは、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をアスキーモードで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のバージョンはでますか?
はい 入っています
バージョン5.8.0のように表示されます
なぜでしょうか すごく不思議です
おはようございます。
私も色々試したところ、つばさ様同様 出来ません。。
やはり、設定のどこかが間違ってるのでしょうか?
Perlのバージョンは、つばさ様と同じです。
httpd.confの設定は おやじ様が紹介されてると通りにしているのですが…
困りましたね(汗
>
> httpd://xxxxxxx.xxx.xxx/cgi-bin/printenv
>
> と入力するとどうなりますか?
> cgiとして実行されれば、ずらずらとperl関数が表示されるはずです。
> でないとなると???ですが、どんなエラーがでますか?
perl関数が出ました。 うれしいー
・・・・が他のCGIだと動かないんです
CGIがいけないのですか? サーバーで実行しても何にも表示されない
昨日はなんかずらずら表示されたのですが
わけわかんなくなってます
perl関数が出ました。 うれしいーのもつかのまです
また表示されなくなりました。
最初からまたやり直してみようと思います。
Perlの関数ってのは ブラウザ上からアクセスするのでしょうか?
私の場合は、一切表示されません…(涙
CGIが動く設定にした場合だと
デフォルト状態でhttp://サーバー名/cgi-bin/test-cgiで表示されます。
htdocs以下にindex.htmlファイル置き表示される状態ならです
> Userアカウントを作成すると
> http://xxx.yyy.jp/~○○○
> っとしたいのですが、
> どうしても、
> http://xxx.yyy.jp/○○○
> っと「チルダ」なしの様になります。
> 私としては、「チルダ」をつけたいのですが
> 色々設定を見直してもよくわかりませんでした。
この件については、解決しました。
おやじ様を始め、ご協力を頂きました皆様には、大変感謝いたします。
ふと思ったのですが、
public_htmlを作らないといけないのですが、
各ユーザを作ったときに自動的に、public_htmlを作成するように
したいのですが、可能なんでしょうか?
変な質問かとは存じますが、よろしくお願いします。
まずは、おめでとうございます。
> ふと思ったのですが、
> public_htmlを作らないといけないのですが、
> 各ユーザを作ったときに自動的に、public_htmlを作成するように
> したいのですが、可能なんでしょうか?
自分でシェルスプリクトを作れば出来ます。
Windowsで言うところのバッチファイルですが機能としては段違いに色んな事が
出来るので、Linuxで動いているプログラムの6□7割強がこのスクリプトで動作
していると言っても過言ではありません。
単純なスクリプト作成の流れとして、Userアカウント作成 -->User Passwd登録
-->ディレクトリpublic_htmlの作成……このようにして作ればいいわけです。
> 自分でシェルスプリクトを作れば出来ます。
> Windowsで言うところのバッチファイルですが機能としては段違いに色んな事が
> 出来るので、Linuxで動いているプログラムの6□7割強がこのスクリプトで動作
> していると言っても過言ではありません。
>
> 単純なスクリプト作成の流れとして、Userアカウント作成 -->User Passwd登録
> -->ディレクトリpublic_htmlの作成……このようにして作ればいいわけです。
早速のレスありがとうございます。
わたくしのスキルでは、少しわかり難いでございます。
申し訳ございません。。
ご迷惑でなければ、詳しく教えていただけますでしょうか?
よろしくお願いします
> > Userアカウントを作成すると
>
> > http://xxx.yyy.jp/~○○○
>
> > っとしたいのですが、
> > どうしても、
>
> > http://xxx.yyy.jp/○○○
>
> > っと「チルダ」なしの様になります。
> > 私としては、「チルダ」をつけたいのですが
> > 色々設定を見直してもよくわかりませんでした。
>
> この件については、解決しました。
> おやじ様を始め、ご協力を頂きました皆様には、大変感謝いたします。
>
> ふと思ったのですが、
> public_htmlを作らないといけないのですが、
> 各ユーザを作ったときに自動的に、public_htmlを作成するように
> したいのですが、可能なんでしょうか?
>
> 変な質問かとは存じますが、よろしくお願いします。
おやじさんの記事の応用で、
# mkdir /etc/skel/public_html
とやっておけば、ユーザーを作成するだけでpublic_htmlが自動生成されると思います。
こんばんは。
> おやじさんの記事の応用で、
> # 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もやっとやっとですが。)
> こんばんは。
>
> > おやじさんの記事の応用で、
> > # 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様がおっしゃってる応用のページってのは、
どこのページを指してるのでしょうか?
こんにちは。
> 教えていただいたようにいたしまして、
> 実際に、/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さん、生意気言って
すみません。)