Apache / Zend Framework - журнал ошибок - страница не найдена - PullRequest
2 голосов
/ 19 октября 2011

Это меня немного смущает.

Я использую сервер LAMP с Zend Framework. Я потратил много времени, просматривая журналы ошибок, чтобы попытаться устранить любые ошибки / ошибки программирования.

Большинство моих ошибок на сайте сделаны, но я посмотрел в общий журнал ошибок Apache:

/var/log/apache2/error.log

И я вижу много, почти постоянных, ошибок для «Файл не существует», таких как следующие (упрощено для краткости):

[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/explore
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/where-to-buy
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/products

И так далее. Эти папки не существуют, поскольку предполагается, что все запросы перенаправляются в файл index.php и обрабатываются Zend Framework. Фактические контроллеры и действия существуют, так что каждый собирается:

http://www.example.com/explore

или

http://www.example.com/where-to-buy/

получит правильную страницу через Zend Framework.

Но я не понимаю, почему происходят все эти ошибки?

Если вы считаете, что это может иметь какое-то отношение к файлу .htaccess, который перенаправляет большинство запросов (исключая таблицы стилей, документы, изображения и т. Д.) В сценарий index.php. Вот как выглядит моя шахта:

RewriteEngine On
# make sure all requests go to 'www' sub-domain
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

# Zend Framework, redirect requests to index.php
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Apache пытается сначала разрешить запрос через актуальный каталог, а затем передать запрос в index.php? Что вызывает ошибку запроса?

Я также не уверен, почему это сбрасывается в журнал ошибок по умолчанию вместо журнала ошибок или конкретного сайта. Другими словами, у меня есть журналы ошибок для каждого домена, такие как «example.com_error.log». Это может быть еще одним указанием на проблему. Это может быть последовательность, так как «error.log» устал от сайта «по умолчанию».

Спасибо за понимание! Fozzy

1 Ответ

0 голосов
/ 15 июня 2012

От Regilero:

тот факт, что это идет в журнал по умолчанию, является хорошим намеком на проблему, проверьте связанный файл access.log.Возможно, некоторые запросы к DNS-имени не обрабатываются на вашем виртуальном хосте или веб-клиентами, не использующими HTTP 1/1 (то есть без заголовка хоста) - regilero 19 октября 2011 г. в 22: 52

Iбыл в состоянии сравнить access.log с ошибкой.log, чтобы исследовать мои проблемы.

Это было некоторое время назад, но я полагаю, что проблема была из-за некоторого сценария, идущего непосредственно к серверу через IP-адрес и пытающегосяиспользуйте структуру каталогов одного из виртуально размещенных доменов.

...