• ベストアンサー

Perl or PHP?

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

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

  • ベストアンサー
回答No.5

こんにちわ。 自宅サーバーで5IP公開しているものです。 >主に、掲示板やカウンター、できたらWikiのようなことをしたいと考えているのですが、PerlとPHPどちらを使ってプログラミングするべきでしょうか? 私は、Wikiエンジン自体をperlで組んでます。確かに、素の状態でベンチマークをとるとPHPのが高速なのですが、工夫次第でperlのほうのが大きく高速化に貢献できます。 効率的なプログラミング・・の場合、どちらとも言えません。 あなたの知っている言語を・・あなたの得意な言語を素直に選ぶべきです。 個人的には、アップデートの率の高いPHPよりも、perlのほうをおすすめします。 >もし、掲示板ならPHP、カウンターならPerlなど、一般的な切り分けの方法や一般常識があるのなら教えていただけると幸いです。 切り分けないほうが、あなたのためになります。ライブラリが共有できます。 一部だけ高速化のためにCにしたいのなら別ですが・・・ あと、サーバーOSには、Linuxを使わないほうが賢明です。 あまりにも有名すぎて、セキュリティーホールが速く発見され、それが速く悪用されます。もちろん、その対処も速いですが・・・ FreeBSD、NetBSD、可能であればOpenBSDをおすすめします。 #下手すると、管理体制がきちっとなっていないのであれば、Linuxを使うんだったら、Windows鯖にして、Windows Updateしまくったほうが、今、まだ安全です・・・もちろん、Fedora4ですと、アップデート機構がかなりしっかりしていますが、それでも無知な人にとっては危険な部分があります。 ---- その他、#2さんへのツッコミになりますが・・ >>最近はやり?の自宅サーバーを立てようかと思っているのですが、PerlかPHPどちらを使うか悩んでいます。 >素人が(言語選択の段階で迷っているレベルだと) >自宅サーバを外部に公開することを反対します。 >周りに迷惑をかける可能性大です。 >踏み台にされたりウィルスをばら撒いたりするのがおちです。 むしろ、これが勉強でもないでしょうか?と感じます。 ちなみに、うちの場合、すべてのサーバーマシンのtelnet、sshポートがわざとすべて開いています。 開いているとはいっても、どんな方法でアクセスしても、ログインIDもパスワードも聞かず・・・素通りでメッセージを出されて強制終了され、そして、そのアクセス元IPは自動遮断される仕組みになっています・・・ 今遮断しているIPは、おおまか、270万個って所でしょうか?(たまにリフレッシュしてクリアしていますが・・・)

haniwannko
質問者

お礼

ご回答ありがとうございます。 >個人的には、アップデートの率の高いPHPよりも、>perlのほうをおすすめします なるほど。 また、Linuxは使用しないほうがいいのですね。ウチの業務サーバーもFreeBSDなんですが、そこらへんのこともあってのFreeBSDなのかもしれません。 まだまだ勉強不足ですね。。 >むしろ、これが勉強でもないでしょうか?と感じます。 これには私も同感です。十分セキュリティには気を使いますが、誰も彼もサーバー公開できないのはちょっと・・と思ってしまいます。

その他の回答 (6)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.7

がるです。ちと再度。 セキュリティについての話が出ているので、質問者さんの当初のお話である「掲示板やカウンター、できたらWiki」を前提に。 自作でこういったものを作成する場合、やはり様々なアタックの可能性が考えられます。 無論、特に業務における「理想」としては「クラックされない設計とコーディング」ではあるのですが、実際問題「脆弱性を持たないCGI」って、業務レベル基準で見てもレアと言っていいほどに少ないです :-P ですので、原則的には「アタックされない」と同じくらい、「アタックに気づく」「気づいたらとにかくCGIを止めるか、内容次第では一時的にサーバを止める」ことを念頭に入れて置かれるとよろしいかと思います。 とりあえず手っ取り早い一つには「丁寧で決めの細かいロギング」からでしょうか。 あと、#5さんがおっしゃるとおり。Linuxは危ない部分があります…が、個人的によく扱うので擁護させてもらうと(笑 こまめに情報をチェックしていれば、例えば「OSによらず発生したセキュリティホール」などの面倒ででかい問題が物凄く早く解決したりはします。 ただ「サーバのメンテナンスに費やせるのは頑張っても週~2週に一回程度が限界」であると、場合によってはちょっと危険かもしれませんが。 取り合えず「アンテナを張り巡らせて危険な情報をすばやくキャッチ」した上で、内容次第では「即日~翌日程度」に対応がある程度できるのであれば、Linuxも十分にお勧めできるかと思います。 ちなみに、もし万が一「自分のサーバが踏み台になってどこかにアタック」が発生した場合。とりあえずまず「LANケーブル引っこ抜いてください」(笑 で、他人への悪さが出来ないようになってから、ゆっくりとサーバの中を覗いて、何が起きているのかを観察してみてください。 少々蛇足チックな内容で恐縮ですが。

haniwannko
質問者

お礼

>実際問題「脆弱性を持たないCGI」って、業務レベル >基準で見てもレアと言っていいほどに少ないです そうなんですか。意外でした。 >もし万が一「自分のサーバが踏み台になってどこかに>アタック」が発生した場合。とりあえずまず「LAN >ケーブル引っこ抜いてください」(笑 そこらへんは了解です(笑 セキュリティに十分注意して、外部公開はできたらする方向で努力していこうと思います。 また、Perlはシェルでは足りないようなログ処理等スクリプト関係、HPはPHPで作ることにしました。 掲示板やカウンターはどちらでつくるか決めていませんが、勉強がてらPHP版とPerl版でもつくって、いいほう(よりセキュリティに強いほう)を採用してみたいと思います。 数々のご回答ありがとうございました。

回答No.6

>むしろ、これが勉強でもないでしょうか?と感じます。 他者に迷惑をかける可能性があるやり方で 勉強もへったくりもないと思いますよ。 クラッカーは常人の考える以上の方法で クラックを行いますから セキュリティーのプロが構築したシステムでも 多々クラックされているでしょ。 ですから自分もFedoraで構築したサーバあるけど 外部公開はしていません。 それは監視することに神経をとがらすより 外部にサーバ借りたほうが楽ですし 勉強はわざわざ外部に公開しなくても 内部だけでも十分に勉強できます。

haniwannko
質問者

お礼

ご回答ありがとうございます。 私は勉強をするために自宅サーバーを立てたいのではなくて、あくまで情報発信として自宅サーバーを立てたいと考えています。そこのあたりを汲み取っていただけるとありがたかったです。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.4

がるです。 > どんなとき(どんなものをつくるときには)にPerlがよい、どんなときに(どんなものをつくるときには)PHPがよいという切り分けの方法 んっと…言語特徴的には極めて似ているので、掲示板とかチャットとか、そういった意味合いでの用途別っていうのはあまりないと思われます。 昔ですと「PHPが入っていないレンタルサーバ」が多かったなどの状況からPerlを用いられることが多かったのですが、昨今は大分に多様なものになってきましたし。 業務的にも、多くの場合は「その会社が元々持っている資産の多さ」によってチョイスされることが少なくありません。 あとは…無意味な判断基準としては「CGI == Perl」という思い込みや「大手でPHPを使っているから」など。 しいて言えば、Eclipseなどの開発環境の整い方がPHPのほうが「情報が多い」ようには感じられますが。 というわけで、かなりどっこいどっこいです。 ただ「様々な環境で動かす」場合、特にPHPはバージョン依存が激しくphp.iniという設定ファイル依存が激しいので、そのあたりは要注意でしょう。 …あまり回答になってなくて申し訳ないのですが。

haniwannko
質問者

お礼

ご回答ありがとうございます。 >というわけで、かなりどっこいどっこいです。 >ただ「様々な環境で動かす」場合、特にPHPはバージ >ョン依存が激しくphp.iniという設定ファイル依存が >激しいので、そのあたりは要注意でしょう。 なるほど。Webでもいろいろ検索してみましたが、なかなかコレ!という決め手はないようですね。 自分の得意な言語でやっていこうと思います。

回答No.3

>素人の方のスキルを育てる機会も奪ってしまう気がします。 外部公開しないサーバで勉強すればいいだけですし >業務ではApacheをつかってWebサーバー構築をしています。 だったら怖さを知っていると仮定して 会社を辞めて24時間常時監視をしてください。 個人的には公開サーバ監視(Webと限らずに) は分単位でやるべきだと思っていますから だいそれたシステムになりかねないけど 作るものによってはJava(JSP)でしょうね。 ちょっとしたものだとPerlでもPHPでも 好きなほうで十分。

haniwannko
質問者

お礼

再度のご回答ありがとうございます。 >>素人の方のスキルを育てる機会も奪ってしまう気がします。 >外部公開しないサーバで勉強すればいいだけですし まぁ、そう言っちゃそうなんですが・・それだと自宅サーバーの意味が薄れそうな気もしますね。 >会社を辞めて24時間常時監視をしてください。 はちょっとやりすぎかと。。 ストリーム監視ツールをクーロンで起動して、異常なストリームやアクセスがきたときはメールで知らせる、程度のPerlスクリプトは書けますので、それで対応しようかなと考えています。 >ちょっとしたものだとPerlでもPHPでも >好きなほうで十分。 なるほど。。まぁここ(教えてgoo)もPHPですしね。 勉強がてらPHPでやっていこうかなと考えています。 もし、掲示板ならPHP、カウンターならPerlなど、一般的な切り分けの方法や一般常識があるのなら教えていただけると幸いです。

回答No.2

>最近はやり?の自宅サーバーを立てようかと思っているのですが、PerlかPHPどちらを使うか悩んでいます。 どちせかという以前に 素人が(言語選択の段階で迷っているレベルだと) 自宅サーバを外部に公開することを 反対します。 周りに迷惑をかける可能性大です。 踏み台にされたりウィルスをばら撒いたり するのがおちです。

haniwannko
質問者

お礼

ご回答ありがとうございます。 業務ではApacheをつかってWebサーバー構築をしています。ですので、ある程度のセキュリティ知識やスキルはあるものと考えています。で、業務では、PerlとPHP混在した環境で作成指示がくるのですが、どんなときにPHPで、どんなときにPerlなのか、その切り分けがされていないように感じるのです。なので、今回質問をさせていただいたしだいです。よろしければ、これらを踏まえて再度ご回答いただけると幸いです。

haniwannko
質問者

補足

それなりの有スキル者だということをあらかじめ書いておけばよかったですね。とはいえ、自宅サーバーがらみの本はかなりの種類出版されていますし、一概に「反対」とするのは、素人の方のスキルを育てる機会も奪ってしまう気がします。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 どちらもお勧めできません………では話が続かないので(苦笑 PHPは比較的に簡単にプログラムが組めるかと思います。ただ、標準ライブラリ的存在で色々問題もあったり(sessionとかPEARとかSmartyとかその他)、言語自体もまだまだドラフト感が強いため、特に業務で取り扱うには細心の注意が必要です。 ただ、Perlも特に5.8あたりから混迷してきている部分もあり(Encode周りなど)、CPANモジュールなどで苦労することも多く(周囲から結構泣きつかれてます)。 …じゃぁ何で作るんだって話になるのですが。 PerlとPHPで「まだしも」なのは…個人的にはPerlでしょうか。CGI以外にも応用が効かせやすいですし。というかPHPの「メンテナンスバージョンアップでのchangelog」とか見てると、テスト環境その他よっぽど充実していないと、かなり怖いです。 ただこれは「業務として使う」場合なので。プライベートで扱うのであれば、ある程度小規模であればPHPのほうが取っ付きは楽だと思います。

haniwannko
質問者

お礼

ご回答ありがとうございます。 Perlはそれなりの業務経験はありますが、PHPはここ数ヶ月の経験しかありません。自宅でもPHPの本を読んで勉強しようかな・・とは思っていますが(仕事でもPHPを使うことになるので)。 プライベートであれば、PHPのほうがとっつきは楽なのですね。なるほど。。 確かに経験上そうかもしれません。 できたら、どんなとき(どんなものをつくるときには)にPerlがよい、どんなときに(どんなものをつくるときには)PHPがよいという切り分けの方法があるのでしたら教えていただけると幸いです。よろしくお願いいたします。

関連するQ&A