トップページ⇒php
1001コメント300KB

CGIだけど、なんか質問ある? Part 9

■ このスレッドは過去ログ倉庫に格納されています
0001ななし ◆E6qQ.htN7o 03/01/03 02:56ID:H5ub4PWW
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
  ↓
【Perl】初心者コーナー Part18
http://pc.2ch.net/test/read.cgi/php/1037797479/l50

過去ログ・関連スレッドは >>2-5 あたりに
0558nobodyさん03/03/06 21:55ID:???
>>557
何故グループにアクセス権あげるの?
0559nobodyさん03/03/06 22:15ID:???
>>557
今時suEXEC知らん奴なんているのか?
0560nobodyさん03/03/07 20:30ID:???
滅多に使わないとか、良く使う、とかって何か不思議な争いだなぁ
目的にあったパーミッションを考えたら当然だと思うんだが。
0561nobodyさん03/03/07 20:56ID:???
>>560
000。恥ずかしい過去。
0562nobodyさん03/03/08 03:43ID:???
>>557
グループにアクセス権与えるのは愚の骨頂だよ。
CGIの中に管理用パスワードとか書いてあれば抜き放題。
0563nobodyさん03/03/08 11:36ID:IsIbiOhH
まじっすか!Σ(゜�凵K)
CGIの中に管理用パスワード置いてました
0564nobodyさん03/03/08 11:39ID:???
>>562
その他に与えるのは大丈夫なの?
0565nobodyさん03/03/08 12:10ID:???
>>564
与えないとnobodyさんが読み書きできません。

まぁ、suExecの場合は与えちゃダメですが。
0566nobodyさん03/03/08 13:13ID:???
1ユーザ=1グループか全ユーザ=1グループなど、
サーバ側がグループをどう扱っているかによるけど、
与えないほうが無難だな。
0567nobodyさん03/03/08 13:14ID:???
UNIX板の人にぜひ読ませたいスレだな(w

不必要なアクセス権を設定しちゃいけません。
間借りしてるなら規定されているはずだし、
自分で立ててるならちゃんと管理してねってことで。
0568nobodyさん03/03/08 13:23ID:???
だいたい共有鯖を使ってる時点で(以下略
0569nobodyさん03/03/08 13:28ID:???
>>568
telnetが思いっきり口を開けてる自宅鯖も十分怖いけどな。
0570nobodyさん03/03/08 13:44ID:???
(;´○`)
0571nobodyさん03/03/08 15:45ID:???
スクリプトが、ファイルを作らなければいけない場合の
安全なディレクトリのパーミッションについて。

1.suEXEC ON
 0700

2.OFF
 0777 =>常に危険
 0707 =>一般ユーザーが隔離グループに入ってる場合は有効。

でも基本的にsuEXECじゃない共有鯖は安全じゃない
0572nobodyさん03/03/08 18:17ID:???
どんな設定にしようと管理者には丸見えなんだよな(;´○`)
0573nobodyさん03/03/08 19:40ID:???
>>572
何か問題あるか?
0574nobodyさん03/03/08 22:00ID:???
>>572
あーんな物とかこーんな物とか?(;´Д`)ハァハァ
0575nobodyさん03/03/08 23:09ID:???
>>573
会社のメールアカウントを私的利用したらばれちゃう。
0576nobodyさん03/03/09 19:30ID:zYZaV2tZ
とあるCGIにファイルをダウンロードするフォームがあるんだけど、
ダウンロードボタンを押すとそのままブラウザにそのファイルが表
示されてしまう。TXTであれHTMLであれCGIであれそうだ。
これって何がいけないのかな?原因わかる?
ほかのサーバーにおんなじCGIを置いてボタンを押すとちゃんとDL
ダイアログが出てDLできるんだが・・・。
0577nobodyさん03/03/09 19:31ID:???
>>576
>とあるCGIにファイルをダウンロードするフォームがあるんだけど、

この辞典で訳がわからなくなった。
0578nobodyさん03/03/09 19:34ID:048q+sGA
http://bbs.1oku.com/bbs/bbs.phtml?id=rantyan
★その目で確認すべし!!★超おすすめ★
057957603/03/09 19:37ID:zYZaV2tZ
>>577
ダウンローダーとかファイル管理CGIとか、そんなようなやつ。
------
| DL |
------
↑ボタンを押すと選んだファイルがDLされるっていう動作になるはずが
ならないんだよ・・・。
0580nobodyさん03/03/09 19:51ID:???
>>579
Content-Typeがおかしいのでは?
0581nobodyさん03/03/09 20:36ID:???
>>579
>>580だと思う。application/octet-streamになっている?
0582nobodyさん03/03/09 20:37ID:???
さすが通信分野だよな。バイトストリームじゃなくてオクテットストリームか。
0583nobodyさん03/03/09 20:38ID:???
>>582
MIMEを通信と言い切ってしまうにはちょっと抵抗あるけどな。
0584nobodyさん03/03/09 20:41ID:???
>>583
MIMEって通信以外でも使われているの?
0585nobodyさん03/03/09 20:43ID:???
>>584
どっちかというとワイヤプロトコルだからちょっと違和感って感じ。
0586nobodyさん03/03/09 20:46ID:???
>>585
言いたいことが分かったような分からないような・・
まあちょっと違和感と言っているから全く筋違いというわけでもなさそうだな。
0587nobodyさん03/03/10 00:12ID:p/bgqDIW
cgiでmp3のID3タグの内容を取得できないでしょうか?
0588nobodyさん03/03/10 00:21ID:???
>>587
ファイルをバイナリとして分解してID3部分を取り出せばできますが
0589nobodyさん03/03/10 00:35ID:???
ID3v2のCOM使えば瞬間芸の予感
059058703/03/10 00:47ID:???
すんなせん、もうちょっとヒント下さい。
0591nobodyさん03/03/10 01:17ID:???
>>590
>>589をミロ
059258703/03/10 01:32ID:???
すんません、ID3v2のCOMがわからないです・・・

バイナリで取得するって事ではない、んですよね?
0593nobodyさん03/03/10 01:37ID:???
>>592
検索の仕方も知らないのか?プログラム書くのはこれっきりやめろ。
http://216.239.39.101/search?hl=ja&ie=UTF-8&oe=UTF-8&q=ID3v2+%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
普通のライブラリもPerlモジュールもどっちも1分で見つかったぞ。
059458703/03/10 01:51ID:???
すいませんCOMの意味を知らなかったんで・・・、

検索行ってきます。

ヒントありがとう。
0595nobodyさん03/03/10 15:33ID:waQu7wS1
はじめてCGIでカウンタを付けようとしている初心者です。
相談にのっていただけませんか。

借りているサーバーがパーミッションの設定・変更はできないと書いてあり、
FTPソフトでいじることができませんでした。
CGIの実行やCGIによるファイルの読み書きにつきましては、
パーミッションの設定・変更なしに利用できると書いてあったので
実際CGIをアップしてみたのですがエラーになって表示されませんでした。

CGIが間違っているせいなのか、パーミッション変更不可のため動かないのか、悩んでいます。
0596nobodyさん03/03/10 16:05ID:???
age
0597nobodyさん03/03/10 16:24ID:y6h+x0ia
>>595
説明不足でよくわかりません。
どこのサーバーとか、
そのサーバーの設定等がWEB上で見れれば何とかなるんだが・・・。
(たまに説明をWEBでしてるところあるよね)

とマジレスしてみるテスト。
059859503/03/10 16:24ID:???
いろいろ検索してみたのですが、パーミッションの変更ができないということは
そもそもCGIの設置は無理なのかもしれません。
念のため、使っているサーバーのCGIについてのページを貼ります。
やっぱ無理でしょうか?
↓
ttp://www.onamae.com/help/18-5.shtml
0599nobodyさん03/03/10 16:28ID:???
>>598
/*
プレミアサーバーの仕様は?
仕様は以下の通りとなっております。
・Microsoft Windows2000 Server
・Microsoft Internet Infomation Server(IIS)5.0
・Microsoft Exchange2000
なお、Perlはバージョン5.6.1を使用しております。
*/

よって、UNIX特有のパーミッションという概念はありません。
0600nobodyさん03/03/10 16:30ID:???
>>599
Winじゃん。
ローカルで動作確認できるんじゃないの?
060159503/03/10 16:33ID:???
>>599 ありがとうございます。

パーミッションという概念がない場合、
どんなCGIも自動で機能するのでしょうか?
それとも、それ用のCGIを選択して使用するべきなのでしょうか?
先ほど試みたのはKENTWEBのeカウンタというものです。
(いちばん簡単そうに見えたので)
ttp://www.kent-web.com/count/ecount.html?
0602nobodyさん03/03/10 16:34ID:M2RJhlYt
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
★その目で確認すべし!!★超おすすめ★
060359503/03/10 16:35ID:???
>>600
ローカルで動作確認ですか?
意味すらわからないレベルなので、ちょっと検索して調べてきます。
ほんとに知識不足で申し訳ありません。
0604nobodyさん03/03/10 16:44ID:???
>>603
先に >>598 と >>601 みたいな情報を出すようにしてくれ。

で、暇だったので試してみたけど、中身まったくいじらなくても置くだけで
http://(略)/ecount.cgi?check は動作したよ。
こちらは Apache + ActivePerl で IIS じゃないけど、まあ変わらんでしょ。
060559503/03/10 17:05ID:???
>>604
今、中身をいじらずにアップしてみましたが
ログファイルのパスが不正です:./ecount.dat
ログファイルのパーミッションが不正です
と表示されてしまいました。やっぱり駄目みたいです。ああ。。。

ローカルで動かすにはソフトをダウンロードしなくてはならないようなので
また後で来させていただきます。
どうもありがとうございました。
0606576=57903/03/10 17:13ID:AgGCKLX9
>>580
>>581
回答ありがと。
チェックしてみたらこうなってました。
print qq(Content-type: application/octet-stream\nContent-Disposition:attachment;filename=$1\n\n);
これでいいんですよね?
というか、他のサーバーではできたから問題はここじゃないような気がするんですけど・・・
#octet-streamなんて初めて見た・・・(汗)
0607nobodyさん03/03/10 17:17ID:y6h+x0ia
>>605
ならば、ttp://www.onamae.com/help/18-5.shtml
の「Perlでパスの指定がうまくゆかない。」の項目をよく見よ。
このサーバーの厄介なところじゃないかな。
060857603/03/10 17:33ID:AgGCKLX9
>>595
>CGIの実行やCGIによるファイルの読み書きにつきましては、
>パーミッションの設定・変更なしに利用できる
これって、パーミッションが「何でも動く」んじゃなくて、
パーミッションをサーバーが自動で変えてくれる、って意味じゃない?
・・・私が前いたサーバーはそうだった。
だからパーミッションの問題じゃないと思う。
で、同じ問題にぶつかった事があるんだ。詳しい人に聞いたらこういう事だったよ。
:アップしたCGIが動かないのはCGIスクリプトに問題があるのではないか。
:サーバーで使ってはいけないってなってる命令語が含まれていないか。
:含まれていればUPしても使えない(こともあるかも)。
#ここでいう問題ってのは、「スクリプトがまちがっとる!」ということ
#じゃないぞ。そのサーバーで使うのに問題があるってこと。

たとえばセキュリティの問題で、カウンタに使われることのあるSSIは禁止
だとかさ。ファイルを作る命令語はダメだとかさ。
あなたのサーバーって、そういう制限を設けてるサーバーじゃないの?
もっとも・・・「制限がある」ってなっても、初心者だったらスクリプト見て
「これは制限されてるのがある・ない」ってわかんないと思うから、
ヘタの鉄砲数うちゃ当たるってなもんで、入れてみて動くものを使うようにす
ればよいと思う。
#んで、ローカルでのテストは意味ないんじゃないかな。こういう時って。
060957603/03/10 17:38ID:???
>>607
ほうほう・・・そういうところもあるんだね・・・。
絶対パスか。
0610nobodyさん03/03/10 17:53ID:???
>>605
それは「動作してる」よ。意図通りに動いてはいないけれどね。
次からは、1.サーバエラーが発生したのか、2.意図通りに動かないのか、
を明記するようにして欲しい。

>>609
>#んで、ローカルでのテストは意味ないんじゃないかな。こういう時って。
問題の切り分けがきちんとできており、最初から、問題は
サーバの仕様にあると限定できるのであれば、おっしゃる通りです。
でも今回の場合は(ry

061159503/03/10 18:02ID:???
>>607
うわーーーーー!出来た!出来たよぅ!
もう涙が出そうにうれしい。。。
ほんとうにありがとうございました。感謝!
0612nobodyさん03/03/10 18:05ID:???
>>606
そのCGIにtelnetでHEADリクエストしてもちゃんとoctet-stream返って来るかい?
061359503/03/10 18:09ID:???
>>608-610
どうもありがとうございました。
608さんのおっしゃるとおり、
サーバーはパーミッションを自動で変更してくれたようです。
それで607さんの絶対パスについてのところを参照にCGIのパスをいじったところ、
DATファイルが反応するようになり、
GIFファイルも直したら反応するようになり、
サーバー上でカウンタが動くようになりました。

610さん、申し訳ありません。
サーバーエラーなのか、意図どおりに動かないのかすら判断できなかったのです。

みなさん、ほんとうにありがとうございました。
061460603/03/10 18:27ID:AgGCKLX9
612>>
telnetできないっす。
こりゃCGIの問題じゃなくって、サーバーの仕様とかかな?
・・・そういう仕様って、アリ?
061560803/03/10 18:30ID:AgGCKLX9
>>595
治りましたか。よかったよかった(^^)

サーバーエラー>紛らわしいよね(笑)
061660603/03/10 18:32ID:AgGCKLX9
>>614
言葉がたりんかった。
Telnetできないのは、Telnet開放されてないから(^^;
0617nobodyさん03/03/10 18:33ID:???
>>616
Port:80 に telnet せよ、という意味じゃないの?
0618nobodyさん03/03/10 18:49ID:???
Win2000のtelnetなら23以外にもアクセスできるよな。
0619nobodyさん?03/03/10 20:23ID:???
>>485はなんで?
0620nobodyさん03/03/10 20:53ID:???
管理サイドの人間しかわからんのでわ?
0621nobodyさん03/03/10 20:58ID:???
>>619
規制されないリモートホストとポートをCGI串が吐いているからだろう
062260703/03/10 21:38ID:y6h+x0ia
>>595
おめでとう。(カメレススマソ)
0623nobodyさん?03/03/10 21:59ID:???
>>621
リモホはwww15.big.or.jpだし、80番ポートは空いてるよ
062461203/03/10 22:26ID:???
>>616
>>617です。

telnet www.hogehigehage.com 80

HEAD /unko.cgi HTTP/1.x
0625nobodyさん03/03/10 23:22ID:F/vwue5x
yukiwikiを実験で設置してみたのですが、いまいちだったので
FTPから丸ごと削除しようとしました。そうしたら、/diff/, /info/, /wiki/
というディレクトリ及びその中身のファイルが、Permission Deniedと言われ、
削除できずに残りました。どのようにすれば削除できるのでしょう?
0626nobodyさん?03/03/10 23:25ID:???
FTPクライアントが何かわからんけど
ディレクトリに書き込み権限がないんじゃないの?
062762503/03/11 06:17ID:???
自己解決しました。nobody権限のファイルがcgiによって作成されていたみたいです。
cgiによって作られたファイルはcgiからでないと削除できないと分かり、
ファイルをunlinkして回るcgiを作って走らせたところ、無事消えました。
0628nobodyさん03/03/11 09:12ID:???
>>627
otherに権限持たせれば出来ると思われ。
0629nobodyさん03/03/11 16:29ID:mYfv1t4y
本当に初歩的な質問だと思うんですが、
どれだけ調べてもヒントすら見つからないので、
全く見当違いなことを考えてるんだと思い質問させていただきます。

ディレクトリを作るのはmkdirですよね。
ならファイルを生成するのはどうしたらいいんでしょうか?

たとえばtestというディレクトリを作り、
その中にtest.datというファイルを作る
なんてことはどうすればできるんでしょうか?
0630nobodyさん03/03/11 16:35ID:???
取り敢えず下記でできる。
open(FILE,">>ふぁいる名");
print(FILE "でーた\n");
close(FILE);
0631nobodyさん03/03/11 16:39ID:???
>>629
Perlですか?
言語(or環境or状況)を書くように
0632nobodyさん03/03/11 17:41ID:04f/wl45
CGI配布サイトなんかに行くと、「軽い掲示板」「重い掲示板」っていう
表現がありますよね。処理が軽いとか。
この「軽い」「重い」って・・・?

設定項目(=変数)が多いと重い?
サブルーチンが多いと重い?
それとも行数が多いと重い?
コメントが含まれていると重い?

どんなんでしょ?(ちなみにPerlCGIで。)
0633nobodyさん03/03/11 17:47ID:???
>>632
レスポンスタイムが遅い。ターンアラウンドタイムが遅い。
0634nobodyさん03/03/11 18:06ID:???
>>632
>設定項目(=変数)が多いと重い?
>サブルーチンが多いと重い?
>それとも行数が多いと重い?
>コメントが含まれていると重い?

すべてNO
厳密に測定すれば差は出るだろうけど
0635nobodyさん03/03/11 19:32ID:???
>>632
プリントアウトした時の紙の重さじゃないの?
0636nobodyさん03/03/11 19:51ID:???
>>635
それを言うなら、仕様書の
0637nobodyさん03/03/11 19:56ID:???
作者の愛情の重みだよ。
0638nobodyさん03/03/11 20:03ID:???
無限ループは愛情があふれているんだね・・・・・・
0639nobodyさん03/03/11 20:08ID:???
>>638
藁
0640nobodyさん03/03/12 06:35ID:???
>>638
溺愛しすぎも良くないよね。
0641nobodyさん03/03/12 10:34ID:???
なごんだ
0642nobodyさん03/03/12 19:04ID:???
色んな所でKENT氏のlogを配列に入れてforeach()するのは悪いとあるんだけど、
どうしたら良いの?
while使っても大差ないと思うんだけど。
0643nobodyさん03/03/12 19:14ID:???
>>642
そう言うレベルの話じゃないと思う。
0644nobodyさん03/03/12 22:04ID:???
>>642
違いがわかるようになってから出直してください。
0645nobodyさん03/03/12 23:22ID:???
何で悪いかは理解してるのか?
もう春なんだなあ・・・
0646nobodyさん03/03/12 23:47ID:???
>>643-645
質問スレに馬鹿なレス返すな。
もう春なんだなぁ・・・
0647nobodyさん03/03/13 00:09ID:???
>>646
手本で納得できるレス返してみれ
0648nobodyさん03/03/13 00:15ID:???
cgiから別のcgiを起動して値を取得して処理する
ということをやりたいのですが、可能ですか?
0649nobodyさん03/03/13 00:16ID:???
>648
Perlならrequireで検索。
0650nobodyさん03/03/13 00:55ID:???
質問です
config.plに$test = test;を入れといて、
print.cgiにprint "$test";って入れて表示させる方法ってどうやるんですか?
よろしくお願いします(plの1;やcgiのヘッダーはできているとする)
0651nobodyさん03/03/13 01:08ID:???
>>650
普通にrequireすればいいんでないの?
0652nobodyさん03/03/13 06:33ID:???
>>651
なんかだめです
065364803/03/13 08:31ID:9FkJfCBr
>>649
ごめんなさい
もう少し詳しく書きます
別のcgiは別のサーバにあります。
で、POSTでそのcgiに値を渡し
そのcgiが(ブラウザに)出力する結果を元に
処理を行う、それをいくつか繰り返す

以上の事をcgiで行うことは可能でしょうか

0654nobodyさん03/03/13 08:59ID:???
>>653
可能
ただし、これ以上の質問は使っている言語専用スレで

> cgiで行うことは可能でしょうか
cgi の部分を、PerlなりPHPなり自分が使っている言語に
置き換えて読み返してみれば、すぐ解ることでしょが
0655nobodyさん03/03/13 09:09ID:Lbm4LPV1
見て
http://homepage3.nifty.com/digikei/
0656bloom03/03/13 09:18ID:+b8Vztun
http://www.agemasukudasai.com/bloom/
065763203/03/13 15:56ID:rD3WUou4
>>633
ちょっと質問悪かったかも。

重い・軽い・っていうのは、どういう作りによっておきるのか?
と、聞きたかったのです。
それで、設定項目が・・・なんてことを言ったのですが。

>>634
うーん、そっか。
んじゃあとりあえず、40KBとかあるスクリプトが必ずしも
重いとは限らないわけね。
■ このスレッドは過去ログ倉庫に格納されています