2010-08-03 4 views
0

Очень странная вещь. Я запускаю скрипт на новом сервере (он работает на моем текущем сервере и ноутбуке).Сервер на www.localhost.com занимает слишком много времени, чтобы ответить

Странная вещь, что я получаю ее только от работы (когда она увеличивается) до 1024 М (!). Он извлекает большой zip-файл и просматривает файлы, поэтому я подумал, что это нормально. Вместо этого сценария, заканчивающегося или заканчивающегося ошибками. Я получаю сообщение об ошибке в своем браузере:

The server at www.localhost.com is taking too long to respond.

Адрес: localhost.com? Веб-сервер всего localhost:9090, и я вижу, что Apache все еще работает. Может быть, Apache падает на мгновение, и он не может найти сервер? Но ничего о сбое apache в файлах журнала.

Это не проблема с сервером, это больше связано с моим PHP-скриптом и использованием памяти, я думаю, поэтому нет необходимости переходить на ошибку сервера.

В чем может быть проблема? Как я могу сузить дело, я здесь в убытке!

Сервер является сервером Windows Apache 2.2 с PHP версии 5.3.2. Майский ноутбук и другой рабочий сервер работают под управлением версии 5.3.0 и 5.3.1 для PHP.

Спасибо всем за любую помощь

+1

Вероятно, это функция «интеллектуального поиска адресов» Firefox. Можете ли вы попробовать использовать IE? –

+0

Просто попробовал на IE6, и он дает мне «Страница не может быть отображена». Не больше. :( – Abs

+0

Если ваш сценарий вызывает бесконечный цикл или поглощает память, вы можете попробовать перезапустить apache и посмотреть, устраняет ли это проблему. У меня это произошло несколько раз, когда скрипт, который я написал, поглощал всю память и или бесконечно Если вам нужна помощь, посмотрите на свой скрипт и попытайтесь сделать его более эффективным. –

ответ

1

Убедитесь, что,

ini_set('display_errors','On'); 
ini_set('error_reporting',E_ALL); 
ini_set('max_execution_time', 180); 
ini_set('memory_limit','1024MB'); 

я поп это в верхней части сценария и посмотрим, что выйдет. Он должен показывать вам ошибки и тому подобное.

Другое дело, вы проверили fopen и путь к файлу, который он загружает?

Abs said,

check files being zipped up can be zipped by PHP (permissions especially on a Windows OS with multi users)

+0

Интересно, я разместил выше в верхней части моего скрипта и вернулся с пустой страницей прямо сейчас ?! Для «1024mb» должны быть кавычки. Просто проверять все пути к файлу в сотый раз! – Abs

+0

Все пути к файлам также верны. Он даже не показывает ошибку! – Abs

+0

К сожалению, извините. Как странно. Вы пытались создать резервную копию своего apache httpd.conf и заменить его ванильным, а затем попробовать? Просто для устранения сервера как проблемы? Вы уверены, что '9090' - свободный порт? –

0

Как-то ваши системы потеряются и не обрабатывают localhost как локальный 127.0.0.1 адрес. Правильно ли настроен ваш файл hosts? Это, скорее всего, почему вы получаете «слишком долго, чтобы ответить» ошибка:

[email protected]:~$ host www.localhost.com 
www.localhost.com has address 64.99.64.32 

[email protected]:~$ wget www.localhost.com 
--2010-08-03 22:41:05-- http://www.localhost.com/ 
Resolving www.localhost.com... 64.99.64.32 
Connecting to www.localhost.com|64.99.64.32|:80... connected. 
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers. 
Retrying. 

www.localhost.com полно действует имя хоста, насколько система DNS обеспокоен.

0

Я не php-гуру любыми способами, но вы пишете извлеченные файлы во временное локальное хранилище, которое находится в пределах области приложения? Потому что, если вы этого не сделаете, я думаю, что происходит то, что приложение хранит zip-файл и извлекает файлы в памяти, а затем пытается их прочитать. Поэтому, если это большой zip и/или извлеченные файлы большие, что привело бы к огромному объему накладных расходов над накладными расходами, введенными вашими действиями по чтению и обработке.

Так что, если вы еще этого не сделали, я бы извлек файлы и записал их на диск в их собственной папке, удалю zip-файл в этот момент, а затем перебираю файлы в вашей вновь созданной директории и выполняю любые действия, которые вы делаете нужно на них.

1

Я тоже получал эту проблему, и ни один из этих сайтов не помог, пока я не стал рассматривать одно и то же для людей, использующих Internet Explorer. Способ, которым я исправил это, - открыть файл системных хостов, расположенный по адресу C:\Windows\System32\drivers\etc\hosts, а затем раскомментировать строку, в которой упоминается ::1, что необходимо для IPv6. После этого он работал нормально.

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