• ベストアンサー

CGI版とモジュール版の違いで

CGI版で使えないものというのは apache_から始まる関数以外に何かありますか? モジュール版と比べての機能制限など教えてください。 日付関係でも少し違うと言うのは分かったのですが、詳しいことがさっぱりなので^^; 今借りているレンタルサーバではCGI版ですが、使えない関数が他にあるなら知りたいんです。 あとモジュール版の方が早いと聞きましたけど、掲示板ぐらいのものになるとCGI版の方が早いという話も聞きます これは正しいですか?それとも掲示板の種類で大きく変わるでしょうか? よろしくお願いします

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

  • ベストアンサー
  • angband
  • ベストアンサー率51% (86/168)
回答No.1

PHPは現在、高度にモジュール化されていて、本体をコア、各機能はPECLとして 構成されています。 DSO版だけにapache_という関数群が使えるのは、DSO版にはapache関連のPECLが 入るだけかと思います。特定の関数が使えるかどうかはDSO版だからとかは 無関係で、コンパイル時にどの機能が使えるようになっているかによります。 レンサバがセーフモードでなければ、phpinfo()関数で確認できます。 なので日付関連の関数がDSO版とCGI版で違うとは考えにくいと思います。 そんな情報をどこで得られましたか?(僕が知らないだけだったらすいません) 実行速度の問題ですが、どのようなものであってもDSO版が圧倒的に速いです。 なぜならCGI版の場合は、apacheがシェルを立ち上げて、シェルがスクリプトの 一行目に指定されているコマンド(この場合はおそらく /usr/local/bin/php )を 立ち上げて、そこで初めて実行されます。このオーバーヘッドの分だけ遅くなる はずです。

noname#14955
質問者

お礼

なるほど、phpinfo()を見ればよいんですね さっそくやってみたいと思います CGI版は普通にperlと同じような手順ということですか。 となればphpで処理してもperlで処理しても速度的にはあまり変わらない? ちなみに日付関数というのはSEO絡みで、If-Modified-Sinceの値がどうとかいうことでした。 これでもさっぱり分からないですけど^^; ありがとうございました^^

その他の回答 (1)

回答No.2

まず最初に、モジュール版とCGI版のどちらかしか利用できないとしたら、 CGI版の方が利がある。 最初に直面するのは、 apache_から始まる関数などよりも、 PHPでの簡易認証が使えないと驚くんじゃないかな そもそも使えない関数の話をするなら、 設定の違いによる場合の方が影響が大きい DBの一部の関数の話をしてもしょうがないでしょうし。 その他にも、 環境変数の扱いが違ったり、 PHPモード(JSPでのスクリプトデリミタ)の切り替えができなかったりする。 #設定により違う スピードはCGI版の特性を活かしたスクリプトでないと モジュール版よりは早くならない 掲示板の種類というよりは内容次第。

noname#14955
質問者

お礼

なるほど、利でいうとCGI版の方が有利なんですね! これは助かります!今勉強段階なので、色々できるのは嬉しいんです 色々試してみます!ありがとうございました^^