• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Apache 2.2のmod_cacheについて)

Apache 2.2のmod_cacheでPHPページのロード時間を短縮する方法

このQ&Aのポイント
  • Apache 2.2のmod_cacheを使用してPHPのページのロード時間を短縮する方法について検討しています。
  • バーチャルホスト ディレクティブにCacheEnable diskを指定し、CacheRootでキャッシュファイルの保存先を指定しましたが、ロード時間の短縮には効果がありませんでした。
  • さらに、CacheIgnoreNoLastModを指定したり、CacheDirLevelsやCacheDirLength、CacheDefaultExpire、CacheMaxExpireなどのパラメータを試してみましたが、目的の結果を得ることができませんでした。

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

  • ベストアンサー
noname#259146
noname#259146
回答No.2

>PHPプログラムにできる限り手を加えたくないので、Apache側でこのヘッダーを無視するように設定することは可能でしょうか。 Apacheのモジュールであるmod_headers を利用します。 http://ameblo.jp/itboy/entry-11392756539.html 上記HPの内容が参考になるかと思います。

inshin
質問者

お礼

すみません、遅くなりました。 Header unset Expires Header unset Cache-Control でキャッシュされるようになりました。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#259146
noname#259146
回答No.1

mod_cache はローカルのコンテンツやプロキシされた コンテンツをキャッシュするために使われる RFC 2616 準拠の HTTP コンテンツキャッシュを実装しています。mod_cache の動作にはストレージを管理するモジュールが必要です。 上記が簡単な動作条件です、apacheの設定を行ってもコンテンツ側の設定も必要です。 注意点はヘッダー情報です。 設定事例は検索すればすぐに見つかります。 まずは http://blog.flatlabs.net/20110325_230111/ http://www.machu.jp/diary/20100626.html#p01 を読まれると良いでしょう。 後余談ですがDB側で対策(キャッシュ使う、クエリー処理方法)での対策も有効かと思います。

inshin
質問者

お礼

ご回答ありがとうございます。 ヘッダーを確認したところ、どうやらExpiresが常に過去の日次に指定されていることが原因のようです。 PHPプログラムにできる限り手を加えたくないので、Apache側でこのヘッダーを無視するように設定することは可能でしょうか。 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • apache2.0.64に後からmod_sslを入れているのですが…

    apache2.0.64に後からmod_sslを入れているのですが… apache2.0.64に後からmod_sslを入れているのですが、うまくいかず困っています。 apache2.0.64を導入後にSSLが必要になったので下記サイトを参考にしてあとからmod_sslを入れようと試みています。 http://d.hatena.ne.jp/hiro_nemu/20090516/1242436684 apacheはすでに起動してのですが、導入後はapachectlでstopできなくなりました。 原因はLoadModule ssl_moduleがloadできないようでコメントアウトすると今までどおりapacheを起動できます。 起動時のエラーは以下の通りです。 Syntax error on line 268 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/mod_ssl.so into server: /usr/local/apache/modules/mod_ssl.so: undefined symbol: ssl_cmd_SSLMutex ここからどうしていいかわからない状態です。 何でもかまわないのでご教授ください。

  • apache2+mod_ssl-apache2+OpenSSL

    apache2+mod_ssl-apache2+OpenSSLで、 /etc/apache2/conf/httpd.confに <IfModule mod_ssl.c> /ect/apache2/conf.d/ssl.conf </IfModule> を追記、 /ect/apache2/conf.d/ssl.confは <VirtualHost 192.168.1.21:443>などを環境に合った設定にしました。 そしてapache2を再起動したのですが、以下のようになりました。 [root@localhost root]# /etc/init.d/apache2 restart httpdを停止中: [失敗] httpdを起動中: [Wed Sep 07 20:39:37 2005] [warn] module ssl_module is already loaded, skipping [Wed Sep 07 20:39:37 2005] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.1.21 (check DNS) -- or specify an explicit ServerName [Wed Sep 07 20:39:37 2005] [warn] VirtualHost 192.168.1.21:443 overlaps with VirtualHost 192.168.1.21:443, the first has precedence, perhaps you need a NameVirtualHost directive [Wed Sep 07 20:39:37 2005] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.1.21 (check DNS) -- or specify an explicit ServerName (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443 no listening sockets available, shutting downUnable to open logs [失敗] /ect/apache2/conf.d/ssl.confを0バイトにすると、apache2は起動できました。 どの設定が悪いか分かる方いらっしゃいませんか?

  • apache2でブラウザのキャッシュ制御をしたい

    apache2でxls,docファイルののキャッシュ制御をしたく、以下のページを参考に http://tech.bayashi.net/pdmemo/browsercache.html /etc/apache2/apache2.conf に <Files ~ "\.(doc|xls)$"> Header set Pragma no-cache Header set Cache-Control no-cache Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT" </Files> と書き込んだところ Invalid command 'Header', perhaps mis-spelled or defined by a module not included in the server configuration と言ったエラーが出てしまいました。 apache2でheaderに相当するコマンドを教えていただけると助かります。 よろしくお願いいたします。

  • apache環境におけるmod_perlのインストール

    apacheをwindows98 SEにいれて、perlを動かそうとしているのですが、うまく行きません。 成功しているかたがいらっしゃったら、方法を教えてください。 僕が試した詳細は以下の通りです。 1)ファイルをダウンロードし、dllをModuleの下にコピーをし、 C:\Program Files\Apache Group\Apache\modules\ApacheModulePerl.dll 2)httpd.confを LoadModule perl_module modules/ApacheModulePerl.dll を追加しました。 3)その後、apache コマンドを打つと、 Syntax error on line 184 of c:program files/apache group/apache/conf/httpd.conf: Cannot load c:/progrm files/aapche group/apache/modules/ApacheModulePerl.dll nto server: の様なエラーメッセージが表示されてしまい、起動しません。 #おそらくapacheを再コンパイルする必要があると思うのですが、方法がわかりません。自分でも調べている最中ですが、やられた方がいらっしゃったら教えてください。 以上、御願いします。

  • ページキャッシュとは?

    ページキャッシュについてお聞きします。 「ページング方式」でwikiで調べましたところ以下の様にかかれてます。 「使われていない物理ページには、スワップ領域以外のファイルに対応するページキャッシュと何とも対応していない完全な未使用ページがある。」 スワップ領域以外のファイルって何なんでしょうか? スワップ領域にはプロセスとそれに必要なファイルだけがロードされるということでしょうか? ファールデータ(例えば、mp3ファイル)などはページキャッシュにロードされるのでしょうか?

  • アパッチが起動できません。

    アパッチの起動の仕方を教えて下さい。 状況は以下のようです。 アパッチをインストールしましたが、スタートメニューから 起動できないので、(1回現れて、すぐに消える。) MS‐DOSプロンプトを使って起動しようとしました。 (解説書の指示)ですが、どうしても起動しないのです。 インストール先は以下です。 C:\Program Files\Apache Group\Apache\Apache.exe MS‐DOSプロンプトで上記のApacheフォルダーまで移動 して、apache とか Apache とか、さまざま試しましたが 言うことを聞きません。(解説本にはapacheで起動。) 以下のメッセージがでます。 APACHE.EXE: cannot determine local host name. Use the ServerName directive to set it manually. マニュアルどおりのサーバー名を使えと言うことなのだろう と思いますが、マニュアルを辞書片手になぞってみたのです がよく分かりません。 どなたかご存知でしたなら、起動の仕方をお教えくださいませ。 Apache のフォルダーまで移動したあとの、入力が違うと 思うのですが・・・・。どうぞよろしくお願いします。 Win98SE使用。 Apache Ver1.3 となっていました。

  • Apacheのキャッシュ機能(?)

    NASをWebコンテンツ(静的コンテンツ)の共有領域として利用し、Webサーバを冗長化する予定です。 その際にコストを抑える目的でエントリーNASの導入を考えていますが、同時接続数の都合上 NAS上のデータのキャッシュをローカルで一定時間保持し、NASへのアクセスを減らしたいと考えて います。 Apacheに該当の機能はございますでしょうか?あればWebページ等参考になる情報と合わせて情報を 頂ければ幸いです。

  • apache インストールできません。

    初歩的な質問で申し訳ありません。 ローカル環境を設定したくて、apache1.3.29をインストールすると、 Syntax error on line 193 of c:/program files/apache group/apache/conf/httpd.conf: Cannot load c:/windows/system32/php4apache.dll into server: (126) 指定されたモジュールが見つかりません。 :Not the errors or messages above, and press the <ESC>key to exit.というエラーメッセージがでてきます。 IISは、入れていませんのでポートではないと思います。何度か、apacheを再インストールしています。レンタルサーバでxoops2.0.16jpを利用しています(xoops_trust_pathは設定してます)。 ネット上で似たような状況を探してみたのですが、何処を直せばよいのかわかりません。具体的に教えてください。 お手数かけますが、よろしくお願いします。

  • Apache Virtual Hostでの認証

    Apache の Virtual Host で認証をかけることはできますか? 以下のように設定したのですが、Apache起動時に Syntax error on line 1066 of /usr/local/apache2/conf/httpd.conf: AuthType not allowed here といわれます。 .htacessを使えば実現できるようですが、VirtualHostディレクティブ内で設定する方法はないでしょうか? <VirtualHost *:80> ServerAdmin test@example.com DocumentRoot /home/test ServerName test.example.com ErrorLog logs/test-error_log CustomLog logs/test-access_log common AuthType Basic AuthName "Restricted Files" AuthUserFile /home/test/.htpasswd Require user test </VirtualHost> よろしくお願いします。

  • ApacheとPHPの設定で

    Apacheの設定は「あなたの予想に反して、このページが見えているでしょうか?」と初期画面が出たのですが、PHPは「ページが表示されません」と出てしまい、 その後、http://localhost/につなげると、 Forbidden You don't have permission to access / on this server. Apache/2.0.54 (Win32) Server at localhost Port 80 と表示されました。 何がどう悪いのかわかりません。

    • 締切済み
    • PHP