2010-06-29 3 views
4

Самый простой сценарий:Очень медленно Apache на Windows 7

<?php echo 'hello'; 

занимает около 3 секунд, чтобы выполнить. Кажется, что большой промежуток времени Apache ждет, пока он не будет обслуживать веб-страницу.

Я попытался отключить антивирус, отключив ipv6 и более, но Apache все еще очень медленный. Что мне делать?

EDIT:

Дополнительная информация:

  • Apache 2.2
  • PHP 5.2
  • Это только динамические PHP файлы. Статические файлы (HTML) подаются сразу
  • Это не имеет ничего общего с системой спецификации, это новый ПК

Есть несколько PHP замечает в Apache журнал ошибок:

[Thu Jul 01 08:37:21 2010] [error] [client 127.0.0.1] PHP Notice: Undefined variable: ref in D:\\data\\o\\WebProjects\\elearning\\application\\modules\\clientarea\\controllers\\ViewController.php on line 578, referer: http://elearning/clientarea/view/course/teid/1/cid/1 
+0

Каковы ваши системные спецификации? Какой браузер и версия вы используете? – mcandre

+0

А какие версии Apache и PHP вы используете? –

+0

установите стек LAMP на виртуальной машине и проверьте там! (попробуйте перезагрузить wampstack, возможно, что-то пошло не так с установкой?) – Redlab

ответ

11

Обычно считается, что эта проблема вызвана вмешательством вашего брандмауэра или включением IPv6 на сетевых интерфейсах, однако эти решения не устранили проблему для меня. Оказывается, что по умолчанию для Windows 7 файл хостов в «C: \ Windows \ System32 \ Drivers \ Etc \ хостов» имеет следующую строку закомментирована:

# 127.0.0.1 localhost 

В моем случае, просто раскомментировать эту строку изменили производительность LOCALHOST назад к тому, что он должен был быть, вместо того, чтобы раздражать 3-5-секундное ожидание на каждой загрузке страницы. Помните, что для редактирования файла hosts вам нужно запустить текстовый редактор с правами администратора.

+0

Это просто спасло мою жизнь ... – Werner

+0

Рекомендовать комментировать строку :: 1. К сожалению, это настоящий позор для MS. Теперь мое интернет-соединение быстрее, чем раньше, из-за этой глупой вещи. – Codebeat

-8

Используйте Task Manager для уничтожения ненужных процессов.

Кстати, вы должны закончить свой скрипт ?>.

+4

Нет необходимости в трейлинг?> (Хотя некоторые люди могут спорить о том, действительно ли это хорошая практика) и могут вызвать проблемы в некоторых случаях, если есть пробелы после?> Поэтому я предпочитаю не иметь его –

+8

Не быть одним из тех ребят, но оставляя?? приемлемо и фактически рекомендовано рядом стандартов кодирования. Например, он не гарантирует, что конечные пробелы заканчиваются нажатием на выход перед заголовками, например. – Narcissus

+0

@ Narcissus Я тоже согласен! – Codex73

3

У меня была та же проблема. Изменение файла хоста не улучшило скорость загрузки страниц. После поиска часов я наконец нашел решение.

Я изменил мой файл httpd.conf, так что слушать адрес привязан к одному IP-адресу, а не всех доступных интерфейсов:

#Listen 80 
Listen 127.0.0.1:80 

Теперь все веб-страницы загружаемой мгновенно вместо ~ 10 секунд.

Надеюсь, что эта помощь.

Редактировать: на самом деле это не решило проблему, но все же было случайным образом медленным. Я должен признать, что я, наконец, переместил свой веб-сервер в виртуальную машину Linux, на которой я больше не наблюдал никакого медленного времени отклика.

0

В моем случае по умолчанию стандартные корневые документы C:\PathToApache\htdocs были переданы другим пользователям в локальной сети. Отключив общий доступ к этому каталогу, я улучшил производительность Apache. Теперь каждый запрос занимает меньше минуты.

Я надеюсь, что это поможет всем вам будущим читателям

0

Чисто, чтобы помочь любому, кто приходит через эту дилемму Apache медлительности на Windows, я решил это закомментировав ::1 localhost в C:\Windows\System32\drivers\etc\hosts и добавлении 127.0.0.1 127.0.0.1.

Я нашел, что мне все время приходилось перезагружать Apache в службах Windows, потому что мои веб-сайты будут постепенно реагировать медленнее и медленнее.

Апач htdocs папка не был разделен, изменяя Listen ... линии в httpd.conf, похоже, не работает, и я уже имел линию 127.0.0.1 localhost в моем C:\Windows\System32\drivers\etc\hosts файле, но ::1 localhost линии была непосредственно под ним.

Как @Erwinus рекомендует в своем комментарии на верхнем посту, я прокомментировал эту строку и от this post Я добавил строку 127.0.0.1 127.0.0.1. Время отклика сервера, по-видимому, значительно улучшилось.

1

Я использую Laravel Framework, то, что сработало для меня, изменяло директиву realpath_cache_size = 1M в php.ini. Это изменило время загрузки с 3 секунд до половины секунды!

realpath_cache_size = 1M

0

Единственное, что помогло мне это не-пометку в графе «зарегистрировать адреса этого подключения в DNS» в ipv4 параметров сетевого адаптера, кнопки в настройках DNS -> нижние две галочки ,

Смежные вопросы