私は私の小さな友人のための小さなPHP=プロジェクトに取り組んでおり、ローカル開発用にWAMP環境をセットアップしています。ローカルApache 2.2からの応答がすぐにあった時代を覚えています。悲しいことに、私は長い長い休暇から戻ったので、localhost
からの応答が非常に遅くなっていることに気づきました。
300B HTMLページが表示されるまでに約5秒かかります。
タスクマネージャーを見ると、httpd
プロセス(2)がCPUの0%を使用しており、コンピューター全体に負荷がかかっていません(0〜2%のCPU使用率)。
なぜレイテンシーはそんなに高いのですか?スレッドをより高い優先度で実行するために調整できるApache設定はありますか?応答を提供する前に、単にスリープ状態になっているようです。
問題は、Apacheのメイン設定ファイルhttpd.conf
にありました。
私はこれを見つけました:
PHPをWindows上のApache 2.xと連携させるには3つの方法があります。PHPをハンドラとして実行できます、CGIとして、またはFastCGIの下。[Source]
そして、Apacheの設定を調べて、問題がどこにあるかを確認しました。モジュールとしてロードするのではなく、CGIとしてセットアップしました。これにより、リクエストを送信するたびにphp-cgi.exe
が起動およびシャットダウンしました。これは私のlocalhost
開発を遅くしていました。
PHP Apacheとして[〜#〜]モジュール[〜#〜]をロードするように設定を変更しましたそれはすべて完璧に動作します。
PHP Apache 2.xのモジュールをロードするには:
1)
httpd.conf
に次の行を挿入します
LoadModule php5_module "c:/php/php5Apache2.dll"
AddHandler application/x-httpd-php .php
(p.s.
C:/php
をパスに変更します。また、php5Apache **。dllを既存のファイル名に変更します)2)PHP .phpファイルのみの実行を制限するには、これを
httpd.conf
に追加します:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
3)php.iniのパスを
httpd.conf
に設定します(再起動後にエラーが発生した場合は、この行をもう一度削除してください)。
PHPIniDir "C:/php"
ご尽力ありがとうございました。
私にとっては、ServerName
プロパティをhttpd.conf
遅延を修正しました(最悪で最大10秒):
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your Host doesn't have a registered DNS name, enter its IP address here.
ServerName 127.0.0.1:80
私も同じ問題を抱えていました。
Hostsファイルでlocalhostリダイレクトを127.0.0.1に設定しても効果がありませんでした。 MySQLサーバーの最適化は役に立ちませんでした(InnoDB-> MyISAM、my.iniのキャッシュ関連のディレクティブの多くを変更)。
次に、web webgrindを使用して、問題を「新しいPDO(...)」呼び出しに絞り込みました。変化
mysql:Host=localhost;dbname=dp-ui;charset=utf8
に
mysql:Host=127.0.0.1;dbname=dp-ui;charset=utf8
pDOのdsnで問題を完全に解決!ページの読み込み時間00ミリ秒を超えて16ミリ秒に変更。
しかし、hostsファイルの「127.0.0.1 localhost」行が役に立たなかった理由を本当に混乱しています。
/etc/hosts
正しい。このような:
# hostname mobrglnx1 added to /etc/hosts by anaconda
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 *****
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 *******
場所****
ホスト名を入力します。
私は同じ問題を抱えていて、最終的にそれが2つの事実から来ていることを発見しました:
http://myproject.local/
に127.0.0.1 myproject.local
という行を入れたので、/etc/hosts
というURLを介してプロジェクトにアクセスしましたこの問題は、.local
tldがBonjourサービス用に予約されているために発生します。これはMac OS X Lion(10.7)以降です。
TLDを別のものに変更すると、問題が解決しました。
あなたのhttpd.conf
必ず設定してくださいHostnameLookups Off
。
それが誰かを助ける場合、私はこの問題を抱えており、煮詰めて不正なDNSルックアップになっています。
サーバーのDNSサーバーが127.0.0.1
に設定されました-GoogleパブリックDNSサーバーを使用するように変更しました。これにより、ヒープ全体が高速になりました。
質問にはタグApache-2.2がありますが、誰かがこの悪質な問題の影響を受けている場合WAMP with Apache 2.4 + PHP 5.5、SOに関する次の答えは私のためにトリックを行いました:
編集
httpd.conf
し、commentingこの行でCGIモジュールの読み込みを無効にします:LoadModule cgi_module modules/mod_cgi.so