投稿日:2005年03月17日 作成鷹の巣

No.18567 RedHatLinux9でperlは使えるけれども、jperl(日本語対応perl)が使えません。



RedHatLinux9でperlは使えるけれども、jperl(日本語対応perl)が使えません。

No.18567 投稿時間:2005年03月17日(Thu) 22:09 投稿者名:すばる URL:

OS:RedHatLinux9
perlは使えるけれども、jperl(日本語対応perl)は使えません。
Linux7.3及びプロバイダーでは正常に動作します。
パスは#!/usr/bin/perlとか#!/usr/bin/jperlですが、(名前は関係ない)
コマンドでperl xxxxと入力すると両者まったく同様に正常に表示されさすが
WebサーバーだとApache2.0系:error500でapache_1.3.33.tar.gz:internal
server errorになります。(Linux9の場合)
usr/bin/perlはLinux7.3とかjperlでは800kバイト有りますがLinux9では
数十バイトで本来のバイナリプログラムは、そこには無いようです。
どうしてしてシェルコマンドでは同様に正常に表示されヘッダーも問題ないように
思われるのにエラーになるのでしょうか。
OSでしょうかHTTPDでしょうか、教えてください。


#!/usr/bin/perl -- or #!/usr/bin/jperl -- で動作しませんか?

No.18568 投稿時間:2005年03月17日(Thu) 22:45 投稿者名:ほげ URL:

> usr/bin/perlはLinux7.3とかjperlでは800kバイト有りますがLinux9では
> 数十バイトで本来のバイナリプログラムは、そこには無いようです。

シンボルリックリンクが張られているかと思います。

> どうしてしてシェルコマンドでは同様に正常に表示されヘッダーも問題ないように
> 思われるのにエラーになるのでしょうか。

#!/usr/bin/perl -- or #!/usr/bin/jperl -- で動作しませんか?


動作しません。

No.18585 投稿時間:2005年03月18日(Fri) 18:38 投稿者名:すばる URL:

> > usr/bin/perlはLinux7.3とかjperlでは800kバイト有りますがLinux9では
> > 数十バイトで本来のバイナリプログラムは、そこには無いようです。
>
> シンボルリックリンクが張られているかと思います。
>
> > どうしてしてシェルコマンドでは同様に正常に表示されヘッダーも問題ないように
> > 思われるのにエラーになるのでしょうか。
>
> #!/usr/bin/perl -- or #!/usr/bin/jperl -- で動作しませんか?
動作しません。
/usr/bin/perlはLinux7.3ではそこにPerl本体(800Kバイト位)がありましたが
Linux9では12.3kです、本体では有りません。(/etc/rc.d/init.d/
httpdも、そこにhttpdの本体が無い様に...)
jperlはシンボリックリンクでなくプログラム本体です。(Linux7.3の/usr/bin/perlも
プログラ本体です。( Linux9はOSの構造が少し違うようです)
perlもjperlもパスは/usr/local/bin/perl or jperlとする事が出来ますが、
結果は同じです。
問題は、コマンドでperl xxx.cgi(#!/usr/bin/perl or jperl)
とした場合、結果は両者正常に同様に表示されるのにWebサーバーだとエラーになるかと
いう事です。OSでは問題なくても、apacheは何が問題なのか(シンボリックリンクとの
関係も含め)良く分かりません。


httpd.confでOptions ExecCGIとAddHandler cgi-script .cgiなどの設定は?

No.18586 投稿時間:2005年03月18日(Fri) 18:47 投稿者名:ほげ URL:

設定されていると思いますが、httpd.conf の設定で
Options ExecCGI および AddHandler cgi-script .cgi などは
されていますよね?


コマンドだと動作して、httpdだとerror500になるのか?

No.18587 投稿時間:2005年03月18日(Fri) 19:09 投稿者名:すばる URL:

> 設定されていると思いますが、httpd.conf の設定で
> Options ExecCGI および AddHandler cgi-script .cgi などは
> されていますよね?
もちろんです。
それと、jperlは通常OSには存在しません。
それはperl5.004_04.tar.gzにjperl5_004_04-971016_pat.gzをパッチと
して当て、以前私が作った物です。
それをバイナリープログラム(jperl)として保存して使っている訳ですから。
どうしてコマンドperl xxx.cgiだと動作して、httpdだとerror500になるか
その辺の所が分かりません。
プロバイダーのサーバーでも、Linux7.3でも正常に動作するのに何故でしょうか。
コマンドとhttpdとではどう違うのでしょうか、ほかにhttpd.confのそれらしき
設定はあったでしょうか。


ログには(エラーログ)なにか入っていますか?

No.18591 投稿時間:2005年03月18日(Fri) 22:08 投稿者名:ふぁらだ URL:

> > 設定されていると思いますが、httpd.conf の設定で
> > Options ExecCGI および AddHandler cgi-script .cgi などは
> > されていますよね?
> もちろんです。
> それと、jperlは通常OSには存在しません。
> それはperl5.004_04.tar.gzにjperl5_004_04-971016_pat.gzをパッチと
> して当て、以前私が作った物です。
> それをバイナリープログラム(jperl)として保存して使っている訳ですから。
> どうしてコマンドperl xxx.cgiだと動作して、httpdだとerror500になるか
> その辺の所が分かりません。

./xxx.cgi で動作しますか?
ログには(エラーログ)なにか入っていますか


libdb.so.3が無いのでしょうか?

No.18595 投稿時間:2005年03月19日(Sat) 11:56 投稿者名:すばる URL:

> > > 設定されていると思いますが、httpd.conf の設定で
> > > Options ExecCGI および AddHandler cgi-script .cgi などは
> > > されていますよね?
> > もちろんです。
> > それと、jperlは通常OSには存在しません。
> > それはperl5.004_04.tar.gzにjperl5_004_04-971016_pat.gzをパッチと
> > して当て、以前私が作った物です。
> > それをバイナリープログラム(jperl)として保存して使っている訳ですから。
> > どうしてコマンドperl xxx.cgiだと動作して、httpdだとerror500になるか
> > その辺の所が分かりません。
>
> ./xxx.cgi で動作しますか?
> ログには(エラーログ)なにか入っていますか

エラーログですが、「/usr/local/bin/jperl: error while loading shared libraries: libdb.so.3: cannot open shared object file: No such file or directory,」となっています。
libdb.so.3が無いのでしょうか、どうしたら良いか教えて下さい。


compat-db に入ってるんじゃないの。

No.18596 投稿時間:2005年03月19日(Sat) 12:22 投稿者名:通行人 URL:

> エラーログですが、「/usr/local/bin/jperl: error while loading shared libraries: libdb.so.3: cannot open shared object file: No such file or directory,」となっています。
> libdb.so.3が無いのでしょうか、どうしたら良いか教えて下さい。

パッチは自作できるのに、自分で解決できないのですか?

なければ入れればいい、ただそれだけ。
compat-db に入ってるんじゃないの。


問題は何処から、それを入れるかです。

No.18597 投稿時間:2005年03月19日(Sat) 12:45 投稿者名:すばる URL:

> > エラーログですが、「/usr/local/bin/jperl: error while loading shared libraries: libdb.so.3: cannot open shared object file: No such file or directory,」となっています。
> > libdb.so.3が無いのでしょうか、どうしたら良いか教えて下さい。
>
> パッチは自作できるのに、自分で解決できないのですか?
>
> なければ入れればいい、ただそれだけ。
> compat-db に入ってるんじゃないの。
そのファイルがシステムに無いからエラーになります。
問題は何処から、それを入れるかです。


suexecならユーザグループパーミッションを正しく設定しないとCGIの実行はうまくいかない。

No.18593 投稿時間:2005年03月19日(Sat) 07:32 投稿者名:stranger URL:

> > 設定されていると思いますが、httpd.conf の設定で
> > Options ExecCGI および AddHandler cgi-script .cgi などは
> > されていますよね?
> もちろんです。
> それと、jperlは通常OSには存在しません。
> それはperl5.004_04.tar.gzにjperl5_004_04-971016_pat.gzをパッチと
> して当て、以前私が作った物です。
> それをバイナリープログラム(jperl)として保存して使っている訳ですから。
> どうしてコマンドperl xxx.cgiだと動作して、httpdだとerror500になるか
> その辺の所が分かりません。
> プロバイダーのサーバーでも、Linux7.3でも正常に動作するのに何故でしょうか。
> コマンドとhttpdとではどう違うのでしょうか、ほかにhttpd.confのそれらしき
> 設定はあったでしょうか。

redhat9のapache2はsuexecがかかっているとおもう
ユーザグループパーミッションを正しく設定しないとCGIの実行はうまくいかない


apache_1.3.33.tar.gzで試しましたが、internal server errorになります。

No.18598 投稿時間:2005年03月19日(Sat) 12:51 投稿者名:すばる URL:

> > > 設定されていると思いますが、httpd.conf の設定で
> > > Options ExecCGI および AddHandler cgi-script .cgi などは
> > > されていますよね?
> > もちろんです。
> > それと、jperlは通常OSには存在しません。
> > それはperl5.004_04.tar.gzにjperl5_004_04-971016_pat.gzをパッチと
> > して当て、以前私が作った物です。
> > それをバイナリープログラム(jperl)として保存して使っている訳ですから。
> > どうしてコマンドperl xxx.cgiだと動作して、httpdだとerror500になるか
> > その辺の所が分かりません。
> > プロバイダーのサーバーでも、Linux7.3でも正常に動作するのに何故でしょうか。
> > コマンドとhttpdとではどう違うのでしょうか、ほかにhttpd.confのそれらしき
> > 設定はあったでしょうか。
>
> redhat9のapache2はsuexecがかかっているとおもう
> ユーザグループパーミッションを正しく設定しないとCGIの実行はうまくいかない
apache_1.3.33.tar.gzで試しましたが、internal server errorになります。


suexecは、SuexecUserGroupで設定しないとデフォルトでは設定されない。

No.18600 投稿時間:2005年03月19日(Sat) 19:54 投稿者名:通行人 URL:

> redhat9のapache2はsuexecがかかっているとおもう
> ユーザグループパーミッションを正しく設定しないとCGIの実行はうまくいかない

suexecは、SuexecUserGroup で設定しないとデフォルトでは設定されない。


redhat9のapache2のsuexecはデフォルトでは動きません。

No.18601 投稿時間:2005年03月19日(Sat) 23:06 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

> > redhat9のapache2はsuexecがかかっているとおもう
> > ユーザグループパーミッションを正しく設定しないとCGIの実行はうまくいかない
>
> suexecは、SuexecUserGroup で設定しないとデフォルトでは設定されない。

redhat9のapache2のsuexecはデフォルトでは動きません。
httpd.confに下記を自分で追加してApacheを停止・起動しなければ動作しないので、この線はなしと思う。

LoadModule suexec_module modules/mod_suexec.so

それより、redhat9ならperl5.8.0になっているはずなのでjperlでできることはできるはずで、5.0.0のjperlを無理に動かそうとすることに無理があるのでは?
自分で書いたものなら修正するほうがよっぽど早いし、正攻法と思いますが・・・?

http://www.linux.co.jp/bbs/bbs1/bbs.cgi?num=8507&ope=sel&id=


libdb.so.3をcompat-db(disc2)からインストールしてOKになりました。

No.18602 投稿時間:2005年03月19日(Sat) 23:54 投稿者名:すばる URL:

> > > redhat9のapache2はsuexecがかかっているとおもう
> > > ユーザグループパーミッションを正しく設定しないとCGIの実行はうまくいかない
> >
> > suexecは、SuexecUserGroup で設定しないとデフォルトでは設定されない。
>
> redhat9のapache2のsuexecはデフォルトでは動きません。
> httpd.confに下記を自分で追加してApacheを停止・起動しなければ動作しないので、この線はなしと思う。
>
> LoadModule suexec_module modules/mod_suexec.so
>
> それより、redhat9ならperl5.8.0になっているはずなのでjperlでできることはできるはずで、5.0.0のjperlを無理に動かそうとすることに無理があるのでは?
> 自分で書いたものなら修正するほうがよっぽど早いし、正攻法と思いますが・・・?
>
> http://www.linux.co.jp/bbs/bbs1/bbs.cgi?num=8507&ope=sel&id=
最初ログを見たらPremature end of script headers:としか出てなくて、
(見落としたのかな?)それ以後見なかったので何処が悪いか解らなく
なりました。
再度エラーログを見て解決の糸口がつかめました。
libdb.so.3をcompat-db(disc2)からインストールしてOKになりました。
今後はjperlを使わない別の方法を考えています。(jperlは時代遅れ)
皆さんアドバイス、有難うございます。


目次掲示板過去ログ目次▲頁先頭