BBS過去ログ |
| ■目次 |
お世話になります。おじんです。
娘のリクエストでユーザーディレクトリにYY-BBS Plusを導入するはめになったのですが、上手くCGIが動作しないのです。
自分のバーチャルホストのディレクトリには掲示板はなんら問題無く導入できたのですが、娘のディレクトリではCGI自体が動作しない感じです。
(娘のディレクトリは、手順書のユーザーディレクトリ作成で作成しております)
本来のBBSの趣旨と異なると思いますが、何卒アドバイスを戴ければ・・・・・。
娘のpublic_html上で単純なcgiを書いてもInternal Server Errorとなってしまします。
test.cgiの内容は
#! /usr/local/bin/perl --
#↑これは各自の環境に合わせてください
print "Content-type:text/html\n\n";
print "test";
という内容です。
改行コードやら、.htaccessファイルやら、perlの後の--やらパーミションやら確認したつもりですが、どうも根本的な誤りがありそうです。
/var/log/httpd/error_logの内容は
[Sun Jun 13 21:06:13 2004] [error] [client 219.119.149.111] (13)Permission denied: exec of '/usr/sbi
n/suexec' failed
[Sun Jun 13 21:06:13 2004] [error] [client 219.119.149.111] Premature end of script headers: test.cgi
というものでした。
自分のページでは問題無くCGI掲示板が(別のCGIですが)動作しているので、多分パーミションの問題の様な気がするのですが、Linux初心者の上にperlとなると手足が出ません。
何卒諸先輩方のご指導を仰ぎたく、サーバ構築とはちょっと趣旨が異なるかもしれませんが、応用編ということでご助力お願い申し上げます。
おじん様、こんばんわ。
test.cgiの格納ディレクトリとパーミッションを教えて頂けますか?
あと、/var/log/httpd/suexec_logになにかエラーメッセージが出力されてませんか?
> 本来のBBSの趣旨と異なると思いますが、何卒アドバイスを戴ければ・・・・・。
そんなことはないですよ^^
ここでは一般的にサーバ構築で行うであろうこと全般について話題にしていきたいと思っていますので。
特にCGIはWebサーバ構築後に必ずといっていいほど手をだすものですし。
暖かい助言ありがとうございます。
test.cgiは/home/ユーザーディレクトリ/public_htmlに置きました。
パーミションはpublic_htmlはdrwr-xr-x、test.cgiは-rwxr-xr-xです。
/var/log/httpd/suexec_logは存在しませんでした。
一応外部公開URLにしておりますので、必要でしたらご連絡申し上げます。(まだ恥ずかしくて公開したくありません・・・のが本音です)
おじん様、こんばんわ。
> test.cgiは/home/ユーザーディレクトリ/public_htmlに置きました。
> パーミションはpublic_htmlはdrwr-xr-x、test.cgiは-rwxr-xr-xです。
test.cgiの所有者はユーザ名になってますでしょうか?
はい。そのユーザーディレクトリのユーザー所有となっております。
宜しくお願いします。
> はい。そのユーザーディレクトリのユーザー所有となっております。
問題のcgiはクライアントからFTPでサーバへアップロードしたのでしょうか?
それともサーバ上でcgiをダウンロードまたは作成したのでしょうか?
ちなみに、おじん様が提示されたテスト用CGIを当サイトのユーザディレクトリ上に設置してみましたところ、問題なく動作しました。
なお、設置方法はBBSよりコピーしてサーバ上で編集(ペースト)しました。
http://fallenangels.zive.net/~fedora/test.cgi
[root@linux root]# ll /home/fedora/public_html/
合計 8
-rw-r--r-- 1 root root 75 5月 28 16:40 index.html
-rwxr-xr-x 1 fedora fedora 115 6月 13 23:33 test.cgi
[root@linux root]# ll /home/fedora/
合計 20
drwxr-xr-x 2 fedora fedora 4096 6月 13 23:33 public_html
[root@linux root]# ll /home/
合計 16
drwx--x--x 7 fedora fedora 4096 6月 6 14:18 fedora
お世話になります。
両方やってみました。viで直接入力したものと、WinSCPでテキスト転送したものも両方動作しません。
うーん、こんな短いcgiですからミスは無いと思うのですが・・・(エディタではコピペですし)
jcodeを明示的に
#$jcodepath ='./jcode.pl';
とも指定して、カレントに置いたりもしてみたのですが・・・・・
うーん、なんででしょうね。
あとは、cgiのパーミッションを700にしてみてください。
やってみました。だめですねぇ。
娘の鍵をメールで送って、ちょっと中身を確認して戴けませんか?
多分つまらない原因だと思うのですが。お忙しいとは存じますが、如何でしょうか・・・・・。
OpenSSH+Chrootはまだ組んでなく、サーバの置いてある東京に戻るのが明日夜になりますので、その後の話ですが。
リモートでは出来ないんですよね。
どうせやらなければならない作業なのでうまくいったらの話ですが。
どうにもこれが動かないと後が進まない気がしてなりません。
ご無理を承知でお願い申し上げたいのですが・・・・・。
BBSが出来ないと、娘に何を言われるか・・・・・・。こんなご時世ですが全て自分で管理出来ていれば、健全なネットの世界を子供達に見せてやれるのではと思っている次第です。
> 娘の鍵をメールで送って、ちょっと中身を確認して戴けませんか?
> 多分つまらない原因だと思うのですが。お忙しいとは存じますが、如何でしょうか・・・・・。
構わないですよ。原因特定できる保証はありませんが、私としてもどうにも納得いかないですし。みるだけでも、みさせて頂きます。
ありがとうございます。
では後ほど。今からお江戸に単身赴任です。
すみません、鍵を送られる場合、httpd.confも送ってください。
今回の事象はおそらくWebサーバー側が起因していると思われますので。
Webmaster様メールありがとうございました。
ご指摘とは異なり、おじんのマシンはFC1です。よってSELinuxは動作していないようです。
不思議なのは簡単なtest.cgiが動かなかった私のフォルダで、別のcgiによるBBSが動作してしまっていることですね。
あと一つだけご確認させて戴きたいのですが、perl実行(インストール)時には特別なユーザーは作成されるのでしょうか?(Perlさんとか)
Libsafeの問題でその辺のところが怪しいままになっております。
宜しくお願い申し上げます。
DBの内容充実のため、下記にWebmaster様のメールのアドバイス部分を掲載させて戴きました。ご容赦願います。
>おじん様、こんばんわ。
>当方のデバッグ用Linuxマシン(FC1)で、頂いたhttpd.confを使用してhttpdを
>起動して問題のtest.cgiを起動したところ、問題なく動作しました。
>おじん様の環境はFC2ですよね?もしかしたら、SELinuxが有効になってません
>でしょうか?
>FC2でSELinuxを有効にするとデフォルトではWebページのREAD権限しかないため、
>CGIの実行ができず、エラーとなってしまいます。
>SELinuxの有効/無効は以下のコマンドで確認できます。
>[root@linux root]# cat /etc/sysconfig/selinux
># This file controls the state of SELinux on the system.
># SELINUX= can take one of these three values:
># enforcinfg - SELinux security policy is enforced.
># permissive - SELinux prints warnings instead of enforcing.
># disabled - No SELinux policy is loaded.
>SELINUX=disabled
>
>上記は当サイトの設定で、SELinuxは無効になってますが、
>有効の場合は、SELINUX=enforcingとなってます。
>また、audit2allow -dとすると、SELinuxによって拒否されたアクセス情報が
>出力されます。
>もし、有効になっていた場合は、当サイトのようにSELINUX=disabledとしたあと、
>リブートすれば無効になります。
おじん様、こんにちわ。
> ご指摘とは異なり、おじんのマシンはFC1です。よってSELinuxは動作していないようです。
そうですか。いったい、なにが原因なんでしょうね。
あとはいったん、httpdの設定を元に戻して、CGIの実行とユーザディレクトリの設定だけを有効にしてやってみるとかして、1個ずつ確認していき、なにが悪さしてるのか確認するしかないですね。
> あと一つだけご確認させて戴きたいのですが、perl実行(インストール)時には特別なユーザーは作成されるのでしょうか?(Perlさんとか)
作成されてないようです。以下のコマンドでユーザ名が確認できます。
lastlog | sort | more
> Libsafeの問題でその辺のところが怪しいままになっております。
> 宜しくお願い申し上げます。
Libsafeのせいでhttpdのインストールも正常にいかなかったんですよね?
念のため、Libsafeを削除後にhttpdを再インストールしてやってみたらどうでしょうか?
> DBの内容充実のため、下記にWebmaster様のメールのアドバイス部分を掲載させて戴きました。ご容赦願います。
お気遣いありがとうございます。
CGIがエラーになるというトラブルはけっこう、ありますので、なんとしてでもこのスレッドは解決に持ち込みたいのですが・・・。
アドバイスありがとうございます。
別スレッドでも書きましたが、別マシンで追っていきたいと思います。(httpdをapt-get removeすると結構他のものもアンインストールされてしまうみたいで)
そちらのスレッドではFC2でと記入しましたが、この件もあるのでFC1で確認の後にFC2に移行する方針に変更します。
一度子供にページ開放すると、メンテというよりいじくり回しにくいのが事実です。検証マシンはお父さん必須のようです。
その他新たな疑問・問題点が発覚次第ご報告させて頂きます。
おじん様、こんばんわ。
以下のコマンドの結果を張りつけてもらえますでしょうか?
[root@linux root]# which suexec
/usr/sbin/suexec
[root@linux root]# ll /usr/sbin/suexec
-r-s--x--- 1 root apache 10820 5月 6 20:17 /usr/sbin/suexec
[root@linux root]# grep "User " /etc/httpd/conf/httpd.conf
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
User apache
[root@linux root]# grep "Group " /etc/httpd/conf/httpd.conf
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
# when the value of (unsigned)Group is above 60000;
# don't use Group #-1 on these systems!
Group apache
[root@linux root]# grep apache /etc/passwd
apache:x:48:48:Apache:/var/www:/sbin/nologin
以前にLibsafeがらみでApacheのインストール時のapacheユーザ追加がエラーになり、それを手動で追加したんですよね?
それが原因かも知れませんので、やはり、httpdの再インストールをお勧めします。
httpdアンインストールで友連れで削除されるのって、aprとapr-utilですよね?aptでhttpdをインストールするときに自動でインストールされるから問題ないですよ。
お世話になります。貼り付けました。
apacheを手動で追加した結果、apcheユーザーの設定がご指摘とは異なるみたいです。
[root@xxxxx root]# which suexec
/usr/sbin/suexec
[root@xxxxx root]# ll /usr/sbin/suexec
-r-s--x--- 1 root root 46145 5月 8 01:16 /usr/sbin/suexec
[root@xxxxx root]# grep "User " /etc/httpd/conf/httpd.conf
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
User apache
[root@xxxxx root]# grep "Group " /etc/httpd/conf/httpd.conf
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
# when the value of (unsigned)Group is above 60000;
# don't use Group #-1 on these systems!
Group apache
[root@xxxxx root]# grep apache /etc/passwd
apache:x:502:502::/home/apache:/bin/bash
あと昨日組み立てOSインストール〜cpan2rpmまでやったのですが、Jcodeのインストールのところでやたら会話型の設定が続きました。
以前のインストールでは記憶になかったので、一度アンインストールして再度やってみましたが今度は出ませんでした。
二度目のJcodeインストールの画面を貼り付けておきます。
libwww-perl-5.68.tar.gzというのはこれで問題なく入っているんでしょうか?
[root@host root]# cpan2rpm --install Jcode
-- cpan2rpm - Ver: 2.026 --
Signatures not set up
Upgrade check
WARNING: libwww-perl module not found. To install, one of the following options may help:
1) Try http://www.rpmfind.net/linux/rpm2html/search.php?query=perl-libwww-perl
2) Specify the full URL of the tarball manually.
cpan2rpm -i http://www.cpan.org/modules/by-module/LWP/libwww-perl-5.68.tar.gz
3) Download tarball and specify file on commandline.
4) Configure CPAN: perl -MCPAN -eshell
5) cpan2rpm -i libwww-perl
Trying HTTP::Lite...
WARNING: this alternative module could not be found either! Please install the libwww-perl package as indicated above.
Trying external programs...
--06:41:37-- http://www.cpan.org/modules/by-module/LWP/libwww-perl-5.68.tar.gz
=> `-'
www.cpan.org をDNSに問いあわせています... 完了しました。
www.cpan.org[66.39.76.93]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 198,788 [application/x-tar]
100%[============================================================================>] 198,788 141.08K/s ETA 00:00
06:41:39 (141.08 KB/s) - `-' を保存しました [198788/198788]
Retrieving with [wget]
CPAN+ not found - using old interface
-- module: Jcode --
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
Database was generated on Thu, 17 Jun 2004 11:34:14 GMT
Tarball found - not fetching
Metadata retrieval
Tarball extraction: [/usr/src/redhat/SOURCES/Jcode-0.83.tar.gz]
Generating spec file
SPEC: /usr/src/redhat/SPECS/Jcode.spec
RPM: /usr/src/redhat/RPMS/i386/perl-Jcode-0.83-1.i386.rpm
SRPM: /usr/src/redhat/SRPMS/perl-Jcode-0.83-1.src.rpm
Installing package
Preparing... ########################################### [100%]
1:perl-Jcode ########################################### [100%]
長文失礼しました。宜しくお願いします。
おじん様、こんにちわ。
一番最初の書き込みで示された以下のエラーメッセージが全てでしたね。
>[Sun Jun 13 21:06:13 2004] [error] [client 219.119.149.111] (13)Permission denied: exec of '/usr/sbin/suexec' failed
Apache2ではsuEXEC機能(http://www.kent-web.com/support/faq/faq3-2.html#6)がデフォルトで働くが、手動でapacheユーザを追加した結果、本来の権限と異なる状態となっているため、suexec自体の実行でエラーをおこしているようです。
【本来(インストールで自動でapacheユーザを作成した場合)】
[root@linux root]# ll /usr/sbin/suexec
-r-s--x--- 1 root apache 10820 5月 6 20:17 /usr/sbin/suexec
[root@linux root]# grep apache /etc/passwd
apache:x:48:48:Apache:/var/www:/sbin/nologin
【今回(手動でapacheユーザを作成した場合)】
[root@xxxxx root]# grep apache /etc/passwd
apache:x:502:502::/home/apache:/bin/bash
[root@xxxxx root]# ll /usr/sbin/suexec
-r-s--x--- 1 root root 46145 5月 8 01:16 /usr/sbin/suexec
>/var/www/cgi-bin/以下に置いて、そのCGIを実行するにはリンクを貼るんでしょうか?そういえばそのディレクトリ以下には手順書のNamazu.cgiのみが置いてあり、それは上手く動作しております。
確かに/var/www/cgi-bin/以下に置けば動作すると思いますが、今回はあくまでもユーザディレクトリ上で実行したいというのが前提ですので、これで動作確認できてもcgi自体に誤りがないかを確認できるだけで、根本の解決にはなりませんよね。
やはり、対処として一番確実なのではApacheの再インストールですね。
あと、もうひとつの対処として、/usr/sbin/suexecを削除するかリネームしてApacheを再起動すればうまくいくと思います。
大変長いスレッドお付き合い戴きありがとうございました。
そうですね、自分で貼り付けてそう思いました。本日週末なので田舎の自宅に戻り次第リモートでhttpdの再インストールを行います。
以下の関連アプリが一緒に削除されるようなのですが、単純に再インストールで良いのでしょうか?
mod_sslがちょっと気になるんですが・・・・・。リモートログイン出来ないとえらいことになるので。
mod_ssl-2.0.49-1.1
squirrelmail-1.4.3-0.f1.1
php-4.3.6-1.3
webalizer-2.01_10-14
namazu-cgi-2.0.12-6
なんかメールの送受信不調も、この問題が絡んでる気がしてきました。現在構築中のバックアップ機(というよりこちらをメインにしようと思いますが)が問題無く動いたらそうなのかも・・・・・。
Libsafeには泣かされましたが、自分のスキルアップと、このページを参照される皆様の人柱になったとしたら光栄です。
Webmaster様とだめだめ様に感謝!!
> 大変長いスレッドお付き合い戴きありがとうございました。
このスレッドえらいことになってきましたね。
> 以下の関連アプリが一緒に削除されるようなのですが、単純に再インストールで良いのでしょうか?
> mod_sslがちょっと気になるんですが・・・・・。リモートログイン出来ないとえらいことになるので。
> mod_ssl-2.0.49-1.1
> squirrelmail-1.4.3-0.f1.1
> php-4.3.6-1.3
> webalizer-2.01_10-14
> namazu-cgi-2.0.12-6
httpsやwebmail、namazuを既に導入されているんですね。これらは当然、webサーバに依存しているサービスですので、httpdを削除すれば一緒に削除されてしまいます。
その後、webサーバ(httpd)、webサーバ+SSL(https)、webmail、namazuを再構築し直しになってしまいますね。
ただ、現在構築中のバックアップ機へ移行されるんでしたら、今回の事象の原因解明を目的としてwebサーバだけ再インストールしてcgiの動作確認だけとるというのはいかがでしょうか?
人柱要請のようで申し訳ないのですが。
> なんかメールの送受信不調も、この問題が絡んでる気がしてきました。現在構築中のバックアップ機(というよりこちらをメインにしようと思いますが)が問題無く動いたらそうなのかも・・・・・。
かも知れないですね。
> Libsafeには泣かされましたが、自分のスキルアップと、このページを参照される皆様の人柱になったとしたら光栄です。
Libsafeの件では当サイトのせいで混乱を与えてしまい、申し訳ありませんでした。
今回の件が解明できましたら、CGIトラブルシューティングなるページをまとめていこうと思っていますので、もし、webサーバの再インストールをされましたら、ぜひ、ご一報くだされば幸いです。
おじんです。お世話になります。(これ以上スレッドのばすとどうなるか興味ありますね??)
新規サーバの構築で、「Webサーバーを公開する」まで進みました。ちょっと飛ばしてvsFTPdも運用上インストールしたところまでです。
(そういえば前もそうだったと思い出しましたが、vsFTPdはaptで導入してからrpmインストールで良いんですよね?)
今回はすんなり進み(httpdインストールも)、ユーザーディレクトリを作りパーミションの設定をし、問題のtest.cgiをユーザーディレクトリに、rootでviで作成。chownで所有者変更した段階で実行すると、Internal Server errorが発現しました。
suexec.logは
[2004-06-19 08:09:46]: file has no execute permission: (/home/xxxxx/public_html/test.cgi)
だったので、前のご指摘に従いchmod 700を実行したところ無事表示しました。実行権限がいるんですね。755でも動作確認しました。
今日中にその他インストールとミラーリングをして、問題が出た現行機のhttpd再インストールをしようと思います。
本当にありがとうございました。
> 新規サーバの構築で、「Webサーバーを公開する」まで進みました。ちょっと飛ばしてvsFTPdも運用上インストールしたところまでです。
> (そういえば前もそうだったと思い出しましたが、vsFTPdはaptで導入してからrpmインストールで良いんですよね?)
aptでのインストールだけでいいです。FTPサーバー構築(vsFTPd)http://fedorasrv.com/vsftpd.shtmlも修正しておきました。
aptというのは、rpmの依存関係を自動的に判断して必要なパッケージも含めてダウンロードしてインストールまで行ってくれるものですので、rpmコマンドでのインストールは不要です。
http://www.kent-web.com/support/faq/faq3-2.html#6
もし自作サーバだったら、
そのCGIが/var/www/cgi-bin/以下でも動くかどうか。
これが原因かわからないけど、
Permission denied って出てるんだから権限の問題っしょ。
おじんです。アドバイスありがとうございます。
/var/www/cgi-bin/以下に置いて、そのCGIを実行するにはリンクを貼るんでしょうか?そういえばそのディレクトリ以下には手順書のNamazu.cgiのみが置いてあり、それは上手く動作しております。
これからperlは勉強しますので、あまりにぺーぺーな質問お許し下さい。