インクルードファイルが重いのは大丈夫でしょうか?

このQ&Aのポイント
  • 私はPHPでショッピングサイトを構築しているのですが、インクルードしているファイルが重くなってしまい、サーバーの処理が遅くなっています。特に夜間や土曜日にはタイムアウトの問題が発生しています。サーバーの性能やコストが原因なのか、インクルードしているファイルの大きさが原因なのか、同じような経験をされたことはありませんか?
  • 私はPHPを使ってショッピングサイトを作成していますが、サーバーの処理が遅くなる問題に悩んでいます。特に夜間や土曜日にはタイムアウトが発生し、サイトが正常に動作しません。原因としては、インクルードしているファイルが重くなりすぎているのではないかと考えていますが、同じような経験をされたことはありませんか?
  • 私はPHPでショッピングサイトを構築していますが、サーバーの処理が遅いという問題に直面しています。特に夜間や土曜日にはタイムアウトが発生し、サイトが正常に表示されません。原因としては、インクルードしているファイルの大きさが原因ではないかと考えていますが、同じような経験をされたことはありませんか?
回答を見る
  • ベストアンサー

インクルードファイルが重いのは大丈夫でしょうか?

私はPHPでショッピングサイトを構築しているのですが、そのサイトの全てのファイルに、include.iniファイルをrequireしています。 このinclude.iniの中には、便利な関数や定数定義などを入れています。(だいたい1600行くらい) ところが、某米国のレンタルサーバーを使っているせいか、夜間(特に土曜日)はまったく動かないといっていいほど処理が遅いのです。(たいていタイムアウトになります。) 原因はやっぱりこのインクルードしているファイルが大きいせいでしょうか? それとも安価な(.comドメイン込みで年間5000円くらい)サーバーが原因なのでしょうか? 同じような状態を経験されたことはないでしょうか? ちなみに、データベースはMysqlに接続しています。

  • Ants
  • お礼率95% (45/47)
  • PHP
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • snowdust
  • ベストアンサー率66% (4/6)
回答No.1

Antsさんがご自身であげておられる原因、両方とも当てはまると思いますが、 インクルードファイルで1600行は非常に巨大すぎると思います。 それなら、一つのインクルードファイルを読み込ませようと思わないで、 関数や定義ごとに、幾つかのインクルードファイルにして、 一つのモジュールで必要な関数や定義の含まれているインクルードファイルだけを 読み込むようにしたほうがよいのではないでしょうか? 基本的にMysplは、SQL言語の中でもずば抜けて処理の早いSQL言語の一つだと思いますが。。。その反面、一気に膨大な量のレコードを扱うのは苦手かもしれませんね。 ちなみに、どのような規模でショッピングサイトを構築されているのか、 環境や状況がわからないのであまり適切なアドバイスにはならないかもしれませんが、 費用の許す範囲で、サーバの管理やメンテナンスがきっちりした信頼の置けるところを契約されるのも一つの手だと思います。 たいていの場合、安ければ安いほど、設備投資なり、メンテナンスの手間ひまなり、どこかで手を抜きます。 またその管理会社のネットワークセキュリティの質も、Antsさんのショッピングサイトの信用に関わるかもしれません。

Ants
質問者

お礼

回答ありがとうございます。 う~ん。やっぱり1600行は長すぎますよね。 ショップの規模は商品点数10000点(カラーバリエーションやサイズなどを含めて)くらいの規模です。 正確に言うと、現在はテスト中で、サーバーも安価な海外サーバーを使っています。(どなたかPHP4プラスMYSQLを使える信頼のおけるサーバーさんご存知ないでしょうか?) が、将来的にはきちんとした10000円/月くらいのサーバーを予定しています。

その他の回答 (1)

  • snowdust
  • ベストアンサー率66% (4/6)
回答No.2

レンタルサーバでPHP4とMySQLの使えるサーバを利用したことはないので、 的確な回答ができませんが、Google(http://www.google.com/intl/ja) 等で検索されれば、いろんなものが引っかかると思いますよ。 信頼できるかどうかは、さまざまな方法で自分で推し量るのが一番よいでしょう。 必ずしも全ての人が求める、または必要とするレベルが同じとは限りませんから。 これならOKと思える対応やサポート体制、設備や技術をもっているかどうかを、 メールでの問い合わせなり、電話での問い合わせなりをすることで、 ご自分で調べてみられるのもよいのでは? これはあくまで、私の個人的な独断と偏見の入り混じった意見なので、 必ずしも正しいとは言えませんが、ショッピングサイトを構築されるならば、 できれば、サーバ一台をまるごと一人の人(または会社)が利用できるような レベルの方がいいかもしれません。 ベストなのはやはり、手元で自分たちが直接サーバ管理、ネットワーク管理をするなのかも。 ただそれだと、そのための技術と知識と費用が膨大にかかりますが(苦笑) 予算が少ない場合は、やはりそれは妥協せざるをえないのでしょうね。 Antsさんの作っておられる、ショッピングサイトの経営方法や請求システムもわからないので、 一概に言えませんが、やはり、データのセキュリティ、安全性は一番に重要視したほうがよいでしょう。 個人的には、その面で、運営方法のみならず、データの管理等で信用がおける、 と判断できないところではやはり買いたくありません。 もちろん、ネットワークの世界のセキュリティに絶対はないので、 不慮の問題があることは否めませんが。。。 あくまで私の私的な独断と偏見の意見でした(苦笑) 使ったことはないので、どれほどのものなのかは全くワカリマセンが、 一つだけPHP4とMySQLの使えるレンタルサーバの心当たりがあるので URLを参考においておきます。 すでにご存知でしたら、スミマセン。

参考URL:
http://www.jpweb.net/
Ants
質問者

お礼

お礼が遅くなりまして申し訳ありません。 なるほど、やっぱりまるごとサーバ一台を借りたほうがいいのですね。 でも、ソフトのインストールなど大変なことがおおくて大変そうです。 有難うございました。参考になりました。

関連するQ&A

  • include_pathについて

    php.ini内のinclude_pathをinclude_path=".;C:\php\include"と設定してC:\windows\(不安なのでC:\php\にも)に置いているのですが、 なぜかphpinfo()を開いて確認すると".;C:\php5\pear"となっています。 Loaded Configuration File を見ても C:\Windows\php.ini となっていますし。 require_once "DB.php"を実行したときに以下のエラーが出たので、 db.phpのインストールも済んでいることから、include_pathが正しく設定されていないのが問題だと思うのですが・・・ Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\users.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.;C:\php5\pear') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\users.php on line 2 php.ini以外にも設定しなければいけない個所があるのでしょうか?

    • 締切済み
    • PHP
  • requireとincludeどっちを使えばいいのでしょう?

    題名にもある通り、便利な関数やdefineで定義した定数などを別ファイルにしてそれをインクルードしたいとき、一般的にはincludeとrequireどちらを使えばよいのでしょうか? また、includeのほうが軽くなるということはあるのでしょうか? マニュアルではincludeは呼び出したときに何度でも呼び出される旨 http://www.php.net/manual/ja/function.include.php かいてありますが、実践でどのようにつかえばよいかわかりません。 どなたか、ヒントでもかまいませんのでおしえていただけないでしょうか? 皆様は、どちらをどのようにお使いになってらっしゃいますか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • include_onceで呼び出したPHPファイル

    PHPでサイトを組んでいるのですが、include_onceで以下のようにPHPの各ファイルを呼び出して実行しているのですがうまくいきません。 <?php //レンタルサーバーのcronを利用して、定期的に走らせるコードです。 include_once "example_a.php"; include_once "example_b.php"; include_once "example_c.php"; ?> 各ファイルは、RSSで読み込んだデータをMySQLに格納するプログラムです。 個別で各ファイルを実行すると正しい結果となりますが上記のようなプログラムでまとめて実行するとexample_a.phpは正しい結果となりますが、example_b.php、example_c.phpは正しく処理されません。 原因として考えられるものがあれば、教えていただきたいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • リモート接続について

    宜しくお願いしますm(__)m サーバを2台使用してWEBサイトを構築しようと考えております。一台はHTMLやPHP等の静的ファイルを置く公開WEBサーバで、もう一台はMySQLデータベースサーバにします。 WEBサーバのドメインは『abc.com』といったメインのドメインを割り当てて、データベースサーバには『db.abc.com』といったサブドメインを割り当てて使用しようとしております。 公開WEBサーバ内に置いたPHPファイルから、db.abc.comのMySQLへアクセスさせるにはどうすればいいのでしょうか?データベースサーバがリモートを受け付ける設定になっていなければならない事は、他の方の質問でわかりました。その他、PHPやサーバで設定を変え無ければいけない事はありますか?? それと、データベースサーバがリモートアクセスを受け付ける設定にした場合のセキュリティ上の注意点などがあったら教えて頂けると助かります。

    • ベストアンサー
    • MySQL
  • include,requireで外部URLの呼び込み

    include,requireのどちらでもいいのですが、別ドメイン或いは同ドメイン内における違う階層のファイルなど(例えば外部のhttp://www.ooxx.sample)を呼び込む際に、呼び込み先のリンクや画像パスが相対バスではうまくいきません。呼び込み先のリンク、画像パスを絶対URLにすれば問題ないと思いますが、作業が困難になるので避けたいです。 PHPでinclude,requireの使い方は向かないのでしょうか?或いは、他の方法で回避できる方法はないのでしょうか? (SSIやHTMLでインラインフレームみたいなことは使わない)

    • 締切済み
    • PHP
  • PHP+MySQLでつくったアプリケーション

    自分のPCに勉強用としてApacheなどをインストールして いまでPHPとMySQLを使ったアプリケーションを作成していました。 PHPとMySQLがつかえるフリーのWEBサーバを借りて 今度は実際にWEB上で公開して見ようと思っています。 実際にアップロードしているときに気がついたのですが 将来的にMySQL以外のデータベースを使うことになっても 簡単に移行できるようにデータベースの操作に関する処理を別のファイルに書いて それをincludeしてつかっています。 php.iniのinclude_patch=のところを編集して別のところからincludeできるように設定してあったのですが、 レンタルサーバーのような自由が利かないサーバーではどのようにして対処したらいいでしょうか? 対処方法、代わりの方法などアドバイスいただけたらと思います。 よろしくおねがいします。

    • 締切済み
    • PHP
  • インクルードファイルとインラインフレームを比較した場合のメリット・デメリット

    webサイトを構築する際に共用部分のhtmlを読み込んで表示させる場合の対応として、インクルードファイルかインラインフレームのどちらかを検討しています。インクルードファイルの場合、サーバの負荷や設定など必要になろうかと思われますが、それぞれ比較した場合のメリット・デメリットを知りたいのですが。また、SEO的にはどうなんでしょう?

    • ベストアンサー
    • HTML
  • レンタルサーバでphp.iniの設定

    レンタルサーバー(heteml)を借りているのですが、次のコードがエラーになってしまいます。 =========コード=================== require_once("http://aaa.com/mysql2.php"); =============================== ========エラー文=================== Fatal error: Cannot instantiate non-existent class: mysql ~ =============================== 参考書に『ファイルはphp.iniの〔include_path〕で設定された場所に置く必要があります。』と書いてあり、私は何も設定していないので、 これがエラーの原因だと思うのですが・・ そこで、レンタルサーバの〔php.iniの設定〕というページへ飛んでみたのですが、ここでは〔include_path〕までは設定出来ないようです。 〔include_path〕の呼び出し先を”http://aaa.com(ファイルパス→/Web/aaa)”に設定したい場合はどうすれば良いのでしょうか? 他の方の質問を見ていると、”.htaccsess”が出てきますが、 どう記述してよいのかも良く解りません。 ご存知の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • PHPのinclude_pathについて

    以下はPEARでExcelファイルを作成し、ダウンロードするプログラムです。 <?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('sample3-1.xls'); $worksheet =& $workbook->addWorksheet('サンプル'); $workbook->close(); print('<html>'); print('<head>'); print('<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />'); print('</head>'); print('<body>'); print('<p><a href="./sample3-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?> このプログラムを実行すると、 Warning: require_once(Spreadsheet/Excel/Writer.php) [function.require-once]: failed to open stream: No such file or directory in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'Spreadsheet/Excel/Writer.php' (include_path='.;C:\php5\pear') in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 というエラーメッセージが出ます。 php.iniには、PEARのパッケージをインストールした際に ;***** Added by go-pear include_path=".;C:\php-5.2.17-Win32-VC6-x86\pear" ;***** と記述されているにも関わらず、エラーメッセージのpathはinclude_path='.;C:\php5\pear'となっており、原因がわかりません。 php.iniはC:\WINDOWSの直下に置いてあります。 PHPのバージョンはphp-5.2.17-Win32-VC6-x86で、Cドライブの直下にインストールしています。 WebサーバーはIISです。 eclipseを使っており、バージョン?はpleiades-e3.6-php_20110326です。 また、phpinfoのinclude_pathはLocalとMasterの両方が.;C:\php5\pearとなっています…。 Configuration File (php.ini) Path C:\WINDOWS Loaded Configuration File C:\WINDOWS\php.ini この2つはこの様になっており、これは2つの場所は一致していないといけないのでしょうか? 解決手段がまったくわかりません。 何かこのエラーについてわかることがあれば教えていただけませんか?

    • 締切済み
    • PHP
  • 別のドメインのファイルをrequire

    phpで別のドメイン下のファイルをrequireしようとしていますがうまくいきません。 サーバーの環境は【Windows Server 2008 + IIS6.0 + php5.2】で、 php.iniのallow_url_includeはonに設定済みです。 ファイルA http://xxx.com/aaa.php   <html>   <head>   </head>   <body>   <?php   require_once("http://localhost/test.inc");   echo $remember;   ?>   </body>   </html> ファイルB http://yyy.com/bbb.php   <?php   $remember=5577;   ?> 仮にファイルAに「require_once("http://yyy.com/bbb.php");」と書いて実行すると、空白のページが出力され、ページのソースは   <html>   <head>   </head>   <body> となっていました。 phpコードを実行するところで処理が中断されたようです。 空白ページのタイトルは「500-内部サーバーエラー」です。 同じサーバーの違うドメインで試しても、物理的に別のサーバーで試しても結果は同じでした。 ネットで調べた限りでは結構みんなすんなりとできたみたいなので、なおさら不思議で仕方がないです。 何が考えられるか、教えていただければと思います。

    • ベストアンサー
    • PHP

専門家に質問してみよう