Возможные ошибки при размещении сайта
Материал из "ИНСИС": Ответы на часто задаваемые вопросы
Часто при работе с WEB - сайтом возникают те или иные ошибки, например, ошибка "страница не найдена", "Internal Server Error". В данной инструкции мы приведем пример наиболее часто встречающихся ошибок и разберемся с ними.
Ошибками в протоколе HTTP называется такое поведение веб-сервера, когда он по какой-то причине не может успешно отправить клиенту запрашиваемый документ. Код ошибки сервер сообщает клиенту в HTTP-заголовке.
Каждая ошибка, выдаваемая веб-сервером, имеет код соответствующий классу возникшей ошибки. Коды ошибок (например 403 или 404) стандартизованы и подробно описаны в интернет-стандарте RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1). Вы можете обращаться к этому документу за подробным описанием конкретной ошибки как к первоисточнику.
Пример веб-запроса, выполненного вручную с помощью программы telnet:
- telnet www.profintel.ru 80
Trying 217.24.176.231...
Connected to www.profintel.ru.
HEAD / HTTP/1.1
Host: www.profintel.ru
HTTP/1.1 200 OK
Linux anatoliy 2.6.32-4-pve #1 SMP Thu Oct 21 09:35:29 CEST 2010 x86_64
Сервер выдал успешный код ошибки 200 (OK). Это был пример правильного запроса к существующему на сервере документу, который завершился удачно. В случае, если бы запрашиваемого документа на сервере не было, сервер повел бы себя иначе и выдал бы ошибку 404 (документ не найден):
- telnet www.profintel.ru 80
Trying 217.24.176.231...
Connected to www.profintel.ru.
HEAD /zzzzzz HTTP/1.1
Host: www.profintel.ru
HTTP/1.1 404 Not Found
Linux anatoliy 2.6.32-4-pve #1 SMP Thu Oct 21 09:35:29 CEST 2010 x86_64
Коды ошибок бывают положительными и отрицательными или успешными и неуспешными. Есть четыре типа кодов:
- 2xx — запрос выполнен успешно — сервер успешно отправил клиенту запрашиваемый документ;
- 3xx — запрос успешно перенаправлен — тоже положительный код. Он говорит о том, что запрос клиента был перенаправлен. Используется при работе с кэширующими серверами, а также в алгоритме, когда браузер клиента проверяет актуальность документа на сервере (дату создания, размер и так далее);
- 4xx — ошибка — документ не был отправлен клиенту, так как произошла критическая ошибка. Например, запрошенный документ не найден на сервере, доступ к документу запрещен и так далее;
- 5xx — ошибка сервера — критическая ошибка на сервере. Например, на сервере не смог нормально отработать скрипт пользователя.
Содержание |
Возможные ошибки при первичном размещении сайта
Вы разместили сайт на хостинге компании ИНСИС, загрузили файлы и получили ошибку 403 при попытке открыть сайт через браузер. Эта ошибка возникает в случае, если вы неправильно назвали индексный файл, который должен показываться при обращении к каталогу. Индексный файл может иметь названия index.html, index.htm, index.php, index.php3, index.phtml или index.shtml Также возможно, что в названии индексного файла присутствуют заглавные (большие) буквы. В UNIX-системах регистр букв в названиях файлов имеет значение.
Ошибка — показывается список файлов вместо первой страницы
Вы загрузили файлы на сервер, но вместо первой страницы видите список загруженных на сервер файлов. Вероятная причина ошибки в том, что вы загрузили файлы в каталог с разрешенным листингом и при этом у вас отсутствует индексный файл. Напомним, что размещать файлы нужно в каталоге www, который находится в каталоге с названием вашего домена.
Ошибка 403 «Доступ запрещен»
Данная ошибка возникает тогда, когда сервер не смог выполнить запрос по причине запрещенного доступа к файлу. Наиболее часто это возникает в трех случаях:
- В каталоге нет индексного файла (index.php, например) и при этом запрещен просмотр списка файлов в данном каталоге или на всем виртуальном сервере. Можно попробовать создать файл с именем index.html и посмотреть не исчезнет ли ошибка.
- Выставлены такие «права» доступа на файл, что веб-сервер Apache не смог прочитать файл на диске сервера. Попробуйте изменить права доступа на 644, например.
- Пользователь попытался обратиться к скрипту (в каталоге cgi-bin), на который выставлены неправильные права — нет права на чтение+исполнение (r+x) конкретного скрипта. Измените права на 755.
Обработка ошибки 404 «Файл не найден»
Ошибка 404 (Файл не найден) возникает тогда, когда пользователь запрашивает у веб-сервера документ, которого нет на диске. То есть, когда пользователь запрашивает несуществующий файл. Это наиболее «популярная» из всех ошибок. Вы можете наблюдать возникновение таких ошибок в файле error_log и учитывать это — отслеживать какие документы на сервере «не найдены» и корректировать неправильные ссылки из своих html-документов.
Для удобства посетителей сайта можно обрабатывать ошибки 404, заменяя стандартные ответы веб-сервера на свои страницы с нужным описанием причины возникновения ошибки и советами, что делать в этом случае. Также полезно разместить на такой странице карту вашего сайта или ссылку на поисковую систему.
Как обрабатывать ошибку 404. Создайте в каталоге www файл .htaccess и поместите в него следующую инструкцию для веб-сервера Apache:
ErrorDocument 404 /404.php
Затем создайте файл 404.php, в который поместите описание возникшей ошибки и советы о том, что делать в этом случае посетителю вашего сайта. Теперь пользователь, который наберет в своем браузере адрес несуществующей страницы, будет автоматически перенаправлен сервером на файл 404.php.
![]() | Внимание: особенность браузеров MS Internet Explorer версий 5.xx и 6.xx состоит в том, что если ваш файл ошибок будет иметь размер менее 512 байт, то браузер покажет пользователю не ваш файл, а свое собственное сообщение об ошибке 404. Самым простым решением в данной ситуации является заполнение файла ошибок пробелами так, чтобы его размер превысил 512 байт. Подробнее об этом вы можете прочитать на сайте компании Microsoft. |
Ошибка 500 «Internal Server Error»
Ошибка 500 «Internal Server Error» возникает в случае невозможности запуска скрипта, который вы разместили на сервере, в случае ошибок в скрипте, а также в случае, когда размещена неправильная инструкция в файле .htaccess. Этот список причин возникновения ошибки 500 не конечный, есть еще масса причин, по которым может возникнуть ошибка 500. Однако, упомянутые три случая встречаются наиболее часто.
Рассмотрим пример неверной инструкции в файле .htaccess. Если вы ошиблись в написании названия нужной директивы или параметров к ней, в файле error.log вы найдете примерно такую ошибку:
[Fri Jan 21 10:54:18 2011] [alert] [client 127.0.0.1] /home/users/h3000001/deviltoys.com/www/.htaccess:Invalid command 'DrectoryIndex', perhaps mis-spelled or defined bya module not included in the server configuration
Веб-сервер укажет вам, какую конкретно директиву он посчитал ошибочной — ее нужно будет исправить. В данном случае веб-сервер сообщил, что директивы DrectoryIndex он не знает. И действительно — нет директивы DrectoryIndex, есть DirectoryIndex. Имеет место "оЧеПятка".


