BBS過去ログ

<<トップページへ
■目次


No.385 投稿時間:2004年06月22日(Tue) 12:30 投稿者名:tappe URL:
タイトル:CGIの文字コードについて

はじめまして。
いつも参考にさせていただいております。

こちらのサイトを参考に、FedoraCORE2にて
Apacheを立ち上げました。

KENTWEBからカウンタとして、dayx.zip、
掲示板として、aska.zipをダウンロードし、
それぞれを解凍して設置したのですが、
ShiftJISのままでは動作しなかったので、
すべてのファイルをUTF-8に変換し、改行コードもCR+LFからLFに変更したところ、dayxカウンタは動作しました。

しかし、掲示板の方は、「500 Internal ServerError」が表示されます。

前置が長くなりましたが、質問というのは、

1.FedoraCORE2でCGIを設置する場合は、シフトJISで動作させることは可能なのか?

という点です。
この掲示板の文字コードを参照させてもらった所、シフトJISで動作しているようなので、ご質問させていただきました。

私としては、既存の資源を生かすということで、CGIをシフトJISで
動作させたいと思っております。
(UTF-8で掲示板を作成すると既存のCGIに手を加えなければならないようなので・・・・)

なお、/etc/sysconfig/i18nは、UTF-8のまま、
/etc/httpd/conf/httpd.confの
AddDefaultCharset UTF-8も有効のままです。

以上、何かご存知でしたらよろしくお願いします。


No.387 投稿時間:2004年06月22日(Tue) 21:36 投稿者名:webmaster URL:
タイトル:Re: CGIの文字コードについて

/etc/httpd/conf/httpd.confのAddDefaultCharset UTF-8の行は先頭に#を入れて無効化しましたでしょうか?


No.390 投稿時間:2004年06月22日(Tue) 23:03 投稿者名:tappe URL:
タイトル:Re^2: CGIの文字コードについて

> /etc/httpd/conf/httpd.confのAddDefaultCharset UTF-8の行は先頭に#を入れて無効化しましたでしょうか?

管理人様。返信ありがとうございます。
AddDefaultCharset UTF-8を無効化し、

# service httpd restart

を実行し
httpdを再起動してみましたが、
やはり、シフトJISのままではCGIは動作しないようです。

他に考えられる設定はありますでしょうか・・・?
以上、質問ばかりで恐縮ですがお願い致します。


No.392 投稿時間:2004年06月23日(Wed) 02:09 投稿者名:サポーター URL:
タイトル:Re^3: CGIの文字コードについて

> シフトJISのままではCGIは動作しないようです。

Shift_JIS またはEUC-JPで作動するようです。
Unicode(UTF-8)はまだ、コード変換プログラムJcode.plが対応していないのではないでしょうか。

> 他に考えられる設定はありますでしょうか・・・?

文字コードをShift_JISまたはEUC-JPにする。(デフォルトではShiht_JIS)
改行コードをLEにする。

# which perl を実行し、そのパスにaska.cgiの先頭行のパスを合わせる。
http://fedorasrv.com/apache.shtml の記述に従って、
# ln -s /usr/bin/perl /usr/local/bin/perl を行っていない場合は、
aska.cgiの先頭行を#!/usr/bin/perlに変更する必要があります。

askaディレクトリ内で #mkdir locl を実行し、lockファイルを作成する。
パーミッションを
aska.cgi [705]
askalog.cgi [606]
jcode.pl [604]
lock [707]
にする。

/aska は ExecCGIが有効か?

などです。


No.393 投稿時間:2004年06月23日(Wed) 06:29 投稿者名:おじjん URL:
タイトル:Re^4: CGIの文字コードについて

初心者(特にCGIは)おじんです。

先日Webmaster様の絶大なるサポートを戴きCGIが動作するようになりました。
その時S-JISのCGI(YYBBS)をサーバに持ってくる時トラブッたのは自動転送設定の見落としでした。
めんどくさいけど一つ一つASCIIを確認しながら持ってけば動きました。同じ系統のBBSなので如何でしょうか?

初心者の横槍恐縮ですがご参考まで。


No.397 投稿時間:2004年06月23日(Wed) 09:20 投稿者名:webmaster URL:
タイトル:Re^3: CGIの文字コードについて

> AddDefaultCharset UTF-8を無効化し、
>
> # service httpd restart
>
> を実行し
> httpdを再起動してみましたが、
> やはり、シフトJISのままではCGIは動作しないようです。
そんなことはないですよ。シフトJISでもEUCでもUTF-8でも動作します。
>
> 他に考えられる設定はありますでしょうか・・・?
> 以上、質問ばかりで恐縮ですがお願い致します。
CGIがinternal server errorで動作しない原因は非常に多岐にわたるため、ひとつずつ確認していく必要がありますので、まず、以下をお試しください。
・Webサーバー構築(Apache)http://fedorasrv.com/apache.shtml、■Webサーバー確認
の(2)CGI確認にあるような簡単なCGIをWindows上(シフトJIS)で作成し、Webサーバのドキュメントルート(デフォルトのままであれば/var/www/html)へアスキーモード(バイナリモードでアップロードすると動作しません。FFFTP等、だいたいのFTPクライアントは拡張子がcgiの場合は自動でアスキモードでアップロードするようになってますが)でアップロード後、http://サーバIPアドレス/test.cgiにアクセスしてCGIが動作するか確認してみてください。その際、CGIのパーミッションは755でダメなら700にしてみてください。

あと、CGIエラー時の/var/log/httpd/error_logを貼り付けて頂けますでしょうか?


No.399 投稿時間:2004年06月23日(Wed) 10:24 投稿者名:tappe URL:
タイトル:Re^4: CGIの文字コードについて

皆様レスありがとうございます。

> ・Webサーバー構築(Apache)http://fedorasrv.com/apache.shtml、■Webサーバー確認
> の(2)CGI確認にあるような簡単なCGIをWindows上(シフトJIS)で作成し、Webサーバのドキュメントルート(デフォルトのままであれば/var/www/html)へアスキーモード(バイナリモードでアップロードすると動作しません。FFFTP等、だいたいのFTPクライアントは拡張子がcgiの場合は自動でアスキモードでアップロードするようになってますが)でアップロード後、http://サーバIPアドレス/test.cgiにアクセスしてCGIが動作するか確認してみてください。その際、CGIのパーミッションは755でダメなら700にしてみてください。

例を参考にtest.cgi(UTF-8)、test2.cgi(ShiftJIS)という名前のファイルを作成し、/var/www/cgi-binに、
(私はcgi-bin配下でcgiを動作させるようにしております)
配置し実行してみた所、test.cgiでは正常に実行され、test2.cgiでは
InternalServerErrorが出ます。
パーミッションは755、700両方試してみました。

> あと、CGIエラー時の/var/log/httpd/error_logを貼り付けて頂けますでしょうか?

test2.cgi実行時の/var/log/httpd/error_logの内容は以下の通りです。

[Wed Jun 23 10:12:18 2004] [error] [client 192.168.0.102] mod_mime_magic: can't read `/var/www/cgi-bin/test2.cgi'
[Wed Jun 23 10:12:18 2004] [error] [client 192.168.0.102] (13)Permission denied: exec of '/var/www/cgi-bin/test2.cgi' failed
[Wed Jun 23 10:12:18 2004] [error] [client 192.168.0.102] Premature end of script headers: test2.cgi

念のためhttpd.conf内の/var/www/htmlと/var/www/cgi-binのディレクティブの内容も以下に示しておきます。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
  Order allow,deny
Allow from all
</Directory>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

以上です。


No.401 投稿時間:2004年06月23日(Wed) 10:57 投稿者名:tappe URL:
タイトル:Re^5: CGIの文字コードについて

test2.cgiですが、改行コードをLFに変換してみたところ、
動作しました。

無知で申し訳ないのですが、改行コードをLFに変換してUPするのが
標準的な使い方なのでしょうか・・・?


No.402 投稿時間:2004年06月23日(Wed) 11:12 投稿者名:webmaster URL:
タイトル:Re^5: CGIの文字コードについて

当方でもtappe様と同じことをやってみました。
@システムの文字コードはUTF-8
[root@fedora1 root]# cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"
AApacheのデフォルト文字コードはオフ
[root@fedora1 root]# grep "AddDefaultCharset" /etc/httpd/conf/httpd.conf
#AddDefaultCharset UTF-8
BCGIの設置ディレクトリは/var/www/cgi-bin
[root@fedora1 root]# ll /var/www/cgi-bin/

-rwxr-xr-x 1 root root 230 羃3 10:48 test.cgi
-rwxr-xr-x 1 root root 224 羃3 10:47 test2.cgi
Cperlのパス
[root@fedora1 root]# which perl
/usr/local/bin/perl
Dtest.cgiはUTF-8で作成
[root@fedora1 root]# kcc -c /var/www/cgi-bin/test.cgi
/var/www/cgi-bin/test.cgi: data
Etest2.cgiはシフトJISで作成
[root@fedora1 root]# kcc -c /var/www/cgi-bin/test2.cgi
/var/www/cgi-bin/test2.cgi: shift-JIS
Ftest.cgi、test2.cgiはともに以下の内容
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>テスト</title>\n";
print "</head>\n";
print "<body>\n";
print "CGIテスト\n";
print "</body>\n";
print "</html>\n";
Gパーミッションは両方とも755

上記環境でhttp://サーバIPアドレス/cgi-bin/test.cgiはUTF-8で、http://サーバIPアドレス/cgi-bin/test2.cgiはシフトJISで日本語が文字化けせずに表示されました。

やってることは合ってますでしょうか?


No.403 投稿時間:2004年06月23日(Wed) 11:46 投稿者名:tappe URL:
タイトル:Re^6: CGIの文字コードについて

> やってることは合ってますでしょうか?

はい。当方の環境と同じです。
前レスにても述べましたが、test2.cgiも改行コードをLFに変換した
ところ動作致しました。
同様の方法で、aska.cgiの改行コードをLFに変換したところShiftJISのままでも動作しました。
改行コードの変換はサポーターさんがおっしゃられていた事ですね。
ヒントありがとうございました。

ですが、これは標準的な使い方なのでしょうか・・・?
プロバイダのCGIの場合、改行コードを変換せずに、FFFTPでUPすれば
動作していたのですが・・・。

FFFTPがUTF-8に対応していないことも関係しているのでしょうか・・?
無変換でUPする分には問題ないと思っているのですが・・・。


No.416 投稿時間:2004年06月24日(Thu) 00:07 投稿者名:webmaster URL:
タイトル:Re^7: CGIの文字コードについて

> > やってることは合ってますでしょうか?
>
> はい。当方の環境と同じです。
> 前レスにても述べましたが、test2.cgiも改行コードをLFに変換した
> ところ動作致しました。
うーん、なんででしょう?当方の環境では既存のCGIになにも手をいれずにwinからサーバへ転送(ちなみにFTPではなく、winscpです)しただけで動作したんですけど・・・。
> ですが、これは標準的な使い方なのでしょうか・・・?
> プロバイダのCGIの場合、改行コードを変換せずに、FFFTPでUPすれば
> 動作していたのですが・・・。
だと思います。なにもせずに動作するのが標準だと思いますけど。
改行コードの変換なんてサーバ側のスキルがあるひとじゃないとわかりませんもんね。
>
> FFFTPがUTF-8に対応していないことも関係しているのでしょうか・・?
> 無変換でUPする分には問題ないと思っているのですが・・・。
私も問題ないと思います。なんででしょう?

すみません、結局、わからない、わからないだけのレスになってしまいました。
当方も将来を考え、サーバ側をUTF-8化し、クライアント資産はそのままという条件でのサーバ構築を行っていきたいと思います。


No.421 投稿時間:2004年06月24日(Thu) 01:03 投稿者名:tappe URL:
タイトル:Re^8: CGIの文字コードについて

> すみません、結局、わからない、わからないだけのレスになってしまいました。
> 当方も将来を考え、サーバ側をUTF-8化し、クライアント資産はそのままという条件でのサーバ構築を行っていきたいと思います。

いえいえ、当初の目的であった、ShiftJISでCGIを動かすという事は達成できたので十分です。
ありがとうございました。

改行コードに関しては引き続き調査して、もしわかれば報告したいと思います。



▲このページのトップへ戻る

Copyright© 2004-2005 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)