• ベストアンサー

mixiのperl

最近SNSサイトのmixi(ミクシィ)を利用し始めて気になったのですが、 URLを見ると各ページの拡張子が.plになっています。 これってperlですよね? しかし、25万人もの会員を有するサイトにおいて、 サーバーサイドでの処理が可能なものなのでしょうか? 通常perl/CGIはサーバー側の負荷が高いのだと認識していたのですが、 こういう考え方自体が間違っているんでしょうか? ちなみ私は、ActionScript、Lingo、それにPHPやMySQLなんかも使って 仕事をしているのですが、何せ見よう見真似でやらせてもらってるだけなので、 実際のところWebアプリなど初心者同然です。 小さな自社には技術者も他に居ないので、 技術に明るい方からのご回答がいただければ幸いです。 よろしくお願いいたします。

  • Perl
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • betagamma
  • ベストアンサー率34% (195/558)
回答No.1

まず、CGIとperlは全く別物だということを認識する必要があります。 WEBサーバーは、事実上ほとんどapacheなので、以下apacheと書いてしまいますね。 CGIというのは、apacheから、外部プログラムを起動して、そのプログラムの実行結果を、見ている人のブラウザにかえす仕組みです。 たまたま、perlが多く使われていただけで、実行する外部プログラムがperlである必要性はどこにもありません。誰もそんなことはしませんが、設定さえすれば、perlの代わりにXFree86を使って、 「ユーザーがページにアクセスするとサーバー側でXが立ち上がる」 サイトを作ることもできますし、perlの代わりにrebootを使えば、 「ユーザーがページにアクセスするとサーバーが再起動する」 サイトを作ることもできます。 ここまで極端ではありませんが、C言語で書かれたCGIプログラムというのも多く存在します。 PHPが早いというのは、apacheに組み込まれているからです。PHPは、mod_phpというapacheの組み込みモジュールとして実現しています。これは、早い話が、外部プログラムを立ち上げるのではなく、 「サーバーソフトであるapacheそのものが、PHPスクリプトを解釈するようにする」 ことです。Windowsでいえば、PHPスクリプトの解釈モジュールがDLLになっていると言えばわかりやすいでしょう。 で、CGIがperlに限らないのと同様、perlもCGIに限りません。現在では、perlについても、mod_perlというapacheの組み込みモジュールが存在して、PHPと同じ仕組みで、perlスクリプトを解釈できるようになっています。仕組みがPHPと同じなので、速度も負荷もPHPと大差ありません。 おそらく、ご指摘のサイトはこの方法を使っているのだと思います。

taichistereo
質問者

お礼

ご返事遅くなり申し訳ありませんでした。 わかりやすいご回答ありがとうございます。 「組み込みモジュール」と書いてくださっているのを見て、なるほど、と思いました。どうやらかなり初歩的な質問だったようで、お恥ずかしいかぎりです。 CGI=Perlではないということを知ってはいたのですが、入門書を斜め読みしていただけではきちんと理解できていなかったようです。mod_phpにしても、そう言えば設定ファイルにそんな修正を加えていたような気が・・・!と、ようやく頭の中がつながりました。 具体的なご説明、ありがとうございました。ご回答を足がかりに、精進していきたいと思います!

その他の回答 (1)

回答No.2

まさに、あなたの疑問を検証しているサイトです。(perl vs PHP) そもそも、スクリプト言語perlは、c言語などコンパイラを用いて実行ファイルを作る物に比べ 絶対的に遅いです。PHPも同様に遅いです。 純粋に、データの圧縮やソートなどのロジックを書き比べると決定的な差がでます。 しかしながら、WEBサイトにおけるサーバ側のロジックの処理負荷というのは、 決して高い物ばかりではなく、高いとしても高度なロジックによってではなく、 データベース処理など他の要素によるものが多いかと思います。 (ここ「教えて!goo」なんて、DBに引っ張られているんだろうと想像します) 故に、perl(およびPHP)などのスクリプト言語で書いたら、遅くて話にならないという ことにはなりません。

参考URL:
http://homepage3.nifty.com/hippo2000/perltips/phpperl.htm
taichistereo
質問者

お礼

さらにご返事遅くなってしまいました。申し訳ありません。 リンクのご提供、ありがとうございます。 リンク先にある「mod_phpの相手は当然mod_perl」という記述、なるほどです。 実は以前、MySQLとPHPで作るブログ、なんて本を買ってまして、それで「perlじゃ遅くて出来ないからPHPなんだな」と早合点していたようです。 単純に<速度比較>という見地から考えていれば、このようにより詳細な情報を見つけることが出来たのですね。自分の疑問そのものがぼんやりとしていたのだということがよくわかりました。 私は「OKweb」から質問を記入したのですが、確かにPHPだから速いというわけでもなさそうですね。 ブラウジング障害が大変大きいようですね。。。 #1の方のご回答とあわせ、これでようやく概観がつかめました。安心してスクリプティングを続けていけそうです。サーバーのしくみについても、もう一度確認するようにします。 明瞭なご回答、ありがとうございました。

関連するQ&A

  • Perl or PHP?

    最近はやり?の自宅サーバーを立てようかと思っているのですが、PerlかPHPどちらを使うか悩んでいます。 主に、掲示板やカウンター、できたらWikiのようなことをしたいと考えているのですが、PerlとPHPどちらを使ってプログラミングするべきでしょうか? それとも、どちらも使ったほうが、より効率的なプログラミングができるのでしょうか? PerlやPHPは個人的にですが、かじったことがあります。また、WebサーバーはApache、DBはMySQLでOSはFedoraCoreを予定しています。 Perlでも、PHPでも、CGIプログラムって作れますよね? どちらが利便性がよいのか、サーバーに負荷がかからないのか等、開発者側に立った意見をお待ちしています。

    • ベストアンサー
    • CGI
  • Mod_Perlについて

    こんばんは。Perlのほうとどちらに書き込むべきか迷ったのですが、こちらに・・・。 PerlでのCGIでシステム屋さんにあるシステムを作ってもらい運営を開始しました。 サーバー会社は海外のものを使っているのですが、メールやチャットでカスタマー・サービスとやり取りしているとMod_PerlとFast_CGIを使えば負荷が軽くなるから、必要なら無料でインストールしてあげるよ、と言ってくれています。 私はプログラマーでなく、あくまでビジネス側の人間なので、Mod_Perl、Fast_CGIと言われてもピンと来ないので調べて見ると Mod_Perlは CGIの負荷を減らし、スピードを速めるとありました。 また、その他の色々な説明を以下のページで 読みました。 http://d.hatena.ne.jp/keyword/mod_perl が、私にはあまりピンと来ません。 色々書かれていますが、サーバー会社が言うように、 Mod_Perlをサーバーにインストールして今用いているPerlで書かれたCGIプログラムをそのままMod_Perlに乗せたらいいだけなのでしょうか? それともシステム屋さんにもう一度連絡を取り、プログラム自体をいじらないといけない事もあるのでしょうか? またFast_CGIって何でしょうか? (こちらは検索してもいまひとつ分かりやすい説明が見つかりませんでした) 答えられる範囲だけでよいので回答頂けますと助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • perl pl CGI

    perlの勉強がしたくてmixiのperl構造を知りたいと思いplのサイトを保存しようと思ったのですが、 このインターネットサイトを開くことができませんでした。要求されたサイトが使用できないか、見つけることができません。後でやり直してください。」 とでて保存することができません。 どうしたら保存できるのでしょうか?

  • Perlでのデータベース利用

    とても一般的な質問になりますが、 そこそこ規模の大きな(目標会員数一万人)会員サイトをPerlで構築しようとしています。 問題はデータベースへのアクセス負荷なんですが、 ひとつのテーブルのレコード数が100万行ぐらいになると思います。 一般的なホスティングサーバを利用してデータベースはMySQLです。 「大規模なデータベースシステムはJAVAサーブレットが向いている」と言う話をよく聞きますが、上述のような規模のサイトは(Perl or PHP)+MySQLでは難しいのでしょうか? 出来たらPerlで通してみたいと考えております。 ご意見、ご指導よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • サーバーサイドでPerlをそのまま使う方法ってありますか?

    <?perl   Perlコード ?> で、サーバーサイドで、Perlをそのまま使う方法ってありますか? PHPは、Perlに似ているようで違うので、どうせなら、そっくりPerlと同じ文法でDBIを使ってMySQLを操ったほうが、良いのですが…。(^^;) また、もし、そういう方法があるなら、それは世界ではどのくらい使われていますか? もし、普及していないなら、何が原因なのですか?

    • ベストアンサー
    • Perl
  • Fedora Core 2でPerlを動作させるには?

    自宅サーバーとしてFedora Core2を使っていますが、ADSL接続ですので。IP更新はminiupdateというスクリプト(.pl)を使用します。 ダウンロードしたminiupdate.plを”var/www/cgi-bin/”に解凍して、ブラウザーに”127.0.0.1/cgi-bin/miniupdate.pl”を入れると”Internal Server Error”と返って来る。 PerlのRPMはインストール済みで、httd.confの設定の問題でしょうか?どこがおかしいでしょうか? よろしくお願いします。 ー以上ー

  • WWW::MixiをつかってOpenPNEにログインする方法

    WWW::Mixiモジュールを使ってOpenPNEのSNSにログインする方法で悩んでいます。 参考 WWW::Mixi http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FWWW%3A%3AMixi OpenPNE http://docs.openpne.jp/ 対象がmixiの場合、ログイン前後のcgiファイルを指定するのですが(例:login.plとhome.pl)、OpenPNEの場合、 http://xxx/?m=pc&a=page_o_login http://xxx/?m=pc&a=page_h_home になっているためか、うまくログイン後の情報を取得できません。 まったく最初の段でつまづいているので先に進めず困っています。 解決方法か参考になる情報・サイトをお教えいただければと思います。 宜しくお願いいたします。

    • ベストアンサー
    • Perl
  • Perlのフレームワーク"Catalyst"について。

    Perlのフレームワークで、Catalystがありますが、 実際運用する場合もserver.plを実行して http://XXXX:3000/というURLで公開しなければならないのでしょうか? テスト用のhttpdとありますが、実際にhttp://XXXX/で公開するには どうしたらよいのでしょうか? Apache+Linux(Debian GNU/Linux)+MySQL+Perl5.8です。

    • ベストアンサー
    • Perl
  • PerlとPHPのサイトについて

    MySQLと連動したサイトをつくる場合、登録、閲覧、検索時PerlとPHPではどちらが負荷がかからないで早く表示するのでしょうか。

    • ベストアンサー
    • Perl
  • Perlを端末で使う

    以前よりCGIでPerlをよく利用していたのですが、現在サーバーの保守や管理で簡単なシェルを使う機会が多くなりました。しかし、シェルスクリプトになるとちょっと難しくて勉強する時間がなくできるだけPerlでいろいろな処理をしたと思っています。  質問は、PerlをGnome端末などから操作するにはどうしたらよいのでしょうか?いくつかの処理をPerlで書いて $ perl -w /home/tinte/test_perl.pl みたいな感じで処理はできますが、シェルのように絶対パスではなくコマンドをそのまま記述することは可能でしょうか?例えば上記の処理を $ perl -w test_perl.pl のような感じで短縮できればよいなと思っています。どこかにリンクを貼ったり設定を変えればできそうな気がしていますが、もしわかる方がいましたらおしえてください。 またPerlのコマンドをそのまま端末で使うことはできないのでしょうか? 周囲にわかる人間が全くいないのでいろいろヒントをもらえるとうれしいです。よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう