Я работаю над крошечным PHP-проектом для моего друга, и у меня есть настройка среды WAMP для локальной разработки. Я помню дни, когда ответ от моего локального Apache 2.2 был немедленным. Увы, теперь, когда я вернулся из долгого, долгого отпуска, я нахожу реакцию localhost
мучительно медленной.
Требуется около 5 секунд, чтобы получить страницу размером 300B HTML.
Когда я смотрю на диспетчер задач, httpd
процессы (2) используют 0% ЦП, и в целом мой компьютер не загружен (загрузка ЦП 0-2%).
Почему задержка такая высокая? Есть ли какие-либо настройки Apache, которые я мог бы настроить, чтобы поток работал с более высоким приоритетом или что-то в этом роде? Кажется, что он просто спит, прежде чем подать ответ.
apache-2.2
php
web-server
latency
Петер Перхач
источник
источник
localhost
разрешается DNS?ping localhost
должен вернуться мгновенно с127.0.0.1
.http://localhost/index.html
)? Если нет, то это может быть проблема PHP, а не проблема Apache.strace
иtcpdump
полезные инструменты для этого.Ответы:
Для меня установка
ServerName
свойства вhttpd.conf
фиксированные задержки (в худшем случае они были до 10 секунд):источник
If your host doesn't have a registered DNS name, enter its IP address here.
У меня была та же проблема.
Установка перенаправления localhost на 127.0.0.1 в файле hosts не помогла. Оптимизация сервера MySQL не помогла (InnoDB -> MyISAM, изменив многие директивы, связанные с кэшем, в my.ini).
Затем я использовал webgrind и сузил проблему до вызова «new PDO (...)». изменения
в
В DSN для PDO полностью решена проблема ! Время загрузки страницы увеличилось с 3000 мс до 16 мс .
Однако я действительно смущен, почему строка «127.0.0.1 localhost» в файле hosts не помогла.
источник
$link = new PDO('mysql:host=localhost;dbname=dp-ui;charset=utf8');
до$link = new PDO('mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8');
Проблема была с основным файлом настроек Apache
httpd.conf
.Я нашел это:
И поэтому я вошел в настройки Apache и увидел, в чем проблема: я настроил его как CGI, а не загружал его как модуль. Это вызвало
php-cgi.exe
запуск и выключение каждый раз, когда я сделал запрос. Это замедляло моеlocalhost
развитие.Я изменил настройки, чтобы загрузить PHP как модуль Apache, и теперь все работает отлично. :)
Спасибо всем за ваши усилия.
источник
У меня была та же проблема, и в конце концов я обнаружил, что она исходила из двух фактов:
http://myproject.local/
потому что я поставил строку127.0.0.1 myproject.local
в/etc/hosts
Проблема возникает из-за того, что
.local
tld зарезервирован для службы Bonjour, и это начиная с Mac OS X Lion (10.7).Изменение tld для чего-то еще решило проблему.
источник
Проверьте
/etc/hosts
правильность. Нравится:В месте
****
укажите ваше имя хоста.источник
127.0.0.1 something.atmy.localhost
и теперь запрос не занимает больше 20 секунд. Вместо этого местный апач отвечает немедленно. Не так много знаю о сетях. Я предполагаю, что доменное имя решается слишком медленно, потому что что-то настроено неправильно.По вашему
httpd.conf
обязательно установите настройкуHostnameLookups Off
.источник
В случае, если это кому-нибудь поможет, у меня возникла эта проблема, и она сводилась к тому, что поиск DNS был некорректным .
DNS-сервер на сервере был установлен на
127.0.0.1
- я изменил его, чтобы использовать общедоступные DNS-серверы Google, и это сделало его намного быстрее.источник
В вопросе есть тег apache-2.2, но если на WAMP с Apache 2.4 + PHP 5.5 на кого-то повлияла эта гнусная проблема , следующий ответ на SO помог мне:
https://stackoverflow.com/a/18786773/260080
источник