1 名前:nobodyさん mailto:sage [2012/01/20(金) 05:43:23.62 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 114 kohada.2ch.net/test/read.cgi/php/1325437405/ ◆質問用テンプレ 【OS名】CentOS 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
790 名前:nobodyさん [2012/02/22(水) 01:44:59.53 ID:HjiaSrjv] >>789 他の言語に比較して遅いです。 比較はJavaとPythonです。
791 名前:nobodyさん [2012/02/22(水) 01:46:11.48 ID:HjiaSrjv] PHPもページ単位で処理が終わるものなら早いですが、 オブジェクト指向を始めると途端にパフォーマンスが悪くなるようです。
792 名前:nobodyさん [2012/02/22(水) 01:48:41.94 ID:HjiaSrjv] >>789 ローカル環境でも遅いのでどうしようもありません。
793 名前:nobodyさん mailto:sage [2012/02/22(水) 01:54:46.01 ID:???] じゃ窓からPCでも捨てればいいと思うよ
794 名前:nobodyさん [2012/02/22(水) 01:57:04.91 ID:HjiaSrjv] PHPでセッションにオブジェクトを格納することは少ないのでしょうか? アプリケーションスコープが無いのはわかっていますが、セッションはありますよね。 WordPressしかり、Cakeしかり、symfonyしかり、オブジェクト格納場所として セッションは考えられていないようです。これが結果としDBへの 余分なアクセスを増大させているようです。
795 名前:nobodyさん [2012/02/22(水) 01:58:42.03 ID:HjiaSrjv] >>793 たとえばOpenPNEが稼働しているサイトで機敏に動くところはありますか? 自分が知っている限り無いと思いますが・・・。
796 名前:nobodyさん mailto:sage [2012/02/22(水) 02:10:14.28 ID:???] OpenPNE使ってるサイトなんて画像が多かったりコード量が多いサイトがほとんどだろ なんでもかんでもPHPのせいにすればいいってもんじゃない
797 名前:nobodyさん mailto:sage [2012/02/22(水) 02:18:02.00 ID:???] >>789 さすがにそれは無いわ。サーバがしょぼいの敷居がよほど高くなければ。
798 名前:nobodyさん [2012/02/22(水) 02:18:21.92 ID:HjiaSrjv] >>796 書いていますが、デフォルトの状態ですでに重いのです。 一切カスタマイズしていない状態です。ちなみに3.6系の最新版です。 デバックモードで起動するとものすごい数のSQLクエリが発行されています。 >>794 についてはどう思われますか?
799 名前:nobodyさん [2012/02/22(水) 02:20:08.85 ID:HjiaSrjv] PHPのインタープリタが遅いのは承知していますが、 それ以上にクエリをムダに発行しているように思えるのです。
800 名前:797 mailto:sage [2012/02/22(水) 02:20:36.63 ID:???] >>798 PHP部に限って言うならopコードキャッシュ使う。 DBアクセス数が多くて、コネクション生成コスト、クエリコストが原因で遅いのであれば、PHP自体の問題ではなくなる
801 名前:nobodyさん mailto:sage [2012/02/22(水) 02:21:25.34 ID:???] 本当にそれが無駄なのであれば改善すれば世界中の人に喜ばれるよ。
802 名前:nobodyさん mailto:sage [2012/02/22(水) 02:22:22.14 ID:???] >>794 についてはどう思われますか? 一人だけで使うなら別にいいんじゃね
803 名前:nobodyさん [2012/02/22(水) 02:23:07.36 ID:HjiaSrjv] PHPのリソースの捉え方が非常に大雑把で困惑しています。 たとえばJavaであれば 1.アプリケーションスコープ 2.セッションスコープ 3.リクエストスコープ 以上の3スコープに欲するデータが無い場合のみDBへアクセスしますが、 CakeやWordPress、OpenPNEなどの場合はお構いなしに毎回DBへアクセス しているのが不思議です。
804 名前:nobodyさん mailto:sage [2012/02/22(水) 02:26:05.08 ID:???] >>803 Webサーバを複数使うことを想定してそうなってるわけじゃなくて? 設定とかで変えられないの?ってか、変えられないからそのように断定しているんだろうけれど。
805 名前:nobodyさん mailto:sage [2012/02/22(水) 02:30:02.12 ID:???] >>803 ちなみに期待するレスポンスはどの程度で、現状はどれくらい? 同時接続クライアント数など、必要なものを列挙してほしい。ベンチの結果でもいい。
806 名前:nobodyさん mailto:sage [2012/02/22(水) 02:32:41.04 ID:???] それがわからないから管を巻いてんじゃねえかな
807 名前:nobodyさん [2012/02/22(水) 02:40:30.48 ID:HjiaSrjv] >>805 >>806 PHPの主要フレームワークやCMSのソースコードリーディングに基づき、 このスレを書き込みしています。実践というわけではありません。 気づいたことはオブジェクトの一時保存場所としてセッションが 使用されていないのが不思議なのです。だからSQL発行が非常に多い。 これはなぜですか?
808 名前:nobodyさん mailto:sage [2012/02/22(水) 02:41:22.45 ID:???] >>807 >>804 の1行目は理解できる?
809 名前:nobodyさん [2012/02/22(水) 02:43:20.60 ID:HjiaSrjv] >>808 PHPは分散オブジェクトは対応していないのですか?
810 名前:nobodyさん mailto:sage [2012/02/22(水) 02:46:14.38 ID:???] >>809 Javaのスコープの話が出てきた時点でこうなりそうな気はしていたが。 今後の話をわかりやすくするために「分散オブジェクトに対応する」というのがどういうことか伝えてもらえるかな。
811 名前:nobodyさん [2012/02/22(水) 02:50:27.92 ID:HjiaSrjv] >>810 複数のコンピュータ間で同じオブジェクトを同一マシーン上で処理が済むことと同じようにすることですよね。
812 名前:nobodyさん [2012/02/22(水) 02:53:35.00 ID:HjiaSrjv] OpenPNE,WordPress、CakePHPはセッションへオブジェクトを格納する設計になっていないのでしょうか?
813 名前:nobodyさん mailto:sage [2012/02/22(水) 02:54:02.25 ID:???] >>811 それでいいのなら、対応してる。
814 名前:nobodyさん mailto:sage [2012/02/22(水) 02:55:12.88 ID:???] >>812 ソースコードリーディングは諦めたの?
815 名前:nobodyさん [2012/02/22(水) 02:56:50.78 ID:HjiaSrjv] >>812 なぜ同じクエリを何度も発行しているのでしょうか? OpenPNE3.6系です。
816 名前:nobodyさん mailto:sage [2012/02/22(水) 03:00:29.37 ID:???] いらなクエリをコメントアウトすればいいんじゃね?
817 名前:nobodyさん [2012/02/22(水) 03:02:33.49 ID:HjiaSrjv] >>816 その論法で行くと全部コメントアウトになりますが・・・。 私の質問はPHPでは答えにくのでしょうか?
818 名前:nobodyさん mailto:sage [2012/02/22(水) 03:04:26.65 ID:???] そろそろしんどい。 >>815 , 817 繰り返すが、それが本当に無駄なら報告すれば多方面から感謝されるからそうしたらいい。
819 名前:nobodyさん [2012/02/22(水) 03:08:04.96 ID:HjiaSrjv] >>818 そんなに大げさなことでしょうか? OpenPNEを試されたことがありますよね? デバックモードで起動するとSQL発行数がわかりますが、すごい量です。 これはなぜですか?と言っているだけです。だから遅いんじゃないでしょうかと。
820 名前:nobodyさん [2012/02/22(水) 03:09:29.52 ID:HjiaSrjv] セッションにオブジェクトを格納しない理由があるのでしょうか? 昔はシリアライズのバグの話は聞いたことがありますが、さすがに今は解消しているはずです。
821 名前:nobodyさん mailto:sage [2012/02/22(水) 03:09:46.81 ID:???] >>819 デバッグモードじゃなければ発行されないの? 何のために使われるクエリなのかは調べてないの? OpenPNEは使ったこと無いよ。使ったこと無いならレスしないでっていうことなら喜んでレスやめる。
822 名前:nobodyさん mailto:sage [2012/02/22(水) 03:09:49.44 ID:???] セッション切れるまでリソース保持とかどんな罰ゲーム
823 名前:nobodyさん mailto:sage [2012/02/22(水) 03:09:54.82 ID:???] x86命令セット渡しても文句言いそうだな
824 名前:nobodyさん mailto:sage [2012/02/22(水) 03:11:44.08 ID:???] どういう学び方をしたらこんなこじらせた頭になるんだ?
825 名前:nobodyさん [2012/02/22(水) 03:11:56.60 ID:HjiaSrjv] >>821 デバッグモードで起動するとSQLクエリの発行数がわかります。
826 名前:nobodyさん [2012/02/22(水) 03:13:20.43 ID:HjiaSrjv] >>822 それならそれでいいんです。 PHPでは罰ゲームレベルという理解でよろしいのですね。
827 名前:nobodyさん mailto:sage [2012/02/22(水) 03:13:21.46 ID:???] こんなとこで使ったこと無い人相手にがんばるくらいならコード読み進めてみたら?
828 名前:nobodyさん [2012/02/22(水) 03:14:30.57 ID:HjiaSrjv] 結局のところ、 PHPではセッションにオブジェクトを格納するのは一般的ではないという結論ですね。
829 名前:nobodyさん mailto:sage [2012/02/22(水) 03:15:13.92 ID:???] >>826 Javaだと放置セッションのリソースはいつ破棄されるの?
830 名前:nobodyさん mailto:sage [2012/02/22(水) 03:15:30.89 ID:???] >>826 だから言っただろ 一人だけで使うなら別にいいんじゃね って
831 名前:nobodyさん [2012/02/22(水) 03:15:45.98 ID:HjiaSrjv] よくわかりました。道理でセッションが使用されていないわけだ。
832 名前:nobodyさん [2012/02/22(水) 03:16:55.71 ID:HjiaSrjv] >>829 アプリケーションサーバーの設定による。 ただし、プログラムレベルでは細かく殺してリソースのムダ遣いを減らします。
833 名前:nobodyさん mailto:sage [2012/02/22(水) 03:17:02.95 ID:???] 他人のコードを読む時の絶望感といったら言葉にならない らーらーらー ららーらー 言葉になら〜ない
834 名前:nobodyさん mailto:sage [2012/02/22(水) 03:17:23.17 ID:???] PHPだけの問題じゃないでしょうに Javaだって同じ事
835 名前:nobodyさん mailto:sage [2012/02/22(水) 03:17:48.03 ID:???] >>832 PHPも一緒だよ。
836 名前:nobodyさん mailto:sage [2012/02/22(水) 03:18:45.31 ID:???] 基礎知識が足りなさすぎるだろ もっと幅広く勉強しろよ
837 名前:nobodyさん [2012/02/22(水) 03:19:08.08 ID:HjiaSrjv] もう大丈夫です。 PHPではセッションにオブジェクトを格納するのは一般的ではないということが よくわかりました。
838 名前:nobodyさん mailto:sage [2012/02/22(水) 03:20:04.33 ID:???] どういたしまして。
839 名前:nobodyさん [2012/02/22(水) 03:24:16.48 ID:HjiaSrjv] セッションにオブジェクトを格納するのはPHPでは一般的では ないとわかりましたが、それはPHPプログラマにとって尺に触ることでしょうか?
840 名前:nobodyさん [2012/02/22(水) 03:27:56.08 ID:HjiaSrjv] 尺に触ったのであればすみまんでした。特に悪気はありません。
841 名前:nobodyさん mailto:sage [2012/02/22(水) 03:30:45.46 ID:???] 癪に障るかってどういうことだろ。 たとえば一般的ではないことを強要されたら癪に障るかも知れないけれど。
842 名前:nobodyさん mailto:sage [2012/02/22(水) 03:38:58.82 ID:???] もしかして煽ろうとしていたのか…?
843 名前:nobodyさん mailto:sage [2012/02/22(水) 03:57:13.25 ID:???] >>840 キレてないっスよ ペチパーキレさせたら大したもんスよ
844 名前:nobodyさん mailto:sage [2012/02/22(水) 04:52:15.14 ID:???] PHPでC言語の実装するとか言ってたのはどうなったんだ?
845 名前:nobodyさん mailto:sage [2012/02/22(水) 06:32:14.02 ID:???] PHPだからとかJavaだからとか関係ないから。 Webアプリケーションの設計の話でしょ。
846 名前:nobodyさん mailto:sage [2012/02/22(水) 07:41:18.69 ID:???] >>795 JavaとPythonで比較してるなら、OpenPNEに相当するJavaとPythonで実装されたもので 機敏に動くものを知りたい。
847 名前:nobodyさん mailto:sage [2012/02/22(水) 08:55:42.21 ID:???] もう大丈夫です。 PHPではセッションにオブジェクトを格納するのは一般的ではないということが よくわかりました。
848 名前:nobodyさん mailto:sage [2012/02/22(水) 09:00:26.08 ID:???] PHPでなくても一般的ではない
849 名前:nobodyさん mailto:sage [2012/02/22(水) 09:03:48.77 ID:???] >>848 嘘つくなw
850 名前:nobodyさん mailto:sage [2012/02/22(水) 09:10:04.74 ID:???] コネクションプーリングってのはそもそもアプリケーション鯖が対応してなければ使えない
851 名前:nobodyさん mailto:sage [2012/02/22(水) 09:13:27.28 ID:???] >>850 当然。だからphpではコネプール不可。
852 名前:nobodyさん mailto:sage [2012/02/22(水) 09:15:30.80 ID:???] セッションの話はどうでもいいが、openpneが激重なのは同意。 かなりヤバイレベル。バージョン2の時代はマシだった。
853 名前:nobodyさん mailto:sage [2012/02/22(水) 09:17:48.11 ID:???] んでコネクションプーリングを実現するのにセッションが必要なんて そんなヴァカな話があるのか
854 名前:nobodyさん mailto:sage [2012/02/22(水) 09:24:03.91 ID:???] >>853 たしかに、唐突にコネクションプーリングの話は変だとは思った。 その逆も必要ないかと。 話の流れとは関係ないw
855 名前:nobodyさん mailto:sage [2012/02/22(水) 10:49:21.91 ID:???] >>852 可能です。 以上。 ↓次どうぞ
856 名前:nobodyさん [2012/02/22(水) 11:04:16.02 ID:yvJnpOho] >>783 CGIじゃなくてモジュールで動作させれば早いと書いてあった。 今のところはCGIで動作の仕様になってる。
857 名前:nobodyさん mailto:sage [2012/02/22(水) 11:17:37.00 ID:???] 頭大丈夫 ?
858 名前:nobodyさん mailto:sage [2012/02/22(水) 11:27:57.48 ID:???] もう手遅れかと
859 名前:nobodyさん mailto:sage [2012/02/22(水) 15:35:04.94 ID:???] コネクションプーリングは言語レベルのサポートは無い。
860 名前:nobodyさん mailto:sage [2012/02/22(水) 15:37:33.90 ID:???] Javaのようなオブジェクト指向言語では普通にオブジェクトをセッションへ格納する。
861 名前:nobodyさん mailto:sage [2012/02/22(水) 17:05:21.76 ID:???] いいえアプリケーションで管理するのが普通です
862 名前:nobodyさん mailto:sage [2012/02/22(水) 17:34:31.83 ID:???] setcookie();の挙動について悩んでいます a.phpで echo $_COOKIE['testvar1']; var_dump($_COOKIE); --- b.phpで setcookie('testvar1', 'bbb') //a.phpでbbbが出力される --- c.phpで setcookie('testvar1', 'ccc') //a.phpでcccが出力されない setcookie('testvar2', 'xxx') //a.phpでtestvar2自体が確認出来ない と、以上のようにしてる時、b.php → a.php の順番でアクセスするとechoもvar_dumpも正常な結果を返すんですが、その後 c.php → a.php の順番でアクセスするとechoはbbbを返し、var_dumpは追加したtestvar2自体を返さずtestvar1のみbbbとして返します ※c.php自体の中で echo $_COOKIE['testvar1'];すればcccを返します。また、c.phpのsetcookie();の返り値は1です ※また、b.phpの中でクッキーに入れる値を変更した場合はa.phpで変更後の値が確認出来ますが c.phpの中で値を変更しても上書きされません(c.phpの中での確認です) ドメインは全て同じで、原因が全くわかりません 何か考えられる対処法やチェック箇所あるでしょうか? 申し訳ないですが、どなたかご意見お願いします
863 名前:nobodyさん mailto:sage [2012/02/22(水) 19:09:47.20 ID:???] ブラウザを初期化する
864 名前:nobodyさん mailto:sage [2012/02/22(水) 19:28:43.76 ID:???] ありがとうございました!
865 名前:nobodyさん mailto:sage [2012/02/22(水) 19:35:22.61 ID:???] 最近は、ID出さなくても答えて貰える様になったのか。 これがゆとりか。
866 名前:nobodyさん mailto:sage [2012/02/22(水) 19:44:07.26 ID:???] ID指摘したかったら、回答しつつ、ID出すように促せよ。 IDID言うやつ、回答しないんだよな。
867 名前:nobodyさん mailto:sage [2012/02/22(水) 19:46:05.87 ID:???] >>1
868 名前:nobodyさん mailto:sage [2012/02/22(水) 19:46:44.23 ID:???] 昨日のチェリーボーイが居ますね
869 名前:862 [2012/02/22(水) 20:41:14.26 ID:culdIBNJ] すみません、今気づきましたID出してなかったです。すみませんでした その後もブラウザ再起動などしてやったんですが やはりc.phpでsetcookie();した値はc.php以外で確認出来ません なんなんでしょうか?
870 名前:nobodyさん mailto:sage [2012/02/22(水) 20:44:30.18 ID:???] >>869 問題が再現するコード出して
871 名前:nobodyさん mailto:sage [2012/02/22(水) 20:50:21.88 ID:???] >>869 たぶんpath
872 名前:nobodyさん mailto:sage [2012/02/22(水) 21:49:26.94 ID:???] HTTPのヘッダも確認してみれば
873 名前:nobodyさん mailto:sage [2012/02/22(水) 22:14:17.30 ID:???] fastcgiの動作確認なのですが php-cgi -b 127.0.0.1:9000 & として telnet 127.0.0.1 9000 とかでなんか叩いて動作チェックって出来るものでしょうか?
874 名前:862 [2012/02/22(水) 22:42:10.50 ID:culdIBNJ] >>870-872 その後、全てのsetcookie()を setcookie('time', date('Y-m-d H:i:s'), 0, '/', 'example.com');として 有効時間、パス、ドメインを指定したところ解決しました 質問して良かったです、助かりました 本当にありがとうございました
875 名前:nobodyさん mailto:sage [2012/02/22(水) 22:51:44.23 ID:???] いいってことよ
876 名前:nobodyさん mailto:sage [2012/02/22(水) 22:55:02.14 ID:???] ほい
877 名前:nobodyさん [2012/02/22(水) 23:24:44.58 ID:qmf6D6+H] get_included_files()に含まれてないファイルがrequire_onceで読み込まれないんですが、 原因としては何が考えられますか?
878 名前:nobodyさん mailto:sage [2012/02/23(木) 00:42:33.05 ID:???] >>877 パス間違ってるとかパーミッションがマズイとか。 ちょっと情報少なすぎ。 warningかnoticeも出てないの?
879 名前:553 mailto:sage [2012/02/23(木) 01:24:46.92 ID:???] 含まれていないんだから、読み込まれないのは問題無いだろw
880 名前:nobodyさん mailto:sage [2012/02/23(木) 02:36:14.38 ID:???] CakePHPは重いですね
881 名前:nobodyさん mailto:sage [2012/02/23(木) 02:52:55.61 ID:???] マシンパワーアップしようぜ i7っでサックサクにしようぜ
882 名前:nobodyさん mailto:sage [2012/02/23(木) 07:04:30.49 ID:???] >>879 ん?
883 名前:nobodyさん mailto:sage [2012/02/23(木) 11:23:14.79 ID:???] >>880 同意。WordPressも激重。
884 名前:nobodyさん mailto:sage [2012/02/23(木) 11:28:18.18 ID:???] スレチ
885 名前:nobodyさん mailto:sage [2012/02/23(木) 11:29:42.88 ID:???] チッ
886 名前:nobodyさん [2012/02/23(木) 11:35:04.06 ID:GMJguUp1] セッションを利用したログイン認証について質問です。 ログインページでは、ID(メアド)とパスワードの一致をもって、認証OKとしています。 その後、各ページでは何をもって認証OKとすれば良いのでしょうか? 入門書では、 1.ログイン時に、各ユーザー情報をセッションに保持し、各ページでは、それがあれば認証OKとする。 2.ログイン時に、暗号化した認証キーを作成してセッションに保持し、各ページで再度、認証キーを作成し、セッションの認証キーと照会する。 3.ログイン時に、セッションID(session_id())をセッションに保持し、各ページでは、そのページでのsession_id()と照会する。 などの方法を確認しました。個人的には、1の方法で足りると思うのですが、2や3の方法のほうがセキュリティーは高まるのでしょうか?
887 名前:nobodyさん mailto:sage [2012/02/23(木) 12:26:00.63 ID:???] ログインフラグだけで十分
888 名前:877 [2012/02/23(木) 13:56:23.63 ID:QQ9YytJp] >>878 パスは間違ってないようです パーミッションもちゃんと644になってます 直接関わるwarning・noticeは出ていないようです 情報が少なすぎるとのことなので問題の背景を説明します レンタルサーバでXOOPSを使いサイトを運用しています ある日すべてのページが500 Internal Server Errorになるようになりました "php_flag magic_quotes_gpc Off"とだけ書かれたXOOPS_ROOT_PATH/.htaccessがあったのでこれを削除したところ、 だいたいのページは元通り見られるようになりました しかし、管理メニューの互換モジュールで Fatal error: Class 'Legacy_ActionFrame' not found in XOOPS_ROOT_PATH/modules/legacy/admin/index.php とエラーが発生します 該当する.phpファイルではそのクラスを定義しているXOOPS_ROOT_PATH/modules/legacy/class/ActionFrame.class.phpをrequire_onceしているようなので、 このファイルにでたらめな文字列を書き足してSyntax errorを期待したのですが結果は変わりませんでした また、require_onceの下にvar_dump(get_included_files());を書き足しても、このファイルは含まれていませんでした 以上にもかかわらず、require_onceの戻り値は1( != FALSE)でした どうすればこのファイルはrequire_onceで読み込まれるようになるでしょうか? よろしくお願いします
889 名前:nobodyさん mailto:sage [2012/02/23(木) 14:11:01.61 ID:???] >>886 どんな入門書読んだのか知らんが、2と3は明らかにおかしなこと言ってるぞ。 もう一回しっかり読め。 セッションとクッキーは別物だということを頭に置いてな。
890 名前:nobodyさん [2012/02/23(木) 15:06:37.39 ID:pOv6kBFH] smp.tsv あああ\\t2012.01.23\\tききき\\n いいい\\t2012.01.23\\tくくく\\n ううう\\t2012.01.23\\tけけけ\\n えええ\\t2012.01.22\\tこここ\\n おおお\\t2012.01.22\\tさささ\\n かかか\\t2012.01.21\\tししし\\n 今日 = 3 昨日 = 2 一昨日 = 1 このような値を取り出したい場合はどのような手順になるのでしょうか? よろしくおねがいします。