トップページ⇒php
995コメント334KB

CGIとかPerlとか超初心者なんだけど、

■ このスレッドは過去ログ倉庫に格納されています
0001埼玉板"管理人"2001/07/20(金) 17:36ID:???
てか何もわかってない厨房なんだけど、掲示板を自鯖へ移転する必要性
が非常に高くなってきたのです。
http://green.jbbs.net/travel/511/saitama.html

ス連でも相談にのってもらってるんだけど、ここでも相談したい。
とりあえずFTPって何?どういうふうに使うの?
008280=81=8202/02/14 05:52ID:cr2d+HxX
ちなみにあやしいとおもうのは$streetにはスペース区切りで複数の単語が入っているんですが、これは関係ないでしょうか?
本当に困ってます。どうか宜しくお願いします。
0083名無しさん@お腹いっぱい。02/02/14 07:02ID:k99DNybk
big.or.jpの掲示板なのですが、
PERLで書いたFTP経由のプログラムはサーバ上許されているでしょうか、
サブルーチンで、掲示板にFTPプロトコルを使ったPERLを加えることは
許されていましたっけ・・・宜しくお願い致します。


0084名無しさん@お腹いっぱい。02/02/14 07:14ID:???
>>83
意味不明すぎ。
0085名無しさん@お腹いっぱい。02/02/14 07:38ID:k99DNybk
http://www24.big.or.jp

ここにあるサイトの掲示板で、
サブルーチン処理をして掲示板に昨日を加えたいのですが、
訪問者に対してFTPでアクセスする様なスクリプトを機能させる事は
出来るでしょうか? という事です・・PERLでかかれているスクリプトです。
エラーになってしまうので・・・。

レス感謝します。
0086名無しさん@お腹いっぱい。02/02/14 08:02ID:???
>>82
それで500は出ないと思う。
Content-Type吐かずに終了しちゃってるとか、ブラケットが
抜けちゃってるとかじゃないの?
ソース上げれば詳しい人が答えてくれるかも。
>>85
良く分かんないけど、bigさんに聞いた方が良いと思いますよ。
008780=81=8202/02/14 12:42ID:MlVt+YMF
>>86
ありがとうございます。
Content-Typeもブラケットも確認したんですが、これといって異常は見つかりませんでした。
削除処理に入ってからの500エラーなので変数なんかの単純な間違いなのかも知れません。
もう一度よく見直してみてソースをUPしてみます。
008880=81=8202/02/15 01:53ID:???
いろいろ調べては見たのですがやはり間違いが見つかりません。
一応、フォームデコードをUPしてみますが、なにか間違いなんかありますでしょうか?
是非宜しくお願いします。

sub form_decord {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }

#--フォームデータを分解--#
@parameters = split(/&/,$buffer);
foreach $element (@parameters) {
($parameter, $value) = split(/=/, $element);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

# SJISコード変換
&jcode'convert(*value,'sjis');

#--正規表現--#
$value =~ s/,/./g;
008980=81=8202/02/15 01:53ID:???
#--削除データがあれば配列に追加--#
if ($parameter eq 'delno') { push(@DEL, $value); }

#--希望商品データを変数に追加(スペース区切り)--#
if (index($parameter, 'hoop') == 0) { $hoop .= "$value ";}

$in{$parameter} = $value;
}

$page = $in{'page'};
#--ローカルタイムを取得--#
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
$year += 1900;
$month = $mon+1;
@dayname = ('日','月','火','水','木','金','土');
$date = "$year年$month月$mday日(@dayname[$wday])";
$time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
$date00 = sprintf( "%d%02d%02d", $year, $month, $mday); # yyyymmddの形での日期
}

0090賛成の反対の反対ナノだ!02/02/15 04:19ID:???
> 80=81=82
> &jcode'convert(*value,'sjis');
>
require 'jcode.pl'; していないんジャ?
0091賛成の反対の反対ナノだ!02/02/15 05:29ID:???
> 80=81=82

&lock1 および &lock2 のコードを見てみたいナー。
0092名無しさん@お腹いっぱい。02/02/15 05:41ID:???
>>89
KCatch.pm とか使おうよ。
my宣言使ってなさそうだから no strict; を宣言してくださいな。
009380=81=8202/02/15 11:04ID:???
>>90>>91>>92
ありがとうございます!

>>90一応最初に
## 文字コード変換ライブラリまでのパス
require './jcode.pl';
と設定しています。

>>92
KCatch.pmって文法をチェックするやつですか?
今こういう奴をDLして使ってるんですが、もしより便利だったらDLしなおそうと思います。
でも違いがよくわからないので、アドバイスいただけたら助かります。
http://www.kent-web.com/support/faq/faq1.html#9


009480=81=8202/02/15 11:09ID:???
>>91
>&lock1 および &lock2
これのことでしょうか?

sub menberlock1 {
if ($lockkey) {
local($lock_flag) = 0;
foreach (1 .. 5) {
if (-e $menberlockfile) { sleep(1); }
else {
open(LOCK, ">$menberlockfile");
close(LOCK);
$lock_flag = 1;
last;
}
}
if ($lock_flag == 0) {
&error("アクセスが集中しています");
}
}
}

sub menberlock2 { if (-e $menberlockfile) { unlink $menberlockfile; } }


>>90>>91>>92 さん。
本当に感謝です。涙
009580=81=8202/02/15 11:14ID:???
>>94
あ・・・ひょっとしてここですか???
ちょっとやってみます・・・
0096賛成の反対の反対ナノだ!02/02/15 11:18ID:???
$menberlockfile を作成したり削除したりすることでファイルロックが
行なわれていますので、当然、このCGIが置いてあるディレクトリのパーミッションは
(恐らくnobodyさんに対して)書きこみ権限が必要で、CGIを実行するので
読みこみと実行権限も必要になります。
したがって、777 であるはずですが、OKですか?
009780=81=8202/02/15 11:24ID:???
>>90>>91>>92
できました!!
原因はおっしゃるとおり、lockの部分でした。
単純にlock名をまちがえてました・・・
ありがとうございました!!
本当にうれしいです!!
009880=81=8202/02/15 11:30ID:???
賛成の反対の反対ナノだ! さん。
ありがとうございます!!
menberlock1とすべきところをlock1としていたみたいです。
やはりいつものミスが出てしまいました。
本当にありがとうございました。深く感謝します。
0099正直100ほしぃ02/06/03 23:51ID:???
`=、;;;;;,,,,,,,:::,,,,,;;;;;,,,,`""''';;;;,, 、__
             ,.-'゙''''',='";;;;;;;;",-,,;;;;;;゙;;;;;;;;;l;;;;`,、
           /   `ー-...,;;;;;;;;;;;;,-‐/;;;;;;';;;;;;;;;;;;
          ./             `''''''""i;;;;;;;;ヽ
          l  ■  |,,,____/           |;;;;
          |     |.:::::/  ■        ノ;;;;   
          ヽ、   |:::/          _,/;;;'゛
            `ヽ、_ |/        _,,.,;‐';;;;゛゛
              "'''=ー;‐---‐‐'';';"-''"゛
0100nobodyさん02/06/17 22:45ID:hfzhGpXs
少し教えて頂きたいのですが

$data に書き込まれたURL(バラバラ)を
表示する際に正規表現をつかって
決められたURLに置き換えようと挑戦しています

$data =~ s/abc/def/sg;

これで abcがdefに置き換わるとききやってみて
置き換え成功しましたが、

やろうとしている事が
URLで毎回違うのが書き込まれるため、
ワイルドカードみたいなものがいるとおもいました

<a href="http://****色んなURL****"> を 
<a href="http://www.yahoo.co.jp" target="_blank">

に置き換えるためには、どういった正規表現が必要なのでしょうか
教えて頂ければ幸いです。

ちょっと日本語の文法めちゃくちゃですね、、
0101nobody02/06/18 02:00ID:7dVxfF7a
ttp://www.din.or.jp/~ohzaki/perl.htm

ここは抑えておくべきダロ
0102nobodyさん02/06/18 15:20ID:qlpI+yB7
>>101
有り難う^^ そこみて可能になりました
$data =~ s/href="[-_.!~*'()a-zA-Z0-9;\/?:@&=+$,%#]+/href="www.yahoo***/sg;
これでいけました有り難うございました
0103nobodyさん02/06/18 17:15ID:???
ものすごく初心者質問で恐縮なんですが、ディレクトリの
パーミッションを777で使うとどう危険なんですか?

また、特定のディレクトリ内に新規ファイルを作成・更新していく
場合は777じゃなくてもできるのでしょうか。
0104nobody02/06/18 20:41ID:aBkTtCEX
>>103
聞くより自分で調べろヨ・・
ttp://www.google.co.jp/search?hl=ja&ie=utf8&oe=utf8&q=permission+777&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0105nobodyさん02/06/18 22:39ID:???
>>103 参考にしる!
http://pc.2ch.net/test/read.cgi/php/1019487717/31
0106nobodyさん02/06/18 22:52ID:???
>>103
まあ滅多に無いけど、共有サーバーで他のユーザーのディレクトリ
覗けるようなところだとファイル消しまくり読みまくりになる。
0107nobodyさん02/06/20 23:22ID:???
Internal Server Error (500)が出るんですけど何がおかしいのかが
全く分かりません。Parlのパス程度しか弄ってないし、
その他の設定も説明通りにやってるし。
何か分かりませんか?
0108nobodyさん02/06/20 23:53ID:???
何も分かりません
0109nobodyさん02/06/21 01:18ID:???
WebFoamって言う奴を設置したいのですが500って言うんですかね〜
出っ放しなんですよ。おかしい箇所はないと思うしパーミッションも正しいのですが・・・
0110nobody02/06/22 01:27ID:???
おかしいからこそエラーがでるのだ。
そのWebFormの初期設定でも見直しなさい
0111nobodyさん02/06/22 07:44ID:???
>>70

CGIかけるといってる時点で終わっている。
0112nobodyさん02/06/29 08:47ID:???
確かに(w
0113”管理”人02/08/11 07:39ID:???
>>107はもうちょっと基本的な部分をどうにかしたほうがいい
0114nobodyさん02/09/14 21:11ID:???
最近、とあるゲームスクリプトの低負荷化を目指して、
ソース全面的に見直しているのですが、わかんないところがあるので教えて下さい。

・ハッシュと配列の差
・変数名の長さ

前者は消費メモリ量を見てもあまり差が出てこないので(ActivePerl使用)、
実装は整数をキーとしたハッシュなんじゃないかなと思っているのですが、
抜けの多い、範囲のでかいデータ量の少ないテーブルをハッシュに読み込むところを
配列に読み込んでも良いのか決めかねてます。

後者ですがそのまんまです、短い方が良いのでしょうか。
現在変数名に15〜20文字くらい平気で使っているのですが、
短くすればそれなりの効果は出てきますか。
やっぱり誤差程度でしょうか。
0115nobodyさん02/09/14 23:28ID:???
>>114
データ量大→ポインタ(リファレンス)
不要な変数(特にグローバル)→削れ
変数名(名前空間)→そりゃ短い方がそれなりに…
ファイル読出し→適した方法で
後は、myとか関数レベルのものもあるけど

基本的に、一般配布されるようなモノは不要なコメント及び変数が多い
どうでもいいが、Perlでやってる以上、どうしようもないかと
0116nobodyさん02/09/15 10:19ID:???
#!/usr/bin/perl

perlのパスていううのはわかるんですが、


#! て何?
usr て何?
bin て何?
0117nobodyさん02/09/15 13:56ID:kYEyD4Vx
base64でエンコードされたshift-jis(?)文字列を、
eucに変換するコードがうまく働きません。

perldoc Jcodeの説明を参考にして、次のようなコードを
作りました
#$sjkeyは、base64に変換されたshift-jis(?)文字列
$jcode = Jcode->new($sjkey);
$jcode->mime_decode;
$euc = $jcode->euc;

これで、$eucには、eucに変換された文字列が入るはず
なのですが、実際には次のようなbase64のままの文字
しか$eucには入りません。

%uFF95%uFFFA%uFF91%uFF97

base64をデコードして、それをeucに変換する、のは
cgiの基本の基本のはずなのですが、分かりやすい書籍
などでも、分かりやすく説明したものが見つかりません。

ご指導いただけると、助かります。
0118nobodyさん02/09/15 14:20ID:???
>>117
その文字列は、 MIME-Header documented in RFC1522 に準拠しているのか?
そしてそれは本当にBase64でエンコードされているのか?

単純にBase64でエンコード、デコードするなら、MIME::Base64使うよ。
0119nobodyさん02/09/15 14:36ID:???
EUCに変換してやるから見せてみ
0120nobodyさん02/09/15 14:50ID:???
GyRCQWEkLzsvJDskZCEqGyhC
0121nobodyさん02/09/15 16:05ID:kYEyD4Vx
>>118
もう少し、状況を詳しくご説明いたします。

MacOSX用Internet Explorer5.2で「放送」という文字列を
JavaScriptの変数wordに代入して、escapeします。:
 (1) word = escape(word);
それをcookieに保存して:
 (2) document.cookie = word=' + word + '; path=/;';
そのcookieをperl/cgiから読ませます:
 (3) @key_value = split(/;s/, $ENV{'HTTP_COOKIE'});
(1,2,3)により、「方法」が
 (4) %uFF95%uFFFA%uFF91%uFF97
となってしまいます。この(4)をeucの「放送」に戻す方法
を探していました。

ある方から、(4)がUnicodeに対応しているようなので、
 (5) $s1 =~ s/%uFF([A-F0-9]{2})/pack 'H*', $1/eg;
を使え、というご指導を受けました。「放送」を含む多くの文字が、
(5)のコードで、正しく処理できました。しかし、「資本」という文字
は、(1,2,3)の処理をすると、(6)に変換され、
 (6) %uFF8E%uFF91%uFF96%7B
(5)の方法で(6)を変換すると、最後の%7Bが変換されずに、(7)のように
なります。
 (7) 資%7B

よろしくご指導をお願いいたします。





0122あぼーんNGNG
あぼーん
0123nobodyさん02/09/16 00:56ID:???
>>121
$s1 =~ s/%uFF([A-F0-9]{2})/pack 'H*', $1/eg;
$s1 =~ s/%([A-F0-9]{2})/pack 'C', hex $1/eg;
0124nobodyさん02/09/16 11:06ID:Ah3SHnxo
>123
ありがとうございます。教えていただいた方法で、
「放送」も「資本」も正しくperl/cgi+JavaScript
で処理できました。これでほとんどの文字が正しく
処理できるようになりました。

しかし、極少数の文字は、正しく処理できません。
例えば、「頒布」をMacOSX用IE5.2のJavascriptで
escapeしてcookieで保存したものを、perl5.8のコー
ドでそのcookieを読ませると、「頒布」という文字が:

(1) %uFF94%u0415z

となり、教えてただいた方法では、元の「頒布」に戻せ
ませんでした。

教えていただいた方法で、大多数の文字は処理できるので、
(1)は深刻な問題ではありませんが、もしも解決する方法が
あれば、ご指導下さい。

0125nobodyさん02/09/16 13:19ID:???
>>124
ttp://hp.vector.co.jp/authors/VA014700/simaguni.html
0126nobodyさん02/09/16 23:48ID:Ah3SHnxo
>125
ありがとうございます。探していた情報は、まさにご指摘頂いた
サイトにありました。

$sに代入された値を*sでサブルーチンに渡す、というこれまで
使ったことのないコードのためが、UTF-16のデコードには、
まだ成功しておりません。

&simaguni'decode8(*s,'euc');

perl -wの"-w"やuse strictも外さないと、この関数は
エラーが出るようです。
0127nobodyさん02/09/17 00:24ID:yAKo74Fa
「perl/cgiなのになせ早いの?」

apacheサーバーでperl/cgiを使っています。perl/cgi
だとユーザーからのリクエストを受けてから、
(1) perlが起動され、
(2) cgiスクリプトがコンパイルされ、
(3) コンパイルされたスクリプトが実行される
という作業が行われるために、mod_perlに比べて、「遅い」
という話を聞きます。

しかし、アクセス数の少ない私のサイトで自作したperl/cgiを
使っていると、「早い」と感じます。どう考えても、毎回、
(1,2,3)のプロセスが実行されているとは考えられません。

1度実行されたperl/cgiスクリプトはコンパイルされた状態で
キャッシュかなにかに保存されるために、2回目以降は、(1,2,3)
のプロセスの一部が省略されているのでしょうか?

それとも、perlという言語は、(1,2,3)の作業が異常に早いので
しょうか?(Javaでは、短いコードをコンパイルするのにも、
結構、待たされるので、なぜperlだと待ち時間がないのか不思議
です。)
0128nobodyさん02/09/17 01:20ID:???
>>127
マシンパワーにも左右されるだろうよ
キミのサーバーはまだ余裕がある上に、大したCGIでないから
速く感じるだけ。

0129nobodyさん02/09/17 14:26ID:???
×サーバー
○サーバ
0130nobodyさん02/09/17 20:46ID:AMfRDk5e
>>123
> $s1 =~ s/%uFF([A-F0-9]{2})/pack 'H*', $1/eg;
> $s1 =~ s/%([A-F0-9]{2})/pack 'C', hex $1/eg;
皆様のおかげで,%xx形式のデータを日本語文字に
変換することができ,本当に感謝しております。

実はもう1つお願いがございます。

「放送」という文字列を,%95%FA%91%97という
符号に変換する方法を教えていただけないでしょうか。
(Jcodeを使って自分でやろうとしたのですが,どうして
もうまくいきません。もし可能であれば,Jcodeを使わ
ない:
  $s1 =~ s/xxx/yyy/zzz;
とう方法を教えていただけると自分でも使えるので,
助かります。
0131nobodyさん02/09/17 20:52ID:???
=~ s/([^\da-zA-Z])/'%'.unpack("H2", $1)/eg;
0132 ◆AOHU.zVE 02/09/17 22:00ID:???
use URI::Escape;
$str = '放送';
$encode = uri_escape($str);
0133nobodyさん02/09/17 22:14ID:yAKo74Fa
>131
教えていただいた:
(1) $s =~ s/xxx/yyy/zz;
の方法で日本語のデコードもエンコードもうまく行きました。
本当にありがとうございました。
0134nobodyさん02/09/17 22:33ID:yAKo74Fa
>>132
> use URI::Escape;
上の文字列でGoogleを検索して、%xx形式が、"strings as
defined by RFC 2396"というように呼ばれているのが
分かりました。ありがとうございます。

Jcodeにあるencode(), decode()で処理できると誤解して
おりました。use URI::Escapeという別のモジュールを
使うわけですね。

日本語処理は、難しいですね?
0135nobodyさん02/09/17 22:59ID:???
何?それは聞いてるの?
0136nobodyさん02/09/17 23:05ID:???
聞いているんですかね?
0137 02/09/17 23:07ID:???
flockを使ってるんですけど
ファイル読み込みだけのときもlockしたほうが良いもんですかい?
open(IN,"hoge")
flock(IN, 2);
@hoge = <IN>;
close(IN);
0138nobodyさん02/09/18 00:44ID:???
読むだけならいいんじゃないの?
0139 ◆AOHU.zVE 02/09/18 01:59ID:???
読み込みは共有ロック
書き込みは排他ロック
した方がいいんでは?
0140nobodyさん02/09/18 04:55ID:83u7sqxb
>>134
いいえ、別に難しいとは思いませn
ただ、一人勝ちの英語に比べるとずいぶん損してるなぁとは思う
英語圏の奴らは内容にどっぶり浸かれるもんな

0141あぼーんNGNG
あぼーん
0142バカ02/09/19 14:36ID:5bUuU7rG
バカニュース板の看板を半角2D板のようにローテーションさせたいと思い、自力でここまでは作りました。

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head><title>test</title></head>\n";
print "<body>\n";
$n = int(rand(3));
print "<img src=./$n.jpg><BR>\n";
print "</body>\n";
print "</html>\n";

このまま2ch運営さんにリンクしてもらってもダメですよね。2.jpgとかを、そのまま送りだすにはどうしたらよいでしょうか?
「おまえの頭じゃcgiは無理だ」は無しの方向で。
0143nobodyさん02/09/19 14:46ID:???
#!/usr/local/bin/perl
$n = int(rand(3));
print <<"EOF"
Location: ./$n.jpg

EOF
exit;
__END__
0144バカ02/09/19 14:51ID:5bUuU7rG
サパーリ意味がわかりませんが、とにかくありがとう!!!
これから解読にとりかかって、わからなかったら股きます(*´∀`)ノバイチャ
0145_02/09/19 15:24ID:???
>>143
( ´,_ゝ`) プッ
0146_02/09/19 15:27ID:???
>>145
(゚д゚ )ハァ?
0147nobodyさん02/09/19 15:41ID:???
( ´,_ゝ`)
0148nobodyさん02/09/19 16:19ID:???
>>143
Locationは相対パスじゃ飛べないブラウザあるぞ。
Locationの前にcontent-type出さないとエラー出すブラウザもあるぞ。
0149nobodyさん02/09/19 16:28ID:???
(゚Д゚)シラネーヨ
0150nobodyさん02/09/19 16:41ID:???
Content-Typeは妙だね
0151nobodyさん02/09/19 20:44ID:???
>>143
そんな糞ソース晒すからレベル低いって言われるだろ!
0152nobodyさん02/09/19 20:56ID:???
お決まりの言っとくか。

>>151
じゃ、お前が書いてみろ。
0153 ◆AOHU.zVE 02/09/19 21:56ID:???
>>151
どゆのがレベル高いんでしょ?

>>142
画像は0.jpg〜2.jpgでいいのかな?
#!perl
print "content-type: image/jpeg\n\n";
open(IN,int(rand(3)).'.jpg');
print <IN>;
close(IN);
こんなんつくって、<img src="">で呼び出してあげるんじゃ
だめ???

0154nobodyさん02/09/19 22:00ID:???
>>153
( ´,_ゝ`) プッ またやっちまったな
0155nobodyさん02/09/19 22:34ID:???
>>153
糞過ぎ(;´Д`)
0156 ◆AOHU.zVE 02/09/19 22:36ID:???
>>154
143じゃないですよ?
なんか違う意味でまたなのかな???
0157nobodyさん02/09/19 22:49ID:???
>>145-147, >>149, >>151, >>154, >>155
これらの発言は、Perlを憎む某によって書き込まれています
気にしないで下さい

プログラム板のRubyスレとPerlスレ見れば分かる
例えば:http://pc3.2ch.net/test/read.cgi/tech/1028906179/206-
0158 ◆AOHU.zVE 02/09/19 23:53ID:???
( ´,_ゝ`) プッ
#!perl
use Inline Ruby;
main();
1;
__END__
__Ruby__
def main
print "content-type: image/jpeg\n\n"
file = open( "#{rand(3)}.jpg" )
print file.read()
file.close()
end
0159nobodyさん02/09/19 23:58ID:???
Dream ★あげ
0160nobodyさん02/09/20 00:03ID:???
>>158
それって、Windows環境で動くのか?
0161 ◆AOHU.zVE 02/09/20 00:11ID:???
>>160
Inlineはppmで逝けるけど
Inline::Rubyがないので、気合いれてコンパイルすれば...
http://search.cpan.org/author/NEILW/Inline-Ruby-0.02/lib/Inline/Ruby.pod
0162nobodyさん02/09/20 00:23ID:???
>>161
へー、ルビーってテキストモードとかないということかぁ。。。
0163nobodyさん02/09/20 00:45ID:???
>>143
>>153
>>158

どれが一番ましよ?
0164nobodyさん02/09/20 00:52ID:???
>>163
>>143はどう見ても動かないだろ。だってヒアドキュメントがまともに書けてないもん。
0165 ◆AOHU.zVE 02/09/20 01:45ID:???
だれがperl派でだれがRuby派かわからんのだけど...

>>161
Rubyよくわからんけど、Inline::RubyはXSモジュールなんで
コンパイルが必要。Rubyのソースも必要みたい。

>>163
>>143はエラー>>158はネタなので>>153で
0166nobodyさん02/09/20 02:46ID:???
>>165
それだっ!
0167nobodyさん02/09/20 08:30ID:OP5C6/Ba
$うんこ
(・∀・)イイ
0168nobodyさん02/09/20 16:22ID:ctJiuFnG
質問です。CGIを自分のパソコン上で動かしたいのですが、以下のような文章が出ます。
ちなみに、普通のhtmlページは表示されます。

ページを表示できません
検索中のページには問題があるため表示できません。

--------------------------------------------------------------------------------

次のことを試してください:

localhost ホーム ページを開いてから、表示する情報へのリンクを探してください。
[更新] ボタンをクリックするか、後でやり直してください。

[検索] ボタンをクリックして、インターネット上の情報を検索してください。
関連したサイトの一覧 も表示できます。




HTTP 500 - 内部サーバー エラー
Internet Explorer
0169nobodyさん02/09/20 16:31ID:eZg18XK5
>>168, >>169
それはあなたのCGIが正常に機能していないためと思われます。
Perlでしたら、そのプログラムをコマンドラインで動かしてみれば
よろしい。コマンドラインがやなら、copalというプログラムを
インストールしてやってみるとよい。エラーメッセージが出る
はずです。それに従ってCGI(Perl)ファイルを修正してやり直し
すればよい。
0170 ◆AOHU.zVE 02/09/20 16:38ID:???
>>168
500 Internal Server Error
なので、プログラムがおかしいのでは・・・
せめてデーモンなにつかってて言語は何つかててとか
書けない?

0171 ◆AOHU.zVE 02/09/20 16:54ID:???
2chビギナーなので、よくわからんけど
【Perl】初心者コーナースレ
http://pc.2ch.net/test/read.cgi/php/1032070299/l50
の方が正統なスレだと思うんだけど、移動しなくてよいの?

0172nobodyさん02/09/20 17:06ID:???
>>171
確かに、このスレのスレタイは、よくないな。
移動するか
0173nobodyさん02/09/20 17:20ID:???
>>171, >>172
いいじゃん、需要結構あるんだからさ。
1000まで行って考えようYo
0174 ◆AOHU.zVE 02/09/20 18:09ID:???
>>173
じゃぁこのままで^^;
0175nobodyさん02/10/01 07:57ID:ax7rnh/7
perlスクリプトはperlccというプログラムで実行ファイルになるようですけど、
CGIで使う場合、perlccで実行ファイルにしておいた方が速いのでしょうか。
man perlccすると実験的な段階なので動作を保証しないといったことが書か
れてありますので、正常動作が確認された場合に限ってお聞きします。
0176nobodyさん02/10/01 08:18ID:???
>>175
print "Hello World";
をperlccでstaticにコンパイルしたら800KB以上になったのでやめたことがあります。
0177nobodyさん02/10/01 09:03ID:???
>>176
うちょっ、と思てやってみたら、
526249バイトになりました。だいたい合ってますね。
メッセージ見ると要らないライブラリまでincludeしてるような感じ。
もちょっと大きいスクリプトでやってみると、増大比率は少なくは
なりました。うーん、perlcc使ってるって話し聞かないとこ見ると
速さもあまり期待できないのかな。perlccってperlインストしてな
い人にプログラム渡すのに使うぐらい?
0178nobodyさん02/10/01 09:18ID:ax7rnh/7
PerlってCを取り込めますけど、Cを取り込んでCGIを速くする
って話ありますか?ヒントとか参照HPでもいいですので、教え
てくらはい。
0179 ◆AOHU.zVE 02/10/01 13:44ID:???
製作者の技術力に依存してる気がしますけど...
Storableモジュールは高速化のために中核部分をCで書いていると
ドキュメントの中で謳っています。
0180nobodyさん02/10/01 15:59ID:???
>>179
情報ありがとうございます。
今度、StorableモジュールとやらをCPANからもらって、
調べてみます。見通しが付いたら、両方で書いて(Perl単独およびPerl+C)、
速度比較でもやって見ます。
0181 ◆AOHU.zVE 02/10/01 19:28ID:???
XSで書くかInline::Cで書くかって違いも..
0182nobodyさん02/10/02 07:15ID:???
>>181
調べてみます。ありがとう。
■ このスレッドは過去ログ倉庫に格納されています