Администратор. Базовый. Системные требования — Стоматология в Химках
Обмен информацией с использованием технологии rss поддерживается модулями
— определить минимальный объем памяти, необходимый для работы ядра продукта
— определить максимальный объем памяти, необходимый для работы ядра продукта
+ установить максимальный объем памяти, доступный при работе системы ядру продукта
Обмен информацией с использованием технологии RSS поддерживается модулями
+ Блоги
+ Форум
+ Информационные блоки
— Почта
— Статистика
Обработка файлов. htaccess невозможна
+ при использовании веб-сервера IIS
— в настройках веб-сервера (httpd. conf) установлена директива AllowOverride All
— PHP установлен как CGI
— PHP установлен как модуль Apache
— при использовании веб-сервера Apache
Если при установке продукта для выбора не доступна база данных Oracle это значит, что
+ в PHP не подключено расширение для работы с данной СУБД: php_oci8
— не настроена поддержка ODBC
— используется дистрибутив продукта, не соответствующий лицензионному ключу
Использование строки php_flag session. use_trans_sid off в файле. htaccess позволяет:
+ отключить подстановку параметра PHPSESSID=. в URL
— отключить сохранение файлов сессии
— указать, что для сохранения файлов сессии будет использоваться директория по умолчанию (т. е. /temp)
Библиотека FreeType необходима для корректной работы
+ механизма CAPTCHA
— диаграмм в модуле опросов
— графиков и диаграмм в модулях Статистики, Рекламы и др.
Если при установке продукта для выбора не доступна база данных MSSQL это значит, что
— установлена версия MSSQL 2000
+ не настроена поддержка ODBC
— устанавливается дистрибутив с поддержкой только MSSQL Express, а установка производится на полную версию СУБД MSSQL
Продукт поставляется
+ единым дистрибутивом для всех баз данных
— в различных версиях для разных баз данных
— различаются только дистрибутивы для Oracle XE/MSSQL Express и Oracle/MSSQL
PHP параметр upload_tmp_dir= определяет:
— директорию, в которую будут помещаться экспортируемые из системы файлы
+ директорию, в которую будут помещаться временные файлы, загружаемые в систему
— возможность загрузки документов на сайт
Возможность управления визуальными темами административного интерфейса реализована за счет использования:
— Java Script
— AJAX
+ CSS
— RSS
Параметр memory_limit может быть установлен
+ из скрипта с использованием функции ini_set()
+ непосредственно в файле php. ini
+ в файле. htaccess
— в настройках главного модуля
+ в файле настроек веб-сервера httpd. conf
PHP расширение Zlib compression используется
— для корректной работы механизма CAPTCHA
+ при работе модуля «Компрессия»
+ при работе «Системы обновлений»
— при построении и отображении графиков и диаграмм
При работе с системой в качестве веб-сервера может быть использован
— веб-сервер Apache или IIS
— только веб-сервер Apache
+ любой веб-сервер, который может выполнять PHP приложения
Если при настройке работы с сессиями в PHP не был установлен путь для сохранения файлов сессии, то:
— по умолчанию для сохранения файлов сессии будет использоваться директория /temp
+ по умолчанию для сохранения файлов сессии будет использоваться директория /tmp
— файлы сессии сохраняться не будут
— директорию, в которую будут помещаться экспортируемые из системы файлы директорию, в которую будут помещаться временные файлы, загружаемые в систему — возможность загрузки документов на сайт Возможность управления визуальными темами административного интерфейса реализована за счет использования.
Studizba. com
26.10.2019 4:49:40
2019-10-26 04:49:40
Источники:
Https://studizba. com/testy/1c-bitrix/66-administrator-bazovyy-sistemnye-trebovaniya. html
Администратор КП. Системные требования — СтудИзба » /> » /> .keyword { color: red; }
Обмен информацией с использованием технологии rss поддерживается модулями
— при построении и отображении графиков и диаграмм
+ при работе «Системы обновлений»
+ при работе модуля «Компрессия»
— для корректной работы механизма CAPTCHA
2. PHP параметр upload_tmp_dir= определяет:
+ директорию, в которую будут помещаться временные файлы, загружаемые в систему
— возможность загрузки документов на сайт
— директорию, в которую будут помещаться экспортируемые из системы файлы
3. Если при установке продукта для выбора не доступна база данных MSSQL это значит, что
— установлена версия MSSQL 2000
— устанавливается дистрибутив с поддержкой только MSSQL Express, а установка производится на полную версию СУБД MSSQL
4. При работе с системой в качестве веб-сервера может быть использован
— только веб-сервер Apache
+ любой веб-сервер, который может выполнять PHP приложения
— веб-сервер Apache или IIS
5. Параметр memory_limit может быть установлен
+ из скрипта с использованием функции ini_set()
+ в файле. htaccess
— в настройках главного модуля
+ непосредственно в файле php. ini
+ в файле настроек веб-сервера httpd. conf
6. Возможность управления визуальными темами административного интерфейса реализована за счет использования:
+ CSS
— AJAX
— Java Script
— RSS
7. Продукт поставляется
— различаются только дистрибутивы для Oracle XE/MSSQL Express и Oracle/MSSQL
+ единым дистрибутивом для всех баз данных
— в различных версиях для разных баз данных
8. Использование строки php_flag session. use_trans_sid off в файле. htaccess позволяет:
— отключить сохранение файлов сессии
+ отключить подстановку параметра PHPSESSID=. в URL
— указать, что для сохранения файлов сессии будет использоваться директория по умолчанию (т. е. /temp)
9. Библиотека FreeType необходима для корректной работы
— графиков и диаграмм в модулях Статистики, Рекламы и др.
+ механизма CAPTCHA
— диаграмм в модуле опросов
10. Использование строки ini_set(«memory_limit», «») в файле /bitrix/php_interface/dbconn. php позволяет:
— определить максимальный объем памяти, необходимый для работы ядра продукта
+ установить максимальный объем памяти, доступный при работе системы ядру продукта
— определить минимальный объем памяти, необходимый для работы ядра продукта
11. Если при установке продукта для выбора не доступна база данных Oracle это значит, что
— не настроена поддержка ODBC
+ в PHP не подключено расширение для работы с данной СУБД: php_oci8
— используется дистрибутив продукта, не соответствующий лицензионному ключу
12. Обмен информацией с использованием технологии RSS поддерживается модулями:
— Почта
+ Информационные блоки
+ Форум
— Статистика
+ Блоги
13. Обработка файлов. htaccess невозможна
— PHP установлен как CGI
+ при использовании веб-сервера IIS
— при использовании веб-сервера Apache
— в настройках веб-сервера (httpd. conf) установлена директива AllowOverride All
— PHP установлен как модуль Apache
14. Если при настройке работы с сессиями в PHP не был установлен путь для сохранения файлов сессии, то:
+ по умолчанию для сохранения файлов сессии будет использоваться директория /tmp
— файлы сессии сохраняться не будут
— по умолчанию для сохранения файлов сессии будет использоваться директория /temp
Обработка файлов.
Studizba. com
02.08.2020 15:46:53
2020-08-02 15:46:53
Источники:
Https://studizba. com/testy/1c-bitrix/81-administrator-kp-sistemnye-trebovaniya. html
Параметр memory_limit может быть установлен » /> » /> .keyword { color: red; }
Обмен информацией с использованием технологии rss поддерживается модулями
Сегодняшнюю небольшую заметку мы посвятим мессенджеру Telegram. Мы думаем ни для кого не будет секретом, что данный мессенджер сейчас очень популярен и что в рамках телеграма можно вести каналы, группы по интересам, чаты и конечно же просто общаться.
- 17 ноября 2017
Пример реализации консольного скрипта с подключением ядра 1С-БитриксДавно известно, что ряд операций выносят в отдельные php файлы и запускают из консоли, так как это зачастую удобнее, быстрее, да и в принципе на эти операции не нужен браузер. 24 июля 2017
MySQL ошибка: InnoDB Error Fetch of persistent statistics requested for tableПри разработке одного проекта, часто стали вылетать ошибки базы или просто бесконечная загрузка страницы. После попыток запустить сайт и перезапуска локального сервера — результат ноль. 19 июля 2017
Битрикс отправка писем с вложениями без танцев с бубномОтправка писем с аттачем в bitrix довольно распространенная задача, например, отсылать пользователям договора, анкеты, выписки и другие файлы. В интернете довольно много различных способов решения задачи.
- 13 июня 2018 в 17:08
Galinaced FrancisbaxVX : По моему мнению Вы пошли ошибочным путём. 31 мая 2018 в 15:03
Igorpi IgorpiNP : Номер не пройдет! 31 мая 2018 в 12:58
Galinaced FrancisbaxVX : Я извиняюсь, но, по-моему, Вы допускаете ошибку. Пишите мне в PM. 31 мая 2018 в 08:32
Alexeyced AlexeycedYO : Какие слова. фантастика
- 29 мая 2017
Обновление ответов сертификации и сайта Майское обновление сайта. 2 ноября 2015
Новый дизайн портала BXCert Сегодня мы выпустили новый дизайн нашего проекта. Портал стал выглядеть более современно, как нам кажется. 10 июня 2015
Новый дизайн и фильтр монитора фриланс бирж Рады сообщить, что мы выпустили новый дизайн раздела монитора проектов с фриланс бирж. Новый дизайн выполнен в минималистичном стиле, все проекты теперь оформлены более компактно.
О проекте
Проект BX Cert — портал web разработчиков. Данный ресурс будет полезен как новичкам в разработке, так и более опытным web разработчикам.
По всем вопросам Вы можете писать на почту:
- Общие вопросы: support@bx-cert. ru По вопросам рекламы: adv@bx-cert. ru
Актуальные вакансии
Мы собираем и храним информацию по всем вакансия web разработчиков и программистов PHP, Python и многих других специалистов.
Компании Ростелеком Информационные Технологии требуется Backend (node. js) разработчик в Кирове
20 сентября 2022
Компании Ситилаб, Научно-методический центр клинической лабораторной диагностики требуется Разработчик Битрикс24 в Москве
20 сентября 2022
Наш твиттер @ BX Cert
© 2013 — 2022 Помощь в сертификации 1С-Битрикс: поможем найти ответы на все вопросы сертификации 1С-Битрикс.
Любое использование материалов, размещенных на BXCert.
Карта сайта / Поддержать проект / Блог проекта
- 13 июня 2018 в 17:08
Galinaced FrancisbaxVX : По моему мнению Вы пошли ошибочным путём. 31 мая 2018 в 15:03
Igorpi IgorpiNP : Номер не пройдет! 31 мая 2018 в 12:58
Galinaced FrancisbaxVX : Я извиняюсь, но, по-моему, Вы допускаете ошибку. Пишите мне в PM. 31 мая 2018 в 08:32
Alexeyced AlexeycedYO : Какие слова. фантастика
- 17 ноября 2017
Пример реализации консольного скрипта с подключением ядра 1С-БитриксДавно известно, что ряд операций выносят в отдельные php файлы и запускают из консоли, так как это зачастую удобнее, быстрее, да и в принципе на эти операции не нужен браузер. 24 июля 2017
MySQL ошибка: InnoDB Error Fetch of persistent statistics requested for tableПри разработке одного проекта, часто стали вылетать ошибки базы или просто бесконечная загрузка страницы. После попыток запустить сайт и перезапуска локального сервера — результат ноль.
Битрикс отправка писем с вложениями без танцев с бубномОтправка писем с аттачем в bitrix довольно распространенная задача, например, отсылать пользователям договора, анкеты, выписки и другие файлы. В интернете довольно много различных способов решения задачи.
17 ноября 2017 Пример реализации консольного скрипта с подключением ядра 1С-БитриксДавно известно, что ряд операций выносят в отдельные php файлы и запускают из консоли, так как это зачастую удобнее, быстрее, да и в принципе на эти операции не нужен браузер.
Bx-cert. ru
30.05.2017 2:44:05
2017-05-30 02:44:05
Источники:
Https://bx-cert. ru/certification/bitrix/7/33/
Оптимальное использование MySQL_Управление веб-сервером Apache с помощью механизма .htaccess_ Резервное копирование баз MySQL_ Основы безопасности для веб-разработчиков
Оптимальное использование MySQL_Управление веб-сервером Apache с помощью механизма .htaccess_ Резервное копирование баз MySQL_ Основы безопасности для веб-разработчиков
В Яндексе |
В подавляющем большинстве случаев для хостинга используется веб-сервер Apache. Это программа, которая осуществляет прием http-запросов, их обработку и выдачу посетителю сервера конечного результата — html-документов, картинок, файлов и так далее. Домашняя страница проекта Apache — http://www.apache.org.
Apache может настраиваться через файл конфигурации, в который администратор помещает инструкции, непосредственно влияющие на функционирование веб-сервера. Обычно в условиях хостинга конечные пользователи не имеют доступа к файлу конфигурации (httpd.conf), так как не всегда это нужно и не все хостинговые компании могут такую возможность предоставить.
Учитывая эти реалии, а также стремясь добавить в Apache возможности более гибкой настройки, авторы этого веб-сервера реализовали допустимость децентрализованного управления конфигурацией с помощью использования специальных файлов, которые помещаются на диске прямо в веб-пространстве виртуального сервера. Эти файлы обычно называются .htaccess (обратите внимание на первый символ в названии файла — точку), но администратор сервера может менять имя таких файлов по своему желанию с помощью директивы AccessFileName в главном файле конфигурации. Действие команд из файла .htaccess распространяется и на подкаталоги того каталога, в котором этот файл размещен. Файл .htaccess перечитывается при каждом обращении к веб-серверу, так что изменения, внесенные в этот файл, вступают в силу немедленно.
Синтаксис файлов .htaccess в общем случае аналогичен синтаксису главного файла конфигурации. Однако, администратор может ограничивать для пользователей доступ к тем или иным директивам. То есть, несмотря на то, что команда, в принципе, может исполняться из .htaccess, администратор может запретить доступ к конкретной директиве. Учитывайте это при работе.
Список всех директив Apache можно посмотреть на сайте apache.org. В описании каждой директивы есть поле Context. Оно указывает на то, откуда может исполняться данная директива. Если в описании нужной команды в поле Context отсутствует упоминание о возможности использования из .htaccess, значит, Вы не сможете применять эту директиву. Теперь перейдем к практике. Сначала нужно создать в каком-то каталоге веб-сервера файл . htaccess, куда в дальнейшем и будут помещаться директивы. Создать файл можно как с помощью FTP-клиента, так и в unix shell (если он у Вас есть). Далее мы рассмотрим наиболее полезные и часто используемые пользователями хостинга директивы, которые могут быть вызваны из .htaccess.
DirectoryIndex — переопределение файла по умолчанию
Обычно принято файл, который открывается веб-сервером при обращении к каталогу, называть именем index.htm или index.html. Иногда возникает необходимость дать такому файлу другое имя. То есть, сделать так, чтобы при обращении к каталогу открывался не index.html, а, например, файл 123.php3 или /cgi-bin/index.pl. Для этого добавим в файл .htaccess такую строку:
DirectoryIndex 123.php3 /cgi-bin/index.pl
При обращении к каталогу Apache попытается найти один из указанных файлов и показать посетителю его содержимое, а если сделать этого не получится, сервер выдаст пользователю список файлов в каталоге.
Options -Indexes — запрет выдачи листинга пустого каталога
Иногда нужно сделать так, чтобы в случае отсутствия в каталоге файла, который показывается по умолчанию, листинг, то есть список файлов в каталоге, не выдавался. В этом случае можно попробовать добавить в .htaccess такую строчку:
Options -Indexes
В этом случае вместо списка файлов в каталоге посетитель получит HTTP ошибку 403 — access forbidden. Это ошибку можно обработать и показать пользователю какую-нибудь красивую страничку вместо неинформативного сообщения от веб-сервера.
ErrorDocument — обработка ошибок
Иногда в работе сервера возникают ошибки. Здесь речь идет не о сбоях в работе программного обеспечения, а об ошибках в терминах интернет-стандарта на протокол HTTP — RFC2616. Вообще, в RFC ошибки называются «Status Codes», но мы их будем называть именно ошибками — так привычнее. Теория такова: клиент присылает на сервер HTTP-запрос, сервер выполняет какие-то операции и возвращает клиенту код возврата и некоторые данные, текстовые или двоичные — вот что происходит каждый раз, когда Вы с помощью своего браузера обращаетесь к любому веб-серверу. Код возврата — это трехзначное число, на основании которого можно судить о том, насколько успешно был обработан запрос. Так, например, коды возврата, начинающиеся с цифр 1, 2 или 3, являются положительными. А вот если веб-сервер вернул Вам код, начинающийся на 4 или 5, то явно произошла какая-то ошибка. Код 4xx выдается в случае возникновения ошибки в процессе обработки запроса, а 5xx означает критическую ошибку или то, что запрос не может быть выполнен вообще.
Вот список ошибок 4xx и 5xx :
400 — Bad Request
401 — Unauthorized
402 — Payment Required
403 — Forbidden
404 — Not Found
405 — Method Not Allowed
406 — Not Acceptable
407 — Proxy Authentication Required
408 — Request Time-out
409 — Conflict
410 — Gone
411 — Length Required
412 — Precondition Failed
413 — Request Entity Too Large
414 — Request-URI Too Large
415 — Unsupported Media Type
500 — Internal Server Error
501 — Not Implemented
502 — Bad Gateway
503 — Service Unavailable
504 — Gateway Time-out
505 — HTTP Version not supported
Детальное описание каждого кода можно найти в RFC2616.
При возникновении ошибки 4xx или 5xx посетитель Вашего сайта увидит в браузере сообщение от сервера, которое вряд ли можно назвать предельно понятным рядовому пользователю. Apache предоставляет возможность выдать вместо аскетичного технического текста, не изобилующего деталями, свою страницу, где Вы можете человеческим языком объяснить пользователю, что произошло и что делать.
Рассмотрим примеры. Допустим, пользователь обратился к документу, которого не существует на сервере. Такое может произойти по разным причинам: где-то осталась ссылка на уже удаленный Вами документ, кто-то дал пользователю неправильную ссылку или пользователь допустил ошибку, когда набирал адрес страницы в браузере. В этом случае сервер выдаст ошибку 404 (Not Found) и текст вида «The requested URL такой-то was not found on this server». Можно выдать вместо этой строчки документ в дизайне Вашего сервера, в котором написать что-то типа «Произошла ошибка — запрошенный документ не найден. Попробуйте уточнить адрес, воспользоваться поисковой системой или начать просмотр сайта с первой страницы». Такое сообщение пользователь поймет гораздо лучше. Более того, пожалуй, выдача дружественных, понятных любому посетителю сообщений является хорошим тоном.
Итак, создаем документ, который будем показывать пользователю в случае возникновения ошибки 404. Назовем файл missing.html, напишем туда все те добрые слова, которыми мы хотим успокоить пользователя, и поместим этот файл в веб-пространство. Допустим, это файл будет доступен как http://Ваш_Сервер/missing.html. В файл .htaccess помещаем такую строчку:
ErrorDocument 404 /missing.html
Все! Теперь при возникновении ошибки 404 пользователь увидит именно Ваш файл. Еще можно скриптом или с помощью SSI вставить в выдаваемый документ какую-нибудь служебную информацию, которую пользователь должен будет привести, если решит обратиться за комментариями к Вам по e-mail.
Таким образом можно обработать практически все негативные коды возврата. Конечно, можно обработать и позитивные коды, но смысл этого не до конца ясен, равно как непонятно в какой ситуации это может пригодиться :). Стоит упомянуть об одной особенности браузера MS Internet Explorer версии 5. Если файл missing.html (так мы его назвали в нашем случае) будет иметь размер менее 1Кб, IE5 покажет пользователю не missing.html, а свое собственное сообщение об ошибке 404. Более подробно об обработке ошибок можно прочитать в документации по Apache на странице «Custom error responses». AddType — переопределение типов данных и кодировок
У многих пользователей интернет, когда они начинают чуть глубже изучать технологии, возникает вопрос типа : «А как браузер узнает, какие документы надо показывать как html, какие как текст и как сделать так, чтобы определенные документы браузер не показывал сразу, а выдавал меню, позволяющее сохранить файл на диск?».
Для этого применяются так называемые MIME types. Каждому типу данных, которые обрабатываются веб-сервером, можно задать определенный тип. Этот тип описывается набором символов, отражающим тип используемых данных. Вот, например, таблица типов нескольких наиболее часто используемых видов данных:
Описание данных Расширение файлов MIME type Картинки gif gif image/gif
Картинки jpeg jpeg jpg jpe image/jpeg
VRML-файлы wrl vrml model/vrml
HTML-документ html htm text/html
Обычный текст asc txt text/plain
Архив ZIP zip application/zip
Файл MS Word doc application/msword
Файл MS Excel xls application/vnd. ms-excel
Файл MS Power Point ppt application/vnd.ms-powerpoint
Файл Adobe Acrobat pdf application/pdf
Flash-документ swf application/x-shockwave-flash
Работает это так: веб-сервер знает, что, например, файлам с расширением .html соответствует тип text/html. В ответ на пришедший запрос html-файла сервер среди прочих http-заголовков возвращает поле Content-type, в котором и указывается тип данных для текущего документа.
Пример:
# telnet host.ru 80
Connected to host.ru.
HEAD /index.html HTTP/1.1
Host: host.ru
HTTP/1.1 200 OK
Date: Wed, 18 Jul 2001 14:51:10 GMT
Last-Modified: Mon, 02 Jul 2001 07:41:37 GMT
Connection: close
Content-Type: text/html
Браузер, получив такой заголовок, знает, что документ с типом данных text/html это не что иное, как обычная веб-страница на языке HTML. Зная это, браузер обрабатывает принятый документ как HTML и показывает его пользователю именно с учетом этого. А вот если бы тип данных был, например, application/zip, браузер понял бы, что это ZIP-архив, который пользователю нужно предложить сохранить на диск.
То есть, браузеры имеют представление о том, каким образом нужно обрабатывать конкретные типы данных. Естественно, набор типов данных, известный браузерам, ограничен. Обусловлено это тем, что со временем появляются все новые и новые приложения для интернета, которые зачастую работают с новыми типами данных, которых раньше просто не существовало. Например, еще лет пять назад не было типа audio/mpeg, которому соответствуют музыкальные файлы в формате mp3. Появился новый тип и в более поздних версиях браузеров он по умолчанию известен. Кстати, добавить новый тип в браузер можно и вручную.
Хорошо, с выдачей типов и обработкой их браузерами мы разобрались. А теперь появился вопрос: как сказать серверу о том, что нужно выдавать такой тип данных, который он в данный момент не знает? Ведь хоть Apache по умолчанию и хранит описания более чем трехсот типов данных, но ведь появляются все новые и новые! Или вот еще задачка: как сделать так, чтобы файлы с расширением . ext показывались в браузерах посетителей как HTML-документы? Для этого и существует директива AddType, которую Вы можете использовать в файлах .htaccess.
Допустим, Вы хотите, чтобы файлам с расширением .ext соответствовал тип данных text/html. Для этого добавим в .htaccess такую строчку:
AddType «text/html» .ext
После того, как это будет сделано, Apache будет работать с той функциональностью, которой мы добивались.
Существует некий набор типов данных, который описывает большинство используемых в интернете форматов. Получить его можно на странице ftp://ftp.isi.edu/in-notes/iana/assignments/media-types.
Еще одна очень важная и востребованная возможность реализуема с использованием AddType. Речь идет о явном указании кодировки для, например, HTML-документов. Допустим, все страницы Вашего сервера выполнены в кодировке windows-1251, все хорошо, все работает. Однако, вдруг понадобилось сделать подраздел сервера например на финском языке. Вы создали у себя на компьютере соответствующие страницы, текст которых написан по-фински, загрузили на сервер в специальный каталог (например, http://www. Ваш_сервер.ru/fin) и, казалось бы, все сделано, но буквы национального алфавита показываются браузером неверно.
В таких случаях нужно явно указывать кодировку, в которой выполнены соответствующие страницы. Без этого браузер не поймет как нужно отображать национальные символы, которые находятся в документе. Более того, если для всего сервера выдается кодировка windows-1251, естественно, финские страницы будут выданы браузеру тоже с кодировкой windows-1251 в заголовке, что приведет к стопроцентно неправильному отображению.
Итак, учимся выдавать нужную кодировку. Как уже говорилось, документы на другом языке лежат у нас в подкаталоге /fin. Заходим в него, создаем там файл .htaccess и добавляем туда строчку:
AddType «text/html; charset=iso-8859-1» .html
В результате для всех файлов с расширением .html в каталоге /fin будет выдаваться такой http-заголовок:
> telnet host.ru 80
Connected to host.ru.
HEAD /fin/test.html HTTP/1.1
Host: host. ru
HTTP/1.1 200 OK
Last-Modified: Wed, 18 Jul 2001 16:29:30 GMT
Connection: close
Content-Type: text/html; charset=iso-8859-1
Кодировку iso-8859-1 в данном случае мы использовали потому что финский язык это именно iso-8859-1. Это общий набор символов для большинства западноевропейских языков. Узнайте какой charset должен выдаваться для нужного Вам языка и воспользуйтесь AddType.
Auth* — защита паролем
Еще можно использовать .htaccess для установки пароля на доступ к определенным страницам или разделам Вашего сайта. Делается это путем создания в нужном подкаталоге файла .htaccess, в который пишем следующее:
AuthType Basic
AuthName «this is a test of protected realm»
AuthUserFile /path/to/file/with/passwords
require valid-user
Кроме того, нужно создать файл с паролями, путь к которому указывается в качестве параметра к директиве AuthUserFile. Пароли в этом файле должны быть шифрованными, чего можно достигнуть с помощью программы htpasswd, входящей в поставку Apache. Если Вы набрали в unix shell команду htpasswd и система сообщила что такого файла нет, выясните у своего хостинг-провайдера где же находится htpasswd. Однако, допустим, htpasswd у нас доступен:
> htpasswd
Usage:
htpasswd [-cmdps] passwordfile username
htpasswd -b[cmdps] passwordfile username password
-c Create a new file.
Здесь мы не будем рассматривать все параметры этой команды, но Вы можете сами прочитать подробности запустив htpasswd в unix shell или ознакомившись с соответствующей страницей документации по Apache. Итак, изначально у нас еще нет файла с паролями и нам нужно его создать:
> htpasswd -c passwords test1
New password:
Re-type new password:
Adding password for user test1
>
После выполнения данной операции htpasswd создаст файл passwords, в котором окажется пользователь test1 и его пароль в зашифрованном виде:
> cat passwords
test1:zgco1KREjBY8M
>
А теперь мы хотим добавить еще одного пользователя. Так как файл с паролями у нас уже есть, мы просто не будем использовать ключ ‘-c’:
> htpasswd passwords test2
New password:
Re-type new password:
Adding password for user test2
> cat passwords
test1:zgco1KREjBY8M
test2:eN3uA6t0kzV1c
>
Сейчас попробуйте обратиться к тому каталогу, в котором мы размещали .htaccess — браузер спросит у Вас пароль, чего мы и добивались. Пока не будет введен правильный логин и пароль, посетитель не увидит соответствующей страницы. В качестве параметра к директиве require мы указали valid-user. Это означает, что любой пользователь, который есть в используемом файле с паролями, может иметь доступ к защищенному ресурсу. Однако, согласитесь, удобно иметь все пароли в одном файле, а права на конкретные ресурсы давать только определенным пользователям. Это тоже реализуемо. Например, мы хотим дать доступ только пользователю test2. Делаем так:
require user test2
Еще можно объединить пользователей в группы и давать доступ не конкретным логинам, а группам. Это можно сделать с помощью директивы
AuthGroupFile:
AuthGroupFile /path/to/file/with/groups
В файле /path/to/file/with/groups создаем группы примерно так:
group1: test1 test5
group2: test2 test4
group3: test1 test3
Соответственно, директиву require будем использовать так:
require group group3
Механизмы ограничения доступа, которые реализованы в Apache, позволяют очень гибко управлять правами для пользователей и групп, что является очень важной возможностью. Если углубиться в изучение предмета, Вы сможете узнать и то, что логины и пароли, используемые для авторизации, можно хранить не только в файлах, но и в простейших базах данных формата BerkeleyDB — почитайте документацию по директиве AuthDBGroupFile. Еще для хранения данных авторизации можно использовать практически любую СУБД (MySQL или PostgreSQL, например), но это уже выходит за рамки данной статьи.
Order, Allow, Deny — запрет доступа для определенных посетителей
Признайтесь, ведь наверняка хоть один раз у Вас было желание запретить кому-то заходить на Ваш веб-сервер? И это тоже можно сделать с помощью . htaccess:
ВведениеВ процессе предоставления услуг хостинга мы обращаем внимание на наиболее часто встречающиеся ошибки, которые совершают пользователи при разработке своих виртуальных серверов. Одним из «тяжелых» мест для типичного веб-мастера является работа с MySQL-сервером. Обычно изучение принципов функционирования SQL и методов работы с базами данных ведется по литературе, из которой выбираются только актуальные на момент чтения вещи — как соединиться с базой, как сделать запрос, как обновить информацию или добавить новую запись в базу данных и так далее. Такой подход, конечно, дает желаемый результат — интерфейсы веб-сайта пользователя в итоге оказываются интегрированными с базой данных. Однако не всегда пользователи задумываются о том, насколько оптимально работает их база, как можно оптимизировать происходящие при работе с MySQL процессы и каково будет функционирование виртуального сервера при увеличившейся нагрузке, «наплывах» пользователей в результате, например, «раскрутки» сайта. Эта статья поможет Вам оптимизировать работу с СУБД MySQL. Изложенный материал не претендует на детальное описание оптимизации MySQL вообще, а лишь обращает внимание на наиболее часто совершаемые пользователями ошибки и рассказывает о том, как их избежать. Более подробно узнать о тонкостях настройки MySQL можно на специализированных страницах, ссылки на которые приведены в конце этой статьи.
Какие данные нужно хранить в MySQL
Не старайтесь поместить в базы данных всю информацию, которая у Вас есть. Например, не нужно хранить там картинки, хоть MySQL это и позволяет. Помещая в базу данных двоичные образы графических файлов, Вы только замедлите работу своего сервера. Прочитать файл с картинкой с диска гораздо проще и, с точки зрения потребляемых ресурсов, экономичнее, нежели соединиться из скрипта к SQL, сделать запрос, получить образ, обработать его и, выдав нужные http-заголовки, показать посетителю веб-сервера. Во втором случае операция выдачи картинки потребует в несколько раз больше ресурсов процессора, памяти и диска. Также стоит помнить о том, что существуют механизмы кэширования веб-документов, которые позволяют пользователю экономить на трафике, а при динамической генерации контента Вы фактически лишаете своих посетителей этой удобной возможности.
Вместо картинок лучше хранить в MySQL информацию, на основе которой можно генерировать ссылки на статические картинки в динамически создаваемых скриптами документах.
Оптимизация запросов
В ситуациях, когда реально требуется получить только определенную порцию данных из MySQL, можно использовать ключ LIMIT для функции SELECT. Это полезно, когда, например, нужно показать результаты поиска чего-либо в базе данных. Допустим, в базе есть список товаров, которые предлагает Ваш интернет-магазин. Выдавать весь список товаров в нужной категории несколько негуманно по отношению к пользователю — каналы связи с интернет не у всех быстрые и выдача лишних ста килобайт информации зачастую заставляет пользователей провести не одну минуту в ожидании результатов загрузки страницы. В таких ситуациях информацию выдают порциями по, допустим, 10 позиций. Неправильно делать выборку из базы всей информации и фильтрацию вывода скриптом. Гораздо оптимальнее будет сделать запрос вида
select good, price from books limit 20,10
В результате, MySQL «отдаст» Вам 10 записей из базы начиная с 20-й позиции. Выдав результат пользователю, сделайте ссылки «Следующие 10 товаров», в качестве параметра передав скрипту следующую позицию, с которой будет делаться вывод списка товаров, и используйте это число при генерации запроса к MySQL.
Также следует помнить, что при составлении запросов к базе данных (SQL queries) следует запрашивать только ту информацию, которая Вам реально нужна. Например, если в базе 10 полей, а в данный момент реально требуется получить только два из них, вместо запроса
select * from table_name
используйте конструкцию вида
select field1, field2 from table_name
Таким образом, Вы не будете нагружать MySQL ненужной работой, занимать лишнюю память и совершать дополнительные дисковые операции. Также следует использовать ключ WHERE там, где нужно получать информацию, попадающую под определенный шаблон. Например, если нужно получить из базы поля с названиями книг, автором которых является Иванов, следует использовать конструкцию вида
select title from books where author=’Иванов’
Также есть ключ LIKE, который позволяет искать поля, значения которых «похожи» на заданный шаблон:
select title from books where author like ‘Иванов%’
В данном случае MySQL выдаст названия книг, значения поля author у которых начинаются с ‘Иванов’.
Ресурсоемкие операции
Вместе с тем следует помнить, что существуют операции, выполнение которых само по себе требует больших ресурсов, чем для обычных запросов. Например, использование операции DISTINCT к функции SELECT вызывает потребление гораздо большего количества процессорного времени, чем обычный SELECT. DISTINCT пытается искать уникальные значения, зачастую производя множество сравнений, подстановок и расчетов. Причем, чем больше становится объем данных, к которому применяется DISTINCT (ведь Ваша база со временем растет), тем медленее будет выполняться такой запрос и рост ресурсов, требуемых для выполнения такой функции, будет происходить не прямо пропорцонально объему хранимых и обрабатываемых данных, а гораздо быстрее.
Индексы
Индексы используют для более быстрого поиска по значению одного из полей. Если индекс не создается, то MySQL осуществляет последовательный просмотр всех полей с самой первой записи до самой последней, осуществляя сопоставление выбранного значения с исходным. Чем больше таблица и чем больше в ней полей, тем дольше осуществляется выборка. Если же у данной таблицы существует индекс для рассматриваемого столбца, то MySQL сможет сделать быстрое позиционирование к физическому расположению данных без необходимости осуществлять полный просмотр таблицы.
Например, если таблица состоит из 1000 строк, то скорость поиска будет как минимум в 100 раз быстрее. Эта скорость будет еще выше, если есть необходимость обратиться сразу ко всем 1000 столбцам, т.к. в этом случае не происходит затрат времени на позиционирование жесткого диска.
В каких ситуациях создание индекса целесообразно:
Быстрый поиск строк при использовании конструкции WHERE
Поиск строк из других таблиц при выполнении объединения
Поиск значения MIN() или MAX() для проиндексированного поля
Сортировка или группировка таблицы в случае, если используется проиндексированное поле
В некоторых случаях полностью теряется необходимость обращаться к файлу данных. Если все используемые поля для некоторой таблицы цифровые и формируют левосторонний индекс для некоторого ключа, то значения могут быть возвращены полностью из индексного дерева с намного большей скоростью.
Если выполняются запросы вида
SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
и существует смешанный индекс для полей col1 и col2, то данные будут возвращены напрямую. Если же созданы отдельные индексы для col1 и для col2, то оптимизатор попробует найти наиболее ограниченный индекс путем определения того, какой из индексов может найти меньше строк, и будет использовать этот индекс для получения данных.
Если у таблицы есть смешанный индекс, то будет использоваться любое левостороннее совпадение с существующим индексом. Например, если есть смешанный индекс 3-х полей (col1, col2, col3), то индексный поиск можно осуществлять по полям (col1), (col1, col2) и (col1, col2, col3).
Как Вы наверняка знаете, для работы с MySQL-сервером необходимо предварительно установить с ним соединение, предъявив логин и пароль. Процесс установки соединения может продолжаться гораздо большее время, нежели непосредственная обработка запроса к базе после установки соединения. Следуя логике, надо избегать лишних соединений к базе, не отсоединяясь от нее там, где это можно сделать, если в дальнейшем планируется продолжить работу с SQL-сервером. Например, если Ваш скрипт установил соединение к базе, сделал выборку данных для анализа, не нужно закрывать соединение к базе, если в процессе работы этого же скрипта Вы планируете результаты анализа поместить в базу.
Также можно поддерживать так называемое persistent (постоянное) соединение к базе, но это возможно в полном объеме при использовании более сложных сред программирования, чем php или perl в обычном CGI-режиме, когда интерпретатор соответствующего языка разово запускается веб-сервером для выполнения пришедшего запроса.
Вообще, почти все хостинг-провайдеры производят резервное копирование всех файлов пользователей. Однако, не стоит забывать о том, что провайдеры делают backup, в основном, для себя, на случай аварии у себя. Именно по этой причине пользователи в условиях хостинга могут, конечно, рассчитывать на восстановление в случае удаления каких-то данных по вине самого пользователя, но вовсе не факт, что провайдер сделает восстановление MySQL-базы сразу по получению запроса. Лучше делать для себя копию и в случае чего ее использовать. Можно даже периодически копировать этот свой backup на другую, не провайдерскую машину — так надежнее, на всякий случай.
Сделать копию всех статических HTML- и прочих документов просто. Так же несложно периодически «откладывать в сторонку» и копии скриптов. Гораздо более сложной представляется задача создания копии (далее backup) такой динамичной структуры, как база данных MySQL. Основные трудности, которые возникают перед администратором размещенного на хостинге сайта, обычно бывают такие:
Отсутствие физического доступа к файлам базы данных. Как правило, провайдеры хостинга предоставляют возможность работы с базой данных только через скрипты или специальный mysql-клиент, но не дают прав на доступ непосредственно к файлам, в которых содержатся данные из MySQL-базы.
Отсутствие у администратора знаний о том, как вообще надо делать backup. Обычно такая задача возникает только, когда «клюнул жареный петух». То есть, в случае аварии, вторжения хакеров или в других внештатных ситуациях. Веб-мастеры просто не готовы к немедленному backup и начинают судорожно изучать документацию по MySQL, а время идет…
В случае, если веб-мастер не владеет в достаточной мере навыками работы со специализированными утилитами из пакета MySQL, могут возникать трудности, связанные с ограничениями, налагаемыми хостинг-провайдером на пользовательские аккаунты. Например, если база очень большая и ее размер превышает лимит на доступную пользователю память (RAM), backup сделать будет сложно. Нужно пользоваться тонкими настройками утилит резервного копирования, что иногда тоже вызывает трудности на практике.
Итак, данная статья предназначена для того, чтобы облегчить работу по созданию резервных копий MySQL-баз. Если Вы — веб-мастер, и работаете с MySQL, наверняка, информация, содержащаяся в данной статье, будет Вам полезна.
Как сделать копию базы MySQL
Существует программа mysqldump, позволяющая быстро и просто производить операции по созданию резервных копий баз MySQL. Также mysqldump дает возможность делать очень тонкие настройки для управления процессом создания резервных копий баз данных или отдельных таблиц. Можно сказать, что mysqldump — это основной инструмент, которым Вам придется пользоваться в том случае, если Вы будете делать backup MySQL. Сразу возьмем простую задачу, которую будем решать с помощью mysqldump, и разберемся, что к чему. Есть хостинг, есть база данных DBNAME, которую выделил Вам хостинг-провайдер. Есть хост HOST, на котором размещен сервер MySQL, логин LOGIN к нему, порт PORT, на котором работает сервер, а также пароль PASS. Имея все эти данные, можно сделать dump (дамп, копию) базы DBNAME так (выполняем в unix shell):
> mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt
После выполнения данной команды в файле dump.txt у нас будет копия MySQL-базы DBNAME. Это произойдет только в том случае, конечно, если все параметры Вы зададите верно, в соответствии с настройками своего хостинга. Сразу нужно сказать, что программа mysqldump производит вывод результатов прямо Вам на STDIN, то есть, на экран. Нужно перенаправлять вывод в какой-либо файл. Например, как в данном случае — » > dump.txt «. Если этого не сделать, а база большая, Вы получите на экран все те мегабайты информации, которые в ней содержатся.
Немного расскажем о том, что же делает mysqldump. Эта программа создает сценарий восстановления Ваших данных. То есть, вывод mysqldump — это не какие-то абстрактные и нечитаемые двоичные данные, а осмысленный текст сценария. Например, если в Вашей базе была таблица test, в которой было поле test2 с типом данных integer и одна-единственная запись «1111», то mysqldump создаст примерно такой сценарий:
Есть расхожее мнение, что обеспечение безопасности есть дело некоего всезнающего системного администратора, который следит за всем, видит все и в случае чего «примет меры». Однако при этом программист и дизайнер (а зачастую это один человек) забывают о том, что работать их проект будет не в какой-то закрытой офисной сети, где есть только проверенные сотрудники, а в реально публичной всемирной сети Интернет. Доступ к ней, а значит и к Вашему сайту, имеют не только те, для кого предназначается Ваш веб-ресурс, но и нечистые на руку люди, развлекающиеся хакеры подросткового возраста и прочая не всегда желательная публика со всего света.
Подробнее
Как показывает практика, есть некий набор правил, относящихся к обеспечению безопасности, которые нужно соблюдать как при разработке веб-проекта, так и в процессе дальнейшей его эксплуатации. Попробуем рассмотреть наиболее частые ошибки и потенциально уязвимые места:
Установка готовых скриптов производства третьих лиц
Безопасность при программировании
Безопасность при работе с СУБД
«Правильные» пароли и разграничение доступа персонала
Внимательное чтение документации по всему, что Вы используете
Security updates
Резервные копии всего проекта
Установка готовых скриптов производства третьих лиц
Установка готовых скриптов производства третьих лиц
Многие веб-мастера, желая придатьть своему сайту интерактивность, устанавливают у себя различные скрипты — гостевые книги, веб-конференции, формы для отправки почты в адрес администрации сайта, скрипты для проведения опроса мнения посетителей, локальные баннерные системы и прочие готовые скрипты, коллекции которых в изобилии присутствуют в Интернете. Посетив, например, этот сайт, можно найти несколько сотен готовых скриптов на perl или php.
Потенциальная опасность заключается в том, что единожды скачав такой скрипт и установив его на своем сайте, веб-мастер начисто забывает о том, что необходимо следить за выходом новых версий используемого скрипта. Надо знать, что новые версии — это не только новые возможности, которые, может быть, не очень-то Вам и нужны. Выпуск новых версий часто сопровождается исправлением ошибок, допущенных в предыдущих версиях. Может быть, Вас устраивает, как работает тот скрипт, что Вы установили и используете, но в нем могут содержаться ошибки, которые крайне негативно влияют на уровень безопасности Вашего веб-ресурса. Не желая использовать новую версию, веб-мастер тем самым подвергает свой проект опасности. Существуют организованные группы хакеров, основной деятельностью которых является исследование наиболее популярных скриптов на предмет выявления ошибок. Далее эти люди публикуют результаты своей работы в Интернете, и любой, кому по какой-то причине не понравился Ваш сайт, может, если увидит у Вас один из «дырявых» скриптов, использовать описанную где-то уязвимость для атаки на Ваш веб-ресурс.
Вывод — если принято решение использовать кем-то написанный скрипт, возьмите за правило подписываться на список рассылки с уведомлениями о новых версиях используемого продукта и следите не только за тем, какие новые возможности в нем появляются, но и за тем, какие были исправлены ошибки. Если появилось сообщение о найденной уязвимости, немедленно установите новую версию. Обычно авторы оперативно реагируют на обнаружение уязвимостей и сразу выпускают обновленные версии.
Безопасность при программировании
Обычно при создании сайта используют программы на языках Perl или PHP. Такой выбор обуславливается тем, что эти языки имеют множество функций и возможностей, специально предназначенных для разработчиков веб-приложений. И Perl, и PHP имеют в документации статьи, специально предназначенные для тех, кто хочет больше знать о безопасном программировании. Имеет смысл ознакомиться с этими документами и очень серьезно отнестись к рассматриваемым там вещам.
Иногда бывает полезным задействовать в работе веб-проекта систему управления базами данных (СУБД). Появилось довольно большое количество не очень сложных в настройке и использовании СУБД, которые пользуются популярностью у хостинговых компаний и их клиентов. Однако при использовании СУБД также нужно помнить о безопасности. Рассмотрим наиболее типичные security-проблемы веб-разработчиков, которые используют СУБД MySQL. Это наиболее популярная СУБД для хостинга, которой пользуются более половины разработчиков веб-ресурсов.
Если у Вас свой собственный MySQL-сервер под Вашим администрированием, нужно серьезно подойти к изучению системы ограничения прав доступа, которая реализована в MySQL. В этой СУБД используются так называемые Access Control Lists (ACLs), позволяющие управлять соединениями, запросами и другими операциями, которые пользователи могут пытаться делать. Очень важным моментом является установка адекватной политики доступа к хранимой в базе данных информации, когда доступ разрешается только к той информации, которая реально нужна. То есть, если у Вас есть два пользователя, которые могут совершать запросы к базе данных и данные, которыми они пользуются, не пересекаются, нужно запретить доступ одного пользователя к данным другого. Если у одного из пользователей каким-то образом будет похищен пароль, злоумышленник получит доступ только к тем данным, которые принадлежат соответствующему пользователю MySQL.
Нельзя никому давать пароль суперпользователя (обычно он называется root)! Не используйте это имя для обращения к базе из скриптов, которые обеспечивают функционирование непосредственно веб-сервера. Да, root по умолчанию имеет доступ ко всем данным и это очень удобно, но это может и погубить всю Вашу работу, если будет украден его пароль или получен доступ под правами root с использованием «дырки» в каком-либо из скриптов. Заведите дополнительного пользователя, наделите его необходимыми правами (как это сделать описано тут) и пользуйтесь этим аккаунтом для обращения к базе там, где реально не требуются права суперпользователя.
Не храните в базе пароли в виде открытого текста. В MySQL есть специальная функция, которая позволяет создавать шифрованные с помощью алгоритма md5 пароли. Для того, чтобы получить шифрованный пароль, можно воспользоваться такой командой в интерактивном режиме работы с MySQL:
update mysql. user set Password=password(‘your_pass’) where user=’web’;
В данном случае ‘your_pass’ является паролем, который будет зашифрован, а ‘web’ — имя пользователя, которому будет установлен такой пароль.
Дополнительные рекомендации по генерации паролей можно прочитать в соответствующем разделе этой статьи.
Никогда не доверяйте данным, которые вводят пользователи на веб-сервере. Проверяйте строки, которые Ваши скрипты получают из веб-форм. Например, в форме есть поле, в которое нужно ввести количество заказываемого в Вашем интернет-магазине товара. Вы предполагаете, что пользователь введет туда число. А на самом деле туда может быть введено не «5», что-то типа «5; drop database mysql». Конечно, это уж слишком трагичный пример, но и его вполне можно использовать, если Ваш скрипт производит соединение к базе под пользователем root. Менее «опасный» пример — select * from passwords — если у Вас есть, допустим, такая табличка с паролями. Проверяйте все данные, которые приходят с веба. Помещать в MySQL непроверенные данные очень опасно.
Иногда очень полезным (особенно для начинающих пользователей и разработчиков) является сделать веб-интерфейс для администрирования MySQL. Если Вы воспользовались утилитами типа phpMyAdmin, не забудьте запаролировать доступ к такому интерфейсу. Будет очень неприятно, если такой веб-интерфейс найдут хакеры и просто сделают drop database, а таких случаев было очень много. Это, кстати, является одной из наиболее частых ошибок пользователей при работе с MySQL — Обратите особое внимание. Вообще, делая какой-то административный интерфейс, не надейтесь, что никто не найдет URL вида http://www.domain.ru/myadminweb. Найдут. Лучше поставьте на доступ к такому интерфейсу пароль. Это вполне можно сделать средствами веб-сервера apache.
Стоит также понимать, что изложенные тезисы применимы не только к MySQL, но и к любой другой СУБД. Отличия могут быть в синтаксисе команд и деталях.
«Правильные» пароли и разграничение доступа персонала
Не придумывайте слишком простых паролей. Не делайте паролей, состоящих из простых слов. Существуют огромные словари, которые могут быть использованы хакером при подборе украденного шифрованного пароля или при подборе пароля в online-режиме. Например, пароль ‘application’ гораздо менее устойчив к перебору, чем, скажем, пароль ‘hjsdg123’. Стоит делать действительно сложные пароли. Например, ‘J3g45HrrT’, ‘Kfgd45h445’ или ‘K4j5uff34’. Чем более сложным кажется такой пароль, тем лучше.
Если на Вашем сайте предусмотрен административный интерфейс для сотрудников компании или просто команды администраторов сайта, обратите внимание на разграничение прав доступа к информации. Делайте доступной для конкретного пользователя только ту информацию, с которой он реально должен работать. Если, например, человек отвечает за раздел «Книги» Вашего интернет-магазина, не стоит без веских на то причин давать ему управлять и разделом «Видеокассеты».
Это называется принципом минимальных прав, когда рядовым сотрудникам выдаются только те права, которые им реально необходимы. Да, конечно, есть администраторы, которые получают большие или даже все возможные права, но для рядовых сотрудников этого делать не стоит. Если Вы будете придерживаться принципа минимальных прав, при краже пароля пользователя ущерб, который может быть нанесен, ограничится данными только одного раздела, а к другим частям административного интерфейса Вашего проекта доступ злоумышленник получить не сможет.
Внимательное чтение документации по всему, что Вы используете
Если Вы решили установить у себя какой-то программный продукт, воспользоваться тем или иным языком программирования, реализовать применение той или иной технологии, возьмите за правило читать документацию в как можно более полном объеме. Не нужно пользоваться полноценной документацией только как справочником. Иногда «между строк» в самых неожиданных местах описаний и инструкций даются очень полезные советы по безопасности.
Следить за security updates
Современный хостинг является довольно сложной технологией, состоящей из десятков или даже сотен программных продуктов, которые обмениваются друг с другом данными, работают в одном адресном пространстве, и следить за тем, чтобы все версии программ регулярно обновлялись, не содержали security ошибок и «дырок», должны специалисты хостинг-провайдера. Как правило, провайдеры успевают обновлять используемое ПО, так что Вам остается следить за своими программами.
Существуют списки рассылки, посвященные безопасности, на которые имеет смысл подписаться. Также следует периодически посещать сайты соответствующей тематики и просматривать там анонсы найденных уязвимостей. Да, зачастую то, что Вы увидите, не будет Вам полезно. Однако замеченное однажды скромное сообщение о «дырке» в используемой Вами, например, веб-конференции позволит сохранить много нервов.
Если уж кто-то воспользовался «дыркой» на Вашем сайте и, например, удалил все его содержимое, будет очень просто восстановить работоспособность всего проекта в считанные минуты, если Вы периодически создавали резервные копии. Делайте архивы всего контента виртуального сервера и скачивайте их на свой компьютер. Если хостинг-провайдер предлагает возможность централизованного создания backup-копий сайта, обязательно пользуйтесь этой возможностью.
Сами Вы можете создавать архив проекта примерно таким методом:
Допустим, есть каталог /home/user, содержащий следующие файлы:
host# ls -la
-rw-r—r— 103941 11 May 15:46 calc. csv
-rw-r—r— 274 21 May 10:02 index.html
-rw-r—r— 1865 12 May 17:18 index2.wml
Требуется создать архив, содержащий все эти файлы и имеющий уникальное имя, отражающее время и дату его создания. Выполним такую команду:
host# tar -zcf `date «+%Y-%m-%d-%H:%M:%S»`.tgz /home/user/
Итог :
host# ls -la
-rw-r—r— 55933 30 May 13:19 2001-05-30-13-19-45.tgz
-rw-r—r— 103941 11 May 15:46 calc.csv
-rw-r—r— 274 21 May 10:02 index.html
-rw-r—r— 1865 12 May 17:18 index2.wml
То есть, появился файл 2001-05-30-13-19-45.tgz, который содержит сжатые архиваторами tar/gzip файлы из каталога /home/user. Как поступить дальше с архивом — решайте. Можно скачать его на свой компьютер и хранить локально.
Если есть желание сделать действительно серьезную систему хранения всех копий всех версий файлов, воспользуйтесь CVS. После установки и настройки CVS на локальном сервере для разработчиков Вы сможете настроить автоматическую публикацию обновленных файлов на веб-сервер через scp, например, если Ваш хостинг-провайдер предоставляет такую возможность. Так обновляется в том числе и этот сайт 🙂
Заключение
Автор данной статьи не пытается дать советы на все случаи жизни или раскрыть все темы, актуальные при работах по обеспечению безопасности. Здесь описываются лишь наиболее частые ошибки современных веб-мастеров и даются советы как улучшить то, с чем Вы каждый день сталкиваетесь. Также даны ссылки для самостоятельного изучения. Тема безопасности гораздо шире, чем кажется на первый взгляд. Интересоваться соответствующими вопросами нужно постоянно, а не останавливаться на прочтении этой страницы. Только так можно быть в курсе наиболее актуальных вопросов обеспечения security при разработке своего проекта.
Яндекс.Новости
Режимы работы PHP на VPS
Помощь 0 Регистрация Вход
- Домены
- Хостинг
- Сайты
- Личный кабинет
- VPS и серверы
- Заказ и управление VPS
- Работа с сервером
- Установка программного обеспечения
- SSL-сертификаты
- Общие вопросы
- Как работает mod_php
- Как работает PHP CGI и FastCGI
- Как работает PHP FPM
PHP — это скриптовый язык программирования. Он используется для создания сайтов и поддерживается на большинстве серверов. PHP может взаимодействовать с веб-сервером в разных режимах:
- mod_php — дополнительный модуль Apache, который работает как часть веб-сервера;
- Fast CGI — может взаимодействовать с Nginx или Apache. Также работает со связкой Nginx+Apache;
- PHP FPM — альтернатива FastCGI, которая может взаимодействовать с Nginx.
О принципах работы каждого из режимов расскажем ниже.
Как работает mod_php
mod_php — это модуль Apache. Он обрабатывает все PHP-скрипты самостоятельно, не прибегая к другим модулям. Благодаря этому запросы выполняются быстрее. Также mod_php позволяет вводить переменные PHP в файле .htaccess. Этот модуль подходит для сайтов, на которых нужно обрабатывать преимущественно динамические данные.
mod_php имеет следующие недостатки:
- всем пользователям нужно выдавать права веб-сервера: без прав невозможно внести изменения на сервере;
- низкий уровень безопасности: невозможно определить пользователя, который запустил какой-либо процесс, так как все процессы выполняются под именем apache;
- медленно обрабатываются статические данные;
- ошибки в скриптах могут помешать работе всего сервера.
Как работает PHP CGI и FastCGI
CGI — это стандарт, который определяет, как веб-сервер должен взаимодействовать со скриптами. Используется редко, так как считается устаревшим.
FastCGI — это стандарт, который создан на базе CGI. Он определяет, как веб-сервер должен взаимодействовать со скриптом.
Принципы работы FastCGI:
- скрипт загружается в память один раз, а затем он попадает в цикл обработки запросов от HTTP-сервера;
- процесс-скрипт обрабатывает запросы по одному, в порядке очереди.
FastCGI одинаково работает со статическими и динамическими данными. Также он имеет следующие преимущества:
- каждый скрипт запускается от имени отдельного пользователя. Если запустить небезопасный PHP-скрипт, он не повлияет на файлы других пользователей сервера;
- пользователь имеет все права на выполнение скриптов в пределах своего WWW-домена;
- каждый пользователь сервера может выбирать версию PHP;
- сервер не останавливается, если в скрипте есть ошибка;
- можно вносить переменные в файл . htaccess.
FastCGI имеет два недостатка:
- меньшая производительность (если сравнивать с mod_php),
- медленная обработка статических данных (если нет связки с Nginx).
Как работает PHP FPM
FPM создан как альтернативная версия FastCGI. Это единственный модуль, который подходит для чистого Nginx.
Основные преимущества FPM:
- нет необходимости в веб-сервере Apache,
- низкое потребление оперативной памяти,
- быстрая обработка статических данных благодаря совместимости с Nginx.
Единственный недостаток PHP FPM — это отсутствие поддержки файла .htaccess. Из-за этого нужно настраивать правила на стороне Nginx.
Популярные статьи
- Как указать (изменить) DNS-серверы для домена
- Я зарегистрировал домен, что дальше
- Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
- Что такое редирект: виды и возможности настройки
- Как создать почту со своим доменом
Домены
- Регистрация доменов
- Освободившиеся домены
- Промоакции
- Перенос домена
- Переадресация
- Магазин доменов
Сайты
- Конструктор сайтов
- Сайты на WordPress
Хостинг сайтов
- Хостинг
- Windows хостинг
VPS и серверы
- VPS хостинг
- Windows VPS
- Аренда серверов
Дополнения
- SSL-сертификаты //=url(‘/free-mail’)?>
Сервисы
- Бесплатный хостинг
- Whois
- Связь с администратором домена
- Определить свой IP-адрес
- Проверка порта на доступность
- Узнать местоположение по IP
- Проверить доступность сайта
Поддержка
- Справка
- Стоимость услуг
- Способы оплаты
- Связаться с нами
Компания
- О компании
- Документы
- Офис
- Дата-центр
- Новости
- Блог
- Акции и скидки
© 2DOMAINS — регистрация доменов
- Домены оптом
- Географические домены
- Кириллические домены
- Административные домены
- Национальные домены
- Новые домены первого уровня
- Где купить домен дешево
- Дешевый хостинг
- CloudVPS
- Хостинг для сайта-визитки
- Хостинг с PHP и MySQL
- Надежный хостинг
- Самые дешевые домены
- Хостинг WordPress
- Хостинг для 1С-Битрикс
- Хостинг для Drupal
- Хостинг для Joomla
- Хостинг для MODX
- Хостинг для OpenCart
- Антивирус для хостинга
- Бэкап сайта
- Защита от DDoS-атак
- Хостинг с ISPmanager
- SSL бесплатно
- AlphaSSL
- AlphaSSL WildCard
- ExtendedSSL
- GlobalSign-сертификаты
- Comodo / Sectigo — сертификаты
- GeoTrust-сертификаты
- Symantec-сертификаты
- Thawte-сертификаты
- TrustWave-сертификаты
- Wildcard-сертификаты
Политика обработки
персональных данных
Тех. поддержка: [email protected]
Указанные на сайте цены могут не включать стоимость применимых комиссий.
При заказе услуги стоимость может быть уточнена исполнителем.
Что такое веб-сервер Apache и как им пользоваться 🍂
12 апреля 2021
Хостинг
23 637
Время чтения ≈ 11 минут
Интернет невозможно представить без всевозможных сайтов. Все они работают за счёт веб-серверов – программ, отвечающих за передачу данных от физических хранилищ до браузеров пользователей.
Веб-сервер работает в качестве «посредника» между пользователем и физическим сервером. При получении запроса от посетителя он ищет необходимую страницу в каталоге с сайтом и отправляет её в ответ. Браузер принимает полученный файл, обрабатывает его и отображает на экране посетителя.
Передача информации веб-сервера выполняется по протоколу HTTP (HyperText Transfer Protocol), изначально созданного для работы с HTML-страницами. Уже позже стало возможным отправлять через HTTP файлы любых типов. В последнее время преобладают сайты, работающие через HTTPS. Это улучшенная версия HTTP, которая отличается от предшественника тем, что поддерживает шифрование трафика TLS/SSL между пользователем и сервером.
Звание самого популярного веб-сервера в мире уже более 25 лет удерживает за собой Apache HTTP Server, который принято называть сокращенно Apache или «Апач». Сегодня программа обслуживает более 40% всех существующих серверов, включая проекты IBM, eBay, PayPal и Facebook.
Рассмотрим причины популярности Apache подробнее. Это не только пополнит копилку знаний об интернет-технологиях, но и поможет сделать правильный выбор веб-сервера для размещения сайта в будущем.
Что это такое
Apache – это свободное программное обеспечение для размещения веб-сервера. Он хорошо показывает себя в работе с масштабными проектами, поэтому заслуженно считается одним из самых популярных веб-серверов. Кроме того, Apache очень гибок в плане настройки, что даёт возможность реализовать все особенности размещаемого веб-ресурса.
История создания
Apache HTTP Server был выпущен в 1995 году разработчиком Робертом Маккулом из Университета штата Иллинойс (UIUC). Продукт возник как доработанная версия другого HTTP-клиента – NCSA HTTPd 1.3, созданного Робертом ранее.
Основой для модификации стали многочисленные «патчи» или программные «заплатки» для NCSA. Именно отсюда (а не от индейского племени апачей) изначально и происходит название Apache. Оно расшифровывается как «a patchy server» или «сервер с патчами».
Разработкой и поддержкой продукта с 1999 года занимается организация Apache Software Foundation (ASF) – сообщество экспертов-энтузиастов со всего мира. Этим же некоммерческим фондом была создана официальная лицензия ПО – Apache License.
В 2000 году ASF представило новую версию Apache 2.0 с полностью переработанной архитектурой, свободной от кода NCSA. С этого момента веб-сервер развивается по двум основным веткам – 1.х и 2.х.
Как устроен Apache
Архитектура
Apache состоит из ядра и динамической модульной системы. Параметры системы изменяются с помощью конфигурационных файлов.
Ядро
Ядро Apache разработано Apache Software Foundation на языке C. Основные функции — обработка конфигурационных файлов, протокол HTTP/HTTPS и загрузка модулей. Ядро может работать без модулей, но будет иметь ограниченный функционал.
Модульная система
Модуль – отдельный файл, подключение которого расширяет изначальный функционал ядра. Они могут включаться в состав ПО при первоначальной установке или подгружаться позже через изменение конфигурационного файла.
Большинство из них отвечает за определенный аспект обработки клиентского запроса – поддержку различных языков программирования, безопасность, кэширование, аутентификацию и т.д. Таким образом, большая задача разбивается на несколько фаз, каждую из которых решает отдельный, узкоспециализированный модуль.
Для Apache существует больше 500 модулей. Многие популярные веб-приложения сразу выпускаются в виде модуля к Apache. Например, ISPmanager и VDSmanager.
Конфигурация
Система конфигурации Apache работает на текстовых файлах с прописанными настройками. Она подразделяется на три условных уровня, для каждого из которых имеется свой конфигурационный файл:
- Уровень конфигурации сервера (файл httpd.conf) – основной конфигурационный файл. Действие распространяется на весь механизм веб-сервера.
- Уровень каталога (файл .htaccess) – дополнительный конфигурационный файл. Его директивы охватывают только каталог, где расположен файл, а также вложенные подкаталоги.
- Уровень виртуального хоста (файл httpd.conf> или extra/httpd-vhosts.conf).
Обычно конфигурационные файлы Apache находятся в папке «conf», а дополнительные конфигурационные файлы во вложенной в нее папке «extra». Внести изменения можно как через редактирование самого файла, так и через командную строку.
Виртуальные хосты
Веб-хост – это компонент сервера, отвечающий за обслуживание одного размещенного на нем объекта (сайта, виртуального сервера). Система виртуальных хостов Apache позволяет одновременно запускать несколько проектов с одного IP-адреса.
В Apache можно установить настройки модуля и ядра, а также вводить лимиты на потребление серверных ресурсов (трафик, RAM, CPU) для каждого виртуального хоста в отдельности. Это технологическая основа всего механизма веб-хостинга.
Достоинства и недостатки Apache
Плюсы
- Доступность. Это программное обеспечение с открытым исходным кодом. Значит, его может бесплатно использовать или модифицировать любой желающий. Разработчики по всему миру создают конфигурации и модули веб-сервера для своих специфических нужд. По этой же причине Apache регулярно получает полезные дополнения, расширяющие его базовый функционал.
- Гибкость настройки. Apache использует несколько конфигурационных файлов для управления веб-сервером. Это позволяет настроить ПО под узконаправленные задачи.
- Функциональность. У Apache динамическая модульная структура. Можно быстро подключать дополнительный функционал в виде скачиваемых модулей, даже без обращения к внешним источникам. Это позволяет решать целый комплекс важнейших задач в области безопасности, кэширования, редактирования URL, распределения нагрузки. Благодаря гибридным модулям MPM, Apache может одинаково успешно обслуживать статический и динамический контент. Есть возможность оперативно отключать ненужные модули и ускорять работу веб-сервера
- Кроссплатформенность. Apache работает как на Windows, так и на всех Unix-подобных системах. Администрирование веб-сервером не имеет серьёзных отличий на разных ОС. Индивидуален только процесс установки и расположение директорий с файлами программы.
- Совместимость. Apache работает на базе скриптовых или веб-ориентированных языков (PHP, Python, Tcl, Ruby, Perl, ASP), что делает его совместимым с самым широким спектром баз данных и серверного ПО. Многие веб-приложения и инструменты сразу выходят со средствами запуска из-под Apache в виде PHP-модуля. Веб-сервер, поддерживает технологии FastCGI и CGI, позволяющие пользоваться программными продуктами на объектно-ориентированных языках Java, sh, C, C++.
- Масштабируемость. Подходит для веб-ресурсов любого масштаба. Apache хорошо работает как на одностраничном сайте (лендинге), так и на многостраничном сайте с ежедневной аудиторией в десятки тысяч посетителей.
- Поддержка пользователей. Apache удерживает первенство популярности среди веб-серверов с 1996 года. За прошедшее время для него создана обширнейшая база документации – как официальной, так и созданной сторонними разработчиками. Готовые, подробно описанные руководства можно найти практически на любой сценарий.
Минусы
- Производительность. Скорость обработки запросов Apache несколько ниже, по сравнению со своими конкурентами. Гибкость веб-сервера в некоторых случаях вредит производительности. Например, Apache приходится каждый раз считывать несколько конфигурационных файлов на сервере, затрачивая системные ресурсы и время. Но этот и многие другие факторы можно исправить, отключив ненужные опции. Правда в таком случае функциональность Apache не будет сильно отличаться от других веб-серверов.
- Сложная конфигурация повышает уязвимость. Возможность подключать модули в Apache это не всегда преимущество. Чем больше модулей, тем сложнее становятся настройки. Соответственно, больше шансов допустить критические пробелы в контуре безопасности.
- Синтаксис конфигов.. В файлах с параметрами программы используются разнообразные переменные, поэтому настройка и управление веб-сервером может показаться сложной новичкам. Упростить администрирование Apache можно с помощью бесплатного инструмента Apache GUI.
- Излишний функционал. Даже без дополнительных модулей Apache предоставляет пользователям массу возможностей. Правда, большинство использует лишь небольшую часть базового функционала приложения. Поэтому часто после установки приходится тратить время на отключение «лишних» модулей.
Альтернативы Apache
NGINX
Nginx (Engine-X, «энжинкс») — второе по популярности веб-серверное приложение и главный конкурент Apache. Было выпущено в 2004 году под открытой лицензией BSD. Изначально приложение создавалось для решения проблемы масштабирования, известной как «10 тысяч соединений» (С10к). Это значит, что до Nginx веб-сервер не был способен одновременно обрабатывать пользовательские запросы более чем с 10 000 подключений.
У этого веб-сервера асинхронная событийно-ориентированная архитектура (event-driven), которая позволяет добиваться быстрого масштабирования даже при минимальных ресурсах. Вместо того, чтобы создавать новый процесс для каждого пользовательского запроса, Nginx обрабатывает множество соединений в едином потоке.
Nginx отлично подходит для веб-проектов с высокой посещаемостью. Однако веб-сервер не может самостоятельно работать с динамическим контентом. Поэтому его чаще используют для статических веб-сайтов или например, в связке с PHP-FPM или Apache HTTP Server как прокси-сервер.
Lighttpd
Веб-сервер Lighttpd (произносится «лайти») — кроссплатформенное программное обеспечение на языке С. Выпущено в 2003 году под лицензией BSD. «Лайти» работает на операционных системах Windows и семейства Unix/Linux. Приложение поддерживает технологии FastCGI, SCGI, HTTP proxy, Auth, перезаписи URL и AJP (с версии 1.5).
Как и Nginx, изначально «Лайти» создавалось для решения проблемы «С10к». Неудивительно, что его специализация — веб-проекты с большой посещаемостью. В числе компаний, использующих Lighttpd, такие гиганты, как Google, Википедия, Яндекс и Ubuntu.
Microsoft IIS
Internet Information Services (IIS) — набор сервисов для создания веб-сервера от компании Microsoft. Распространяется в комплекте с операционными системами Windows NT как дополнительно устанавливаемый компонент. Веб-сервер поддерживает технологии CGI, FastCGI, ISAPI и SSI.
Главная сила IIS – в глубокой интеграции и поддержке продуктов Microsoft. Его часто выбирают те, чьи ресурсы работают на движке ASP. NET и используют скриптовый язык ASPX. Главный недостаток – жесткая привязка к операционной системе Windows и отсутствие версий для Unix/Linux.
Tomcat
Apache Tomcat — это контейнер сервлетов, который обрабатывает спецификации Java. Например, Java Servlet, Java Server Pages (JSP), Java EL и WebSocket. Продукт был разработан фондом Apache Software Foundation на основе открытой лицензии Apache License 2.0. Tomcat используется как в качестве самостоятельного веб-сервера, так и в связке с Apache HTTP Server.
Приложение написано на языке Java и способно автоматически загружать Java-библиотеки. Его основная специализация — веб-проекты с динамическим содержимым. Но у Apache Tomcat хуже возможности для настройки, что сужает его сферу применения. Например, для запуска WordPress эффективнее использовать обычный HTTP-сервер Apache.
Заключение
Сервер Apache – универсальный инструмент для быстрого и безопасного запуска интернет-проектов разного масштаба. Веб-сервер совместим с большинством существующих операционных систем, программных продуктов и языков разработки.
Система конфигурационных файлов дает «Апач» гибкие возможности для настройки, а динамически подгружаемые модули расширяют функционал до максимума. Особенно эффективно использовать веб-сервер Apache в связке с ближайшим аналогом – Nginx.
Для работы с «Апач» пользователю нужен определенный уровень IT грамотности. Желательно знать основы программирования и веб-администрирования. Но процесс сильно упрощает активное сообщество поддержки и отлично развитая база официальной документации.
Раскройте все возможности и преимущества веб-сервера Apache с надёжным хостингом от Eternalhost!
Оцените материал:
[Всего голосов: 3 Средний: 5/5]
что это такое и как им пользоваться
Apache – один из самых популярных в мире веб-серверов. Начинающие вебмастера не всегда понимают, что представляет собой Apache и как происходит взаимодействие с таким программным обеспечением.
Далее я постараюсь максимально подробно рассказать о нем, приводя объяснения общим терминам.
Понятие «веб-сервер»
Перед тем как переходить непосредственно к разбору Apache, кратко затрону понятие веб-сервера, ведь рассматриваемое программное обеспечение таковым и является.
Веб-сервер – средство для обслуживания сайта в интернете. Он обрабатывает файлы, базы данных и всю информацию, хранящуюся на ресурсе. Веб-сервер занимается тем, что доставляет данные с серверного компьютера на устройство конечного пользователя в режиме реального времени, имея доступ ко всем файлам. Несколько запросов может обрабатываться одновременно, при этом не возникает проблем с файлами, написанными на совершенно разных языках программирования. При обработке все они превращаются в HTML-код и отправляются на обработку в браузер.
Теперь вы можете воспринимать веб-сервер как своеобразного посредника между сервером, где хранятся все данные, и пользователем. Из этого становится понятно, для чего нужен веб-сервер Apache, но пока не очень ясно, чем он отличается от других решений и какие имеет преимущества.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Работа веб-сервера Apache
Веб-сервер Apache – это программное обеспечение, которое установлено на сам сервер. Как мы уже поняли, благодаря ему устанавливается соединение между юзером, использующим браузер, и сервером, чтобы осуществить передачу данных при запросе. Пользователь переходит на страницу, далее отправляется сигнал на обработку, Apache находит необходимые данные и возвращает их пользователю, чтобы тот смог ознакомиться с ними. Работает это и в обратном направлении, примерно по такому же принципу.
Все остальное зависит от подключаемых модулей, которые существуют для Apache Web Server, то есть его можно назвать модульным (собираемым из разных дополнений, расширяющих функциональность). Здесь уже создатель сайта сам решает, какие дополнения установить, редактируя конфигурацию через специальный файл под названием .htaccess. Дополнений существует множество – начиная со средств повышения безопасности и заканчивая модулями аутентификации пользователей при вводе учетных данных.
Пример использования файла .htaccess
Вкратце рассмотрим и упомянутый выше конфигурационный файл. Он помещается в разных директориях веб-сервера, от чего и зависит область его действия. Соответственно, сохраненный в корне файл применяет свои правила на весь веб-сервер. Однако учтите, что если вы используете виртуальный хостинг для обслуживания нескольких сайтов на одном сервере, возможно появление проблем при наличии нескольких директив .htaccess, то есть при их наследовании от подкаталогов до корня.
Самая простая строка кода, вводимая в этот файл выглядит так:
AddType "text/html; charset=koi8-r" .html .htm .shtml
Ее основное предназначение – указать Apache кодировку, в которой нужно возвращать текст пользователю. Такое изменение делается в тех случаях, когда стандартный вывод вас не устраивает.
Благодаря .htaccess вы можете закрывать директории паролями, переопределять индексы файлов, запрещать доступ к ним и выполнять множество других настроек. Лучше всего использовать открытые источники и официальную документацию, если возникла надобность редактировать файл под себя.
Если вы нуждаетесь в получении дополнительной информации о виртуальном хостинге с этим веб-сервером, ознакомьтесь с документацией Virtual Apache Host на официальном сайте разработчика ПО.
Подробнее: Apache Virtual Host documentation
Сравнение Apache с другими веб-серверами
Есть и другие веб-серверы, обладающие своими преимуществами и недостатками. Обо всех них в рамках этой статьи говорить не будем, рассмотрим лишь пару достойных конкурентов.
Начнем с самого известного решения – Nginx. Здесь сказать можно только одно – его главным преимуществом является преодоление барьера в 10 000 одновременных соединений. Apache не может обработать такой большой поток трафика сразу, поэтому многие вебмастера и переключились на альтернативу, когда масштабы их проекта значительно увеличились. Связано это с поточной структурой Apache и невозможностью реализовать прохождение такого барьера. Однако в некотором плане Апач превосходит Nginx, если говорить о простоте настройки, подключении модулей и юзерфрендли-подходе от разработчиков.
Примечание. Хостинг Timeweb на своих серверах использует связку Nginx+Apache: Nginx отдает статический контент, а Apache подключается позже и отвечает за обработку динамического контента.
Второй конкурент – Tomcat, его разработала та же компания, что и Apache, но уже для других целей. Он используется для работы приложений, написанных на Java, а Apache-сервер – это HTTP-направленный инструмент. Если вы не используете Java, а управляете статическими веб-страницами, переключаться на Tomcat точно не стоит.
Установка Apache на компьютер
Если вы хотите самостоятельно попробовать Apache, организовав полноценно работающий сайт с веб-сервером, базой данных и другими компонентами, воспользуйтесь информацией, предоставленной на официальном сайте. Там вы найдете все необходимые файлы для Windows, архивы и команды инсталляции для Linux, а также объяснения всех тонкостей, связанных с настройкой данного компонента.
Кстати, на «Комьюнити» есть отдельная инструкция, посвященная тому, как использовать Apache в качестве обратного прокси на Ubuntu. Это полезный материал для всех тех, кто хочет узнать больше о расширенных возможностях этого веб-сервера.
Подробнее: Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04
Преимущества и недостатки Apache
В завершение обзорной статьи про Apache хотелось бы рассказать о преимуществах и недостатках этого веб-сервера, чтобы у каждого пользователя сложилась полная картина.
Плюсы
Начну с положительных моментов, поскольку многие из них становятся решающими при выборе первого веб-сервера для своего проекта. Перечислю только самые влиятельные факторы.
- Открытый исходный код. Он позволяет не только бесплатно скачивать программу, но и изменять ее под свои цели, чем и занимаются многие компании по всему миру, составляя уникальные конфигурации.
- Простота настройки. Помимо того, что в Apache есть огромное количество настроек, их редактирование остается таким же простым, а за вспомогательной информацией всегда можно обратиться к официальной документации.
- Модульная структура. Считаю, что возможность подключения любого количества модулей значительно расширяет функциональность веб-сервера, делая его универсальным.
- Кроссплатформенность. Скачать веб-сервер можно для любой операционной системы (но не для мобильной). При этом процесс настройки не меняется, различается только принцип инсталляции и расположение каталогов. Остается таким же и создание сайтов. Apache можно освоить как в Windows, так и в Linux или macOS.
- Масштабируемость. Данный веб-сервер подойдет как для одного сайта, так и для нескольких, расположенных на одном виртуальном хостинге.
Минусы
К сожалению, не обошлось и без минусов, поскольку невозможно создать идеальное программное обеспечение для любых целей.
- Влияние трафика на производительность. Apache работает медленно, если наплыв пользователей слишком большой.
- Дыры в безопасности. Это относится только к тем случаям, когда к веб-серверу подключено огромное количество модулей. Чем их больше, тем сложнее процесс конфигурирования, появляются уязвимые места и дыры.
- Редактирование файлов в Linux. Управление конфигурационными файлами в этих дистрибутивах осуществляется вручную без графического интерфейса, что не всегда удобно (в качестве рекомендации могу подсказать приложение Apache GUI, благодаря которому настройку можно выполнить через веб-обозреватель).
Apache – несомненно, один из лучших веб-серверов, в чем вы смогли сами убедиться, дочитав мой обзор.
Что такое ошибка 500, когда возникает и как устранить
Ошибка с кодом 500 выдается в том случае, когда причину сбоя нельзя отнести ни к какой другой категории ошибок (502, 503 и т. д.). По сути она означает «что-то произошло, а что — непонятно». В сообщении об ошибке 500, которое выдается на странице браузера, стандартно также нет сведений о ее причинах.
Как же без наличия информации определить и исправить ошибку? На практике чаще всего она вызывается сбоями в одном из основных компонентов сайта:
- в правах доступа к файлам и каталогам;
- в файле .htaccess;
- в скриптах;
- в CMS (движке сайта).
Сразу отметим, что сбои происходят на стороне сервера, а не клиента. От браузера и операционной системы пользователя здесь ничего не зависит, и нужно искать причину ошибки 500 в конфигурации программного обеспечения сайта.
Для определения причины ошибки:
- смотрим логи сервера — часто по ним можно понять, на каком этапе произошел сбой;
- если логи не добавили ясности, или вы не можете их посмотреть — перебирайте все возможные варианты, начиная с тех, которые кажутся наиболее вероятными в вашем случае. Например, если вы не трогали перед возникновением ошибки файл .htaccess, но устанавливали новые плагины на сайт, начать нужно с проверки последнего.
Некорректные права доступа
Каждый каталог и файл на сервере имеет определенную трехзначную кодировку прав доступа к нему. Например, 777 — такой доступ означает, что любой сторонний пользователь может изменять этот файл или папку. Для обеспечения безопасности сервер блокирует файлы, которые имеют такие широкие права доступа. В результате страница сайта не отображается, так как сервер не отдает содержимое нужных файлов, и выдается ошибка 500.
Рекомендуется выставлять права не выше 750 — для папок, и 640 — для исполняемых файлов.
Если вы недавно создавали новый каталог на сервере или загружали новые файлы, у них могут быть слишком широкие права доступа. Проверьте и исправьте их.
Как определить, что ошибка 500 возникла именно из-за этого?
Во-первых, посмотрите, какой вид имеет ошибка на экране браузера. Если вы видите текст «Internal Server Error» — то, скорее всего, дело именно в .htaccess. В случаях сбоев в работе скриптов или CMS текст ошибки обычно выглядит как «HTTP ERROR 500».
Во-вторых, попробуйте добавить в конец наименования файла .htaccess любые символы. Например, переименуйте его в .htaccess2233. Сервер не будет использовать переименованный файл, и сайт будет запускаться без него. Перезагрузите страницу, на которой была ошибка. Если она исчезла — значит, причина в .htaccess.
Что может быть неверным в файле и как это исправить?
Самый простой способ устранить ошибку 500 из-за .htaccess — отменить последние изменения в нем или загрузить файл из бекапа. Если это невозможно или нежелательно, проверьте эти варианты:
- наличие невидимых неразрывных пробелов (BOM). Если вы изменяли файл, используя не совсем подходящий редактор или кодировку, в него могли быть добавлены такие символы. Пересохраните файл в кодировке UTF-8 и загрузите на сервер;
- знак # не в начале строки. Этот знак ставится перед началом комментария. Некоторые пытаются добавить комментарий в .htaccess в конце строки, но последние версии Apache не поддерживают такой синтаксис, и в результате вы видите ошибку 500. Для комментария нужно выделять целую строку;
- некорректные директивы Options. В зависимости от версии серверного ПО, можно их либо полностью закомментировать, либо попробовать исправить Options All -Indexes на директиву Options -Indexes, а Options +FollowSymLinks на директиву Options +SymLinksIfOwnerMatch;
- некорректные директивы +ExecCGI, IfVersion, AddHandler, php_value, php_flag, MultiViews. Если в вашем файле встречаются такие, попробуйте поочередно их удалить (или закомментировать), проверяя, исчезла ли ошибка.
Сбои в скриптах
Ошибка 500 здесь может вызываться двумя основными причинами:
- Неверный синтаксис или права доступа скрипта.
- Слишком долгое выполнение скрипта.
В первом случае:
- включите отображение ошибок в настройках сервера (или обратитесь к техподдержке, они помогут это сделать). Тогда при перезагрузке страницы вы увидите надпись, в которой будет имя файла и конкретная строка в нем, вызывающая ошибку;
- проверьте, правильно ли вы загружали файлы скриптов через FTP , а лучше перезагрузите их правильным образом — в режиме ASCII. Хотя для некоторых FTP-клиентов, например, для FileZilla, лучше включать двоичный режим передачи: так содержимое файлов будет передано корректно и без искажений;
- проверьте права доступа к файлу скриптов — они должны быть выставлены на уровне 750 или 755.
Во втором случае проверьте, достаточно ли у вас оперативной памяти на тарифе, посмотрите логи, чтобы определить, как долго выполняется скрипт. Для исправления ошибки 500, возможно, потребуется оптимизировать скрипт для более экономного использования памяти или перейти на расширенный тариф.
Ошибки в CMS
- Довольно часто ошибка 500 возникает после установки плагинов и дополнений к CMS<. Особенно это актуально на WordPress. Сайт на этом движке, как конструктор, собирается из базы и десятков различных плагинов. При этом плагины могут конфликтовать между собой. Решение простое — отключите дополнения, которые вы недавно устанавливали, и посмотрите, исчезнет ли ошибка. Если да — дело в плагине и лучше поставить другой.
- Устаревшая версия PHP. Она может конфликтовать с новыми скриптами или плагинами. Для обновления версии обратитесь к специалисту.
- Обновление версии движка. Такие работы также лучше проводить при поддержке специалистов, которые комплексно проверят совместимость скриптов и дополнений с новой версией. Иначе можем получить конфликт и ошибку 500.
apache — Почему файл Apache2 .htaccess не читается? («Опции -Индексы» в файле .htaccess не работают)
Спросил
Изменено 21 день назад
Просмотрено 77k раз
Я создал файл . htaccess только со следующей строкой:
Опции — Индексы
Однако для каталога по-прежнему отображается индекс.
Я только что установил Apache2 и использую все значения по умолчанию (я не модифицировал apache2.conf или httpd.conf).
ОС: Ubuntu 12.04 (Precise Pangolin)
Версия Apache2: Версия сервера: Apache/2.2.22 (Ubuntu) Сервер построен: 13 февраля 2012 г. 01:51:56
$ ls -l .htaccess
-rwxr-xr-x .htaccess
РЕДАКТИРОВАТЬ:
Я последовал совету Ланца и добавил тарабарщину в файл .htaccess
и обнаружил, что .htaccess
файл не читается.
- апач
- .htaccess
6
Вы должны убедиться, что конфигурация Apache позволяет выполнять .htaccess. В конфигурации вашего виртуального хоста должна быть строка:
AllowOverride All
Если ее нет, то . htaccess не действует.
6
Чтобы это заработало, я добавил следующее в /etc/apache2/httpd.conf
(который по умолчанию является файлом нулевой длины при установке Apache), а затем перезапустил Apache. Теперь Options -Indexes
в файле .htaccess
работает как надо. Вот минимум, необходимый для его работы:
/etc/apache2/httpd.conf :
Корень документа /var/www <Каталог/> Каталог> виртуальный хост>
Предложение Ланза добавить строку тарабарщины в .htaccess
, чтобы узнать, читается ли он, помог в диагностике проблемы.
Обратите внимание, что AllowOveride
по умолчанию имеет значение All
, согласно комментарию Эвана Мулавски, поэтому это не требуется в минимальном наборе строк httpd.conf
выше.
3
У меня была такая же проблема. Я использовал виртуальный хост, поэтому я изменил httpd-vhosts.conf, поэтому, если вы используете его, это может помочь
Если вы настраиваете свой хост, ссылайтесь на тег каталога, чтобы он был таким же, как ваш корень документа
<Виртуальный хост *:8080> имя_сервера DocumentRoot "C:/Веб-сайты/htdocs/вашсайт" <Каталог "C:/Веб-сайты/htdocs/вашсайт"> Параметры Разрешить переопределить все Каталог>
Мне нужно AllowOverride All
, чтобы распознать файл .htaccess.
Редактировать
Мне также нужно было добавить путь к корню сайта в самом теге каталога. то есть
. Это было по умолчанию в образцах, которые я использовал.
1
Поскольку файла httpd.conf
больше нет, вам нужно сделать следующее на VPS:
ls
, чтобы найти файл для веб-сайта, который вы ищете nano THE_CONF_FILE
или любого другого редактора, который вам нужен AllowOverride Нет
значения, которые вы видите в разных . .. 9от 0022 с до AllowOverride All
Сохраните файл и закройте его
Теперь вам нужно включить перезапись модуля, выполнив команду: sudo a2enmod rewrite
перезапуск службы apache2
Теперь все будет работать как по маслу!
3
Если у вас есть
AllowOverride Нет
Измените это на:
Разрешить переопределить все
в вашем httpd.conf или в вашем файле виртуального хоста по умолчанию в in /etc/apache2/sites-available/...conf
Я решил эту проблему на RHEL, отредактировав файл /etc/http/conf/httpd.conf
Я изменил все
AllowOverride Нет
До
AllowOverride All
Также вы можете проверить httpd.conf AllowOverride, выполнив команду на RHEL
grep -i AllowOverride /etc/conf/conf/httpd. conf
Кроме того, помимо изменения AllowOverride All в файле конфигурации виртуального хоста, вам также может понадобиться добавить следующее в начало файла .htaccess:
RewriteEngine вкл. Переписать Базу /
В противном случае может по-прежнему не обнаруживаться перезапись или перенаправление.
Еще одна причина, по которой файл htaccess не читается, заключается в том, что существующий htaccess применяет перенаправление HTTPS 301, которое браузер затем кэширует, что может быть проблемой, если виртуальные хосты настроены неправильно. Полное объяснение ниже.
Если вы настраиваете виртуальный хост, например, в Apache и XAMPP, при первом запуске URL-адреса вашего виртуального хоста, если у вас есть существующий файл htaccess с перенаправлением HTTPS 301, ваш браузер будет перенаправлен на HTTPS-версия вашего виртуального хоста. Но есть потенциальная проблема. Если вы явно не настроили виртуальный хост *:433 для рассматриваемого домена, в файле конфигурации Apache vhosts Apache по умолчанию будет использовать первый указанный виртуальный хост.
В зависимости от содержимого этого виртуального хоста по умолчанию может быть невозможно понять, что происходит, и пользователь будет безумно пытаться определить, почему изменения в файле htaccess больше не обрабатываются.
Как только вы определите, что происходит, обходной путь — отключить любые перенаправления HTTPS, перезагрузить компьютер и повторить попытку без HTTPS. Реальное решение — завершить полную настройку виртуального хоста 443 с сертификатом.
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
apache - .
htaccess ErrorDocument 404 не отображаетсяСпросил
Изменено 7 месяцев назад
Просмотрено 310k раз
У меня есть сервер службы AWS EC2, работающий на Linux Ubuntu, и я установил apache, php и mysql.
Я добавил .htaccess
в корневом каталоге моего документа /var/www/html
.
Я ввел в него этот код: ErrorDocument 404 /var/www/html/404.php
и до сих пор не отображается.
Я продолжал вводить эту команду несколько раз: sudo service httpd restart
для перезагрузки сервера, но никаких изменений не отображается...
Как это исправить... Я сделал что-то не так?
- apache
- .htaccess
- amazon-ec2
- amazon-веб-сервисы
- Apache-конфигурация
1
Во-первых, обратите внимание, что перезапуск httpd не требуется для файлов . htaccess. Файлы .htaccess предназначены специально для людей, у которых нет root-прав, то есть у которых нет доступа к файлу конфигурации сервера httpd и которые не могут перезапустить сервер. Поскольку вы можете перезапустить сервер, вам не нужны файлы .htaccess, и вы можете напрямую использовать конфигурацию основного сервера.
Во-вторых, если файлы .htaccess игнорируются, необходимо проверить правильность настройки AllowOverride. Подробнее см. http://httpd.apache.org/docs/2.4/mod/core.html#allowoverride. Вам также необходимо убедиться, что он установлен в правильной области действия, т. е. в правильном блоке вашей конфигурации. Убедитесь, что вам НЕ редактирование того, что в блоке, например.
В-третьих, если вы хотите убедиться, что файл .htaccess действительно читается, забросьте в него мусор. Недопустимая строка, такая как «INVALID LINE HERE», в вашем файле .htaccess приведет к ошибке сервера 500, когда вы укажете браузеру каталог, содержащий этот файл. Если это не так, то у вас неправильно настроен AllowOverride.
6
Включить модуль Apache mod_rewrite
a2enmod перезаписать
добавьте следующий код в
/etc/apache2/sites-available/default
Разрешить переопределение Все
Перезапустите апач
/etc/init.d/apache2 перезапустить
8
Если вы попробовали все вышеперечисленное, все из которых являются правильными и хорошими ответами, и ваш файл htaccess не работает или не читается, измените директиву в Файл apache2.conf
. В Ubuntu путь /etc/apache2/apache2.conf
Измените директиву
, указывающую на ваши общедоступные веб-страницы, где находится файл htaccess. Изменение с AllowOverride None
на AllowOverride All
<Каталог /var/www/> Индексы опционов FollowSymLinks Разрешить переопределить все Требовать все предоставленные Каталог>
У меня была та же проблема, и я нашел ответ и объяснение на Ubuntu Ask! форум https://askubuntu. com/questions/421233/enbling-htaccess-file-to-rewrite-path-not-working
3
Для Ubuntu,
Сначала запустите эту команду: -
sudo a2enmod rewrite
Затем отредактируйте файл /etc/apache2/sites-available/000-default.conf
с помощью nano или vim с помощью этой команды: —
sudo nano /etc/apache2/sites-available/000-default.conf
Затем в файле 000-default.conf
добавьте это после строки DocumentRoot /var/www/html
. Если ваш корневой html-каталог отличается от другого, напишите так: -
<Каталог "/var/www/html"> Разрешить переопределить все Каталог>
Сделав все, перезапустите apache с помощью команды sudo service apache2 restart
Скорее всего, для AllowOverride установлено значение None. в разделе Directory файла apache2.conf, расположенном в папке /etc/apache2
Попробуйте установить для него значение AllowOverride All
Просто выполните 3 шага
Включите mode_rewrite с помощью следующей команды
sudo a2enmod переписать
Будет запрошен пароль. Поэтому введите свой пароль
Обновите файл 000-default.conf или default.conf , расположенный в каталоге /etc/apache2/sites-available/ . вы не можете редактировать его напрямую. поэтому используйте следующую команду, чтобы открыть
sudo gedit /etc/apache2/sites-available/000-default.conf
Или sudo gedit /etc/apache2/sites-available/default.conf
вы получите
DocumentRoot /var/www/html
ИЛИ
DocumentRoot /var/www
линия. Добавьте следующий код после него.
<Каталог /var/www/html/> Индексы опционов FollowSymLinks Разрешить переопределить все Требовать все предоставленные Каталог>
Сделать пользователем путь к тегу каталога таким же, как показано в вашем файле.
Перезапустите сервер Apache с помощью следующей команды
перезагрузка службы sudo apache2
1
По моему опыту, директива каталога /var/www/ запрещает директивы виртуального хоста для подпапок. Итак, если вы испробовали все предложения и все еще не работаете, и вы используете виртуальные хосты, попробуйте это;
1 - Убедитесь, что у вас есть AllowOverride All
директива в /etc/apache2/sites-available/example.com.conf
2 - Проверьте /var/www/ директивы каталога в /etc/apache2/apache2.conf
(возможно, в строке 164), что выглядит как ;
<Каталог /var/www/> Индексы опционов FollowSymLinks Аллововеррайд Требовать все предоставленные Каталог>
Если имеется директива AllowOverride None
, измените ее на AllowOverride All
или просто экранирующая строка
По умолчанию Apache запрещает использование файла .htaccess для применения правил перезаписи, поэтому
Шаг 1 — Включение mod_rewrite (если не включено) Во-первых, нам нужно активировать mod_rewrite. Он доступен, но не включен при чистой установке Apache 2.
$ переписать sudo a2enmod
Это активирует модуль или предупредит вас о том, что модуль уже включен. Чтобы эти изменения вступили в силу, перезапустите Apache.
$ sudo systemctl перезапустить apache2
mod_rewrite теперь полностью включен. На следующем шаге мы создадим файл .htaccess, который будем использовать для определения правил перезаписи для перенаправлений.
Шаг 2 — Настройка .htaccess Откройте файл конфигурации Apache по умолчанию с помощью nano или вашего любимого текстового редактора.
$ sudo nano /etc/apache2/sites-available/000-default.conf
Внутри этого файла вы найдете блок, начинающийся с первой строки. Внутри этого блока добавьте следующий новый блок, чтобы ваш файл конфигурации выглядел следующим образом. Убедитесь, что все блоки имеют правильный отступ.
/etc/apache2/sites-available/000-default.conf
<Каталог /var/www/html> Опционы Индексы FollowSymLinks MultiViews Разрешить переопределить все Требовать все предоставленные Каталог> . . . виртуальный хост>
Сохраните и закройте файл. Чтобы эти изменения вступили в силу, перезапустите Apache.
$ sudo systemctl перезапустить apache2
Готово. Ваш .htacess должен работать. Эта ссылка может действительно кому-то помочь 1
Перейдите в /etc/apache2/apache2.conf
Вы должны отредактировать этот файл (у вас должно быть разрешение root). Измените текст каталога, как показано ниже:
<Каталог /var/www/>
Параметры Индексы FollowSymLinks
AllowOverride All
Требовать все предоставлено
Теперь вам нужно перезапустить apache.
перезапуск службы apache2
Я очистил это использование. Используя этот сайт, нажмите здесь, следуйте инструкциям, те же шаги следуют до версии ubuntu 18.04
В WampServer
Откройте значок WampServer Tray ----> Apache ---> Модули Apache --->rewrite_module
Для полноты, если «AllowOverride All» не решает вашу проблему, вы можете отладить эту проблему, используя:
Запустите
apachectl -S
и посмотрите, есть ли у вас более одного namevhost. Возможно, httpd ищет .htaccess другого DocumentRoot.Используйте
strace -f apachectl -X
и посмотрите, откуда загружается (или не загружается) .htaccess.
у меня много сайтов на виртуальной машине, и я решил это только изменив конфиг сайта в котором мне нужно .htaccess
что я сделал:
-
sudo a2enmod переписать
далее я изменил конфигурацию только для конкретного сайта, а не для каждого сайта "example.com"
-
sudo nano /etc/apache2/sites-enable/example.com.conf
внутри него я добавил
Разрешить переопределить все Каталог>
-
перезапуск службы apache2
, так что это применимо только к 1 сайту, потому что, когда я попытался применить изменения ко всему серверу, он рухнул, не знаю почему, но это решило мою проблему
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Прекратите использовать файлы .
htaccess! Нет, правда.Эндрю Уэлч · Аналитика · #devops #craftcms #performance
Улучшение работы в Интернете по одному сайту за раз с упором на производительность, удобство использования и SEO
Опубликовано , обновлено · 5 мин чтения ·
Пожалуйста, рассмотрите возможность 🎗 спонсировать меня 🎗, чтобы я продолжал писать подобные статьи.
Прекратить использование файлов .htaccess ! Похоже на ересь. Файл .htaccess так долго был стандартной частью мира веб-разработки, что это как старый друг. И все же пора прощаться.
Файлы .htaccess родились в эпоху, когда виртуальный хостинг был обычным явлением: системным администраторам нужен был способ, позволяющий нескольким клиентам получать доступ к своему серверу под разными учетными записями и с разными конфигурациями для своих веб-сайтов. Файл .htaccess позволил им изменить работу Apache, не имея доступа ко всему серверу.
Виртуальный выделенный сервер или VPS оставил это в прошлом. Отличные хостинговые компании, такие как Linode, Digital Ocean, Vultr и т. д., предоставляют вам целый виртуализированный сервер, полностью изолированный и автономный. И все же, как приложение, .htaccess сохраняется.
Действительно, современные веб-серверы, такие как Nginx, даже не имеют понятия файла .htaccess , потому что времена изменились.
Какая разница, скажете вы? Одним словом: производительность . Не верьте мне на слово, вот что говорят представители Apache Foundation (создатели Apache):
Вам следует полностью избегать использования файлов .htaccess, если у вас есть доступ к файлу конфигурации основного сервера httpd. Использование файлов .htaccess замедляет работу вашего http-сервера Apache. Любую директиву, которую вы можете включить в файл .htaccess, лучше установить в блоке каталога, так как она будет иметь тот же эффект, но с большей производительностью.
Широко известный HTML5 Boilerplate также предупреждает об этом:
(!) Использование файлов `.htaccess` замедляет работу Apache, поэтому, если у вас есть доступ к основному файлу конфигурации сервера (который обычно называется `httpd.conf` ), вы должны добавить эту логику туда.
У них даже есть целый раздел на apache.org , посвященный Когда (не) использовать файлы .htaccess. Короче говоря, если вы используете файлы .htaccess , каждый отдельный запрос, который обрабатывает веб-сервер — даже для самых низких .png или .css файл — заставляет Apache:
- Искать файл .htaccess в каталоге текущего запроса в корень сервера
- Объединить все эти файлы .htaccess вместе
- Перенастроить веб-сервер с использованием новых настроек
- Наконец, доставить файл
Каждый. Одноместный. Запрос. И каждая веб-страница может генерировать десятки запросов. Это накладные расходы, которые вам не нужны, и, более того, они совершенно не нужны, если только вы не находитесь в среде общего хостинга старого образца (и если это так, прекратите читать эту статью и немедленно переключитесь на современный VPS).
Проблема усугубляется по мере добавления новых вещей в файл .htaccess . Часто это свалка для таких вещей, как правила перезаписи и тому подобное, и чем сложнее ваш файл .htaccess , тем больше накладных расходов добавляется, когда Apache должен анализировать его для каждого запроса.
Касательная: Лучшим решением для переадресации 301 является обработка системой CMS переадресации только после возникновения исключения 404, например плагин Retour для Craft CMS. Смысл в том, что лучше иметь производительный веб-сервер для большинства обычных запросов, а не для исключительных запросов перенаправления. Есть исключения, конечно: 9/(favicon\.ico|apple-touch-icon.*\.png)$ [NC] RewriteRule (.+) index.php?p=$1 [QSA,L] ЕслиМодуль>
.
htaccessВыглядит достаточно просто. Он просто делает некоторые причудливые вещи, чтобы убедиться, что вы можете иметь красивые URL-адреса без index.php в них, и убедиться, что ошибки 404 перенаправляются через Craft. Это довольно типично для многих систем CMS, которые вы помещаете в файл .htaccess .
Для каждого домена на вашем веб-сервере существует файл виртуального хоста, который сообщает веб-серверу, как обслуживать веб-страницы для этого домена. Все, что нам нужно сделать, это передать то, что мы использовали, чтобы положить в наши .htaccess в файл виртуального хоста, и все готово. Это действительно так просто.
Все, от правил перезаписи http -> https до заголовков с истекающим сроком действия, настроек сжатия gzip и других настроек повышения производительности, также будет работать .
Если он работал в .htaccess, он будет работать и в файле .conf вашего виртуального хоста. Оба являются просто способами настройки вашего веб-сервера, но делать это один раз при запуске веб-сервера, а не при каждом запросе, более эффективно.
Ссылка Git ’Er Done
Поскольку вы дочитали до этого места, я предполагаю, что вы готовы освободиться от использования файлов .htaccess . Но как мы это делаем? Простой. Нам просто нужно взять директивы, которые были в файле .htaccess , и поместить их в наш файл Virtual Host .conf . Эти файлы обычно находятся в /etc/httpd/conf.d или /etc/httpd/sites-available в большинстве дистрибутивов Linux.
Есть еще одна маленькая вещь, которую мы должны сделать. Даже если у нас даже нет файла .htaccess на нашем сервере, Apache все равно будет искать их, если директива AllowOverride скажет ему об этом. Поэтому мы просто устанавливаем AllowOverride none в нашем файле виртуального хоста, и это сообщает Apache, что ему больше не нужно искать файлы .htaccess .
Вот как выглядит полный файл Virtual Host .conf для Craft CMS. Другие системы CMS должны выглядеть примерно так же:
bradsformen.
(.+) /index.php?p=$1 [QSA,L] ЕслиМодуль> Каталог> Виртуальный хост> 9(.+) /index.php?p=$1 [QSA,L]Вот и все. Сохраните его, перезапустите Apache с помощью команды sudo apachectl restart и вперед!
Вы можете спросить, насколько это меняет дело. По правде говоря, это не так уж много. Вы можете ожидать прироста в однозначных цифрах, который будет иметь большее влияние по мере увеличения трафика. Однако, учитывая, насколько совершенно ненужным является использование файлов .htaccess , на самом деле нет никаких причин не внедрять лучшие методы отказа от их использования.
Даже, казалось бы, небольшой прирост производительности складывается при совместном использовании.
Если вы хотите получать уведомления о новых статьях, подпишитесь на @nystudio107 в Твиттере.
Включите JavaScript для просмотра комментариев с помощью Disqus.Insights ·
Композитор для всех нас
#композитор #php #пакет
Insights ·
Fluent Multi-Environment Config для Craft CMS 4
#craft-4 #craftcms #config
Инсайты ·
Создание обратного прокси-сервера для Partytown с помощью AWS Cloudfront
#JavaScript #aws #интерфейс
Insights ·
Матричные блоки Searching Craft CMS
#craftcms #php #матрица
·
Dock Life: использование Docker для любых целей!
#devops #докер #dev
Insights ·
Немного вкуса Petite-Vue
#JavaScript #vuejs #graphql
Инсайты ·
Пользовательские правила проверки одноранговых блоков матрицы
#craftcms #craft-3 #php
Insights ·
A Vite Buildchain для плагинов и модулей Craft CMS
#плагин #vite #интерфейс
·
Vite.
js Интерфейсные инструменты нового поколения + Craft CMS#vite #webpack #интерфейс
${категория} · ${блог.postDate}
${блог.название}
#${тег.название}
Убедиться, что .htaccess и mod_rewrite работают должным образом
Перейти к навигации по документам Bolt широко использует общую функцию, называемую «перезапись URL». Этот
в основном означает, что вы можете запросить красивый URL-адрес, например /page/about-this-website
.
в вашем браузере, а за кулисами ваш веб-сервер просто «переведет» это
для запуска index.php
с правильными параметрами, чтобы Bolt мог производить
правильная страница для вас.
Это не работает из коробки на всех веб-серверах, но это жесткий
Требования к использованию Bolt. Если вы читаете эту страницу, вы, вероятно, находитесь в
процесс настройки Bolt и после запроса первой страницы вы были перенаправлены
на страницу /bolt/userfirst
, где вы увидели следующее сообщение об ошибке:
Одна из трех следующих возможностей создает проблемы:
- Вы потеряли файл . htaccess
- Apache игнорирует
.htaccess
всего - Mod_rewrite не включен
Проверить, работает ли
.htaccess
¶ Самый простой способ проверить, использует ли apache ваш файл .htaccess
или нет.
игнорирует его, это намеренно сломать его.
Отредактируйте файл .htaccess
так, чтобы первая строка читалась как «Тест.»:
Тест. # Установить обработчик по умолчанию DirectoryIndex index.php index.html index.htm ...
Теперь, если вы обновите страницу в браузере, вы должны увидеть страницу с ошибкой, например это:
Если вы видите эту ошибку, это на самом деле хороший ! Это означает, что Apache
анализируя файл .htaccess
, он обнаруживает ошибку, которую мы туда записали! Так
далеко, так хорошо!
Если вы делаете , а не , видите «Внутреннюю ошибку сервера», ваша установка Apache игнорирует .htaccess
, и вам нужно это исправить. Как правило, Apache игнорирует .htaccess
из-за следующей конфигурации Apache AllowOverride нет
.
Проверьте конфигурацию вашего виртуального хоста и добавьте/измените до Разрешить переопределить все
.
Пример:
<Каталог /var/www/site/example.com/> Индексы опционов FollowSymLinks Разрешить переопределить все Требовать все предоставленные Каталог>
Если вы не уверены, существует ли файл .htaccess
и доступен ли он для чтения, загрузите
наш тестовый скрипт:
- Загрузите скрипт здесь: htaccess_tester.php на GitHub
- При необходимости переименуйте его в
htaccess_tester.php
. - Поместите его в папку, в которую вы положили Bolt.
- Откройте его в браузере с URL-адресом. (поэтому убедитесь, что вы не получаете к нему доступ
в виде файла
://
) - Если вы получили сообщение об ошибке, вам нужно будет исправить ее, убедившись, что
. htaccess
файл существует и доступен для чтения.
Правильно:
Проверить, работает ли
mod_rewrite
¶ Чтобы проверить правильность работы mod_rewrite
, выполните следующие действия:
- В браузере откройте
/test
с правильным доменным именем. Таким образом, это должно выглядеть какhttp://localhost/test
илиhttp://example.org/test
. - Если вы видите следующее, это работает! Если вы видите что-то еще, вам понадобится исправить это.
Правильно:
Мой htaccess не работает? Что делать?¶
Существует множество причин, по которым он может не работать в вашей системе, и эти причины настолько сильно различаются, что мы не можем дать исчерпывающего решения для этого. Что сказал, вот несколько советов, которые могут помочь вам исправить это:
Включите
.htaccess
в вашем httpd. conf
или apache.conf
¶ Необычно, но возможно, что .htaccess
не включен на вашем сайте. если ты
размещаете его самостоятельно, это достаточно легко исправить. Откройте свой httpd.conf
или apache.conf
в текстовом редакторе и найдите раздел
:
<Каталог "/var/www/htdocs"> Аллововеррайд Нет
Изменить AllowOverride
строка на:
Разрешить переопределение всех
Обязательно перезапустите Apache после внесения любых изменений в этот файл. Теперь ваш .htaccess
должно работать. Вы также можете внести это изменение внутри виртуального хоста,
что обычно было бы предпочтительнее, но это зависит от того, как настроен Apache
вверх.
Если ваш сайт размещен в другом месте, проверьте панель управления (Plesk, DirectAdmin,
CPanel, что угодно), чтобы узнать, можно ли включить там .htaccess
. Если нет, обращайтесь
ваш хостинг-провайдер, чтобы сделать это за вас.
Включить
mod_rewrite
в Apache¶ Есть несколько способов включить mod_rewrite
, если он еще не включен
на вашей установке. См. этот поток переполнения стека для различных способов, которыми это можно сделать.
на разных установках:
Как включить mod_rewrite для Apache 2.2.
Проверка файлов журналов Apache¶
Apache регистрирует партии материалов. Проверьте журналы «доступа» и «ошибки», созданные
Apache, чтобы узнать, содержат ли они ценную информацию. Обычное место для этих
файлов /var/log/apache2/
, но он может находиться по другому пути на вашем
система. Проверьте файл apache .conf
, чтобы увидеть, где эти файлы могут быть скрыты.
Включение Rewritebase¶
Если вы настраиваете Bolt во вложенной папке, возможно, вам придется раскомментировать строку
для настройки RewriteBase
.
Изменить
# Некоторые серверы требуют установки RewriteBase. Если это так, установите правильную папку. # Переписать базу/
до:
# Некоторые серверы требуют установки RewriteBase. Если это так, установите правильную папку. Переписать базу /
Переместите свой сайт на «верхний уровень»¶
Если вы настраиваете Bolt во вложенной папке и предыдущий совет не работает, вы
можно попробовать настроить Bolt на собственном поддомене, так как это обычно дает меньше
проблемы. Итак, вместо использования http://example.org/testingbolt
установите его как http://testingbolt.example.org/
.
Обратитесь к своему веб-хостингу¶
Спросите своего веб-хостинга, что может быть не так. Чем больше информации вы им дадите, тем больше шанс, что они могли бы быть в состоянии помочь вам.
Использовать предварительно настроенную сборку Apache¶
Если вы настраиваете Apache на своем компьютере, а он оказывается сложно настроить, вам следует рассмотреть возможность использования XAMPP (Windows), MAMP (OS X) или AMPPS (Windows, OS X, Linux).
Вместо этого используйте Nginx¶
Если вам надоели махинации Apache, вы можете подумать о том, чтобы отказаться от них в в пользу Nginx. Nginx — высокопроизводительный веб-сервер, который на самом деле проще настроить, чем Apache.
Предыдущий Запуск Bolt с использованием встроенного веб-сервера PHP
Следующий Настройка сертификатов центра сертификации cURL SSL/TLS
Почему вы не можете найти расположение файла .htaccess
Файл .htaccess — это файл конфигурации для веб-серверов Apache. Редактируя этот файл, вы можете включать/отключать функции сервера , такие как перенаправление URL-адресов, защита паролем или ограничение доступа к определенным IP-адресам. Также возможно увеличение ресурсов вашего сервера и устранение ошибок . Для этого сначала вам нужно найти файл в корневом каталоге WordPress.
Важно знать, что «.htaccess» — это не расширение файла, как .css или .js, а полное имя файла . Точка в начале («.») означает, что файл скрыт и не будет отображаться по умолчанию при просмотре некоторыми файловыми менеджерами или FTP-клиентами. Есть два возможных пути решения этой проблемы. Если файл существует на вашем сервере, вам нужно только включить соответствующие параметры в вашем FTP-клиенте, чтобы отобразить его. Если это не так, вам нужно создать новый и загрузить его на свой сервер через FTP.
Посмотрим, как это сделать!
Как показать скрытые файлы в вашем FTP-клиенте
Наличие FTP-клиента является обязательным при работе сайта WordPress. Если вам нужно устранить проблему или добавить функциональные возможности, знание того, как использовать FTP-клиент и иметь доступ к файлам на сервере, весьма полезно . К счастью, существует множество доступных FTP-клиентов, как бесплатных, так и платных. Для целей этой статьи мы рассмотрим несколько популярных бесплатных FTP-клиентов и соответствующие параметры для отображения скрытых файлов в этих клиентах.
FileZilla
FileZilla — это удобное программное обеспечение, совместимое с Windows, macOS и Linux. Он поддерживает протоколы передачи FTP, FTPS и SFTP. Он включает в себя множество функций, включая быстрое редактирование файлов, постоянное соединение, а также возможность возобновить передачу файлов и создавать закладки. Тем не менее, вы должны быть очень осторожны с установкой рекламного ПО, которое может проникнуть в нежелательные программы через черный ход. Убедитесь, что вы внимательно прочитали параметры установки и сняли флажки со всех предлагаемых дополнительных программ.
В FileZilla вы найдете параметр для отображения скрытых файлов, перейдя на вкладку Сервер и нажав « Принудительно показать скрытые файлы ».
WinSCP
WinSCP (Windows Secure Copy) — еще одно удобное программное обеспечение FTP , но оно доступно только для Windows . Он поддерживает FTP, SFTP, SCP, а также протоколы Amazon S3 и WebDAV. Среди многих функций он предлагает быстрое редактирование файлов и выбор редактора, 2 отдельных интерфейса, а также хранение и импорт информации о сеансе. Однако, хотя в целом он удобен для пользователя, неопытным пользователям может потребоваться некоторое время, чтобы привыкнуть к его интерфейсу.
Чтобы найти файл .htaccess с помощью WinSCP , сначала необходимо подключиться к серверу, перейти на вкладку «Параметры» и нажать на параметр «Настройки» .
Продолжите, щелкнув слева категорию Panels , установите флажок « Показать скрытые файлы » и нажмите « OK ».
Cyberduck
«Cyberduck — это бесплатный сервер и браузер облачного хранилища для Mac и Windows с поддержкой FTP, SFTP, WebDAV, Amazon S3, OpenStack Swift, Backblaze B2, Microsoft Azure и OneDrive, Google Drive и Dropbox».
Его функции включают удаленное редактирование файлов, создание и импорт закладок и возобновление передачи файлов. Однако загрузка файла может занять некоторое время, а пользовательский интерфейс, по мнению большинства пользователей, не очень привлекателен.
В Cyberduck вы найдете файл .htcaccess, перейдя на вкладку «Вид» и нажав « Показать скрытые файлы ».
Free FTP
Free FTP — это программное обеспечение FTP, созданное специально для новых пользователей . Он поддерживает FTP, FTPS, SFTP и HTTPS, но только для Windows. Его функции включают закладок, удаленное редактирование и историю FTP . Из 4 FTP-клиентов, упомянутых в этой статье, только у него есть платная версия, открывающая множество дополнительных функций.
В Free FTP вы найдете файл .htaccess, перейдя на вкладку «Просмотр» и нажав «Показать скрытые файлы».
Создание файла .htaccess
Если вы по-прежнему не видите файл .htaccess, скорее всего, этот файл не существует и его необходимо создать . Вы можете сделать это автоматически или вручную.
Сохранение постоянных ссылок
Среди прочего, файл .htaccess обрабатывает отображение постоянных ссылок сайта . Это означает, что файл .htaccess по умолчанию создается при первом сохранении настроек постоянной ссылки. Поэтому вы, скорее всего, пропустили это и, выполнив эти шаги, создадите новый файл .htaccess.
Перейдите к Настройки > Постоянные ссылки и нажмите кнопку « Сохранить изменения » в левом нижнем углу.
Если это не решило проблему, и вы видите уведомление о том, что ваш файл .htaccess «не доступен для записи», скорее всего, это проблема с правами доступа к файлам/папкам. В этом случае переходите ко второму варианту.
Создание вручную
Файл . htaccess можно создать вручную, открыв новый файл в текстовом редакторе по вашему выбору и вставив следующий код. 9индекс\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи. /index.php [Л]
# END WordPress Затем сохраните файл как « .htaccess » где-нибудь на рабочем столе. Подключитесь к своему серверу, используя свои учетные данные FTP, и перейдите в родительский каталог вашего корневого каталога WordPress . Это папка, содержащая папку со всеми установочными файлами WordPress. Щелкните правой кнопкой мыши и нажмите «Атрибуты файла…» в появившемся меню . Вручную вставьте 755 и нажмите кнопку «ОК» . Затем перейдите в корневой каталог WordPress и перетащите ранее созданный файл, чтобы загрузить его. Наконечник . Предлагаемые разрешения для папок/каталогов должны быть либо 755, либо 750 . Для файлов значения должны быть 644 или 640 , а для файла wp-config.php установлено значение 440 или 400 . Убедитесь, что эти значения установлены правильно после решения проблемы с .htaccess, чтобы обеспечить безопасность вашего сайта. Просмотр коллекции ТЕРИМАЛЬНАЯ Многоцелевая тема WordPress Действительно многоконцептная тема Свежий стартап бизнес-тема Темы Qode WordPress: лучший выбор
Bridge
Стокгольм
Startit
Финальные мысли
. Следующие. FTP-клиенты и выберите тот, который лучше всего подходит для вас. Держите его под рукой, потому что вам часто понадобится файл .htaccess и FTP-клиент в процессе устранения неполадок с многочисленными проблемами сайта WordPress.
Apache Today - Apache Today: Использование файлов .htaccess с Apache
Apache Today - Apache Today: Использование файлов .htaccess с Apache Оригинал в Apache Today (http://apachetoday. com).
http://apachetoday.com/news_story.php3?ltsn=2000-07-19-002-01-NW-LF-SW
Использование файлов .htaccess с Apache
( 19 июля, 16:07: 26 )
Кен Коар
Авторские права принадлежат Кену Коару, 2000 г. Все права защищены. Ограничено
права, предоставленные Internet.Com.
Одной из наиболее распространенных потребностей веб-мастеров является создание Веб-сервер для обработки всех документов в определенном каталоге или дерево каталогов таким же образом -- например, запрос пароля перед предоставлением доступа к любому файлу в каталоге или разрешением (или запрещающие) списки каталогов. Однако эта потребность часто распространяется не только веб-мастеру; рассмотреть студентов на факультете Веб-сервер в университете, или отдельные клиенты интернет-провайдера, или клиенты веб-хостинговой компании. В этой статье описывается, как веб-мастер может расширить разрешение, чтобы адаптировать поведение Apache к пользователей, что позволяет им иметь некоторый контроль над тем, как он обрабатывает свои собственные подобласти своего общего Web-пространства.
В этой статье показано, как можно использовать конфигурацию для каждого каталога .
файлы, называемые .htaccess
файлы , для настройки
поведение Apache — или разрешить пользователям делать это самостоятельно
документы.
Настройки для каждого каталога
Система конфигурации Apache решает проблему группировки документов.
по каталогу в прямом
способ. Чтобы применить элементы управления к определенному дереву каталогов, для
Например, вы можете использовать
контейнер
директива в конфигурационных файлах сервера:
<Каталог "C:/Program Files/Apache Group/Apache/htdocs"> Аллововеррайд Опции Каталог>
Преимущество этого заключается в сохранении контроля в руках веб-мастера;
не нужно беспокоиться о том, что кто-либо из пользователей сервера сможет
изменить настройки, так как файлы конфигурации сервера
вообще не может быть изменено никем, кроме администратора. К сожалению,
у него есть недостатки
требующий перезапуска Apache каждый раз при изменении файла конфигурации,
и что добавление всех
контейнера, которые могут понадобиться
для всех пользователей, у которых есть особые требования.
Альтернативный метод обеспечения желаемой детализации Конфигурация Apache — вплоть до уровня каталога — заключается в использовании специальные файлы частичной конфигурации в каждом каталоге со специальными требования.
Файл .htaccess
— это просто текстовый файл, содержащий
Апачи
директивы.
Эти директивы применяются к документам в каталоге, где Файл .htaccess
расположен и во все подкаталоги
под него же. Другие файлы .htaccess
в подкаталогах
может изменить или аннулировать эффекты тех, что находятся в родительских каталогах; видеть
раздел о слиянии для получения дополнительной информации.
В качестве текстовых файлов вы можете использовать любой текстовый редактор, который вам нравится создавать или
внести изменения в файлы . htaccess
.
Эти файлы называются «файлы .htaccess
», потому что они
как они обычно называются. Эта схема именования уходит своими корнями в
веб-сервер NCSA и файловая система Unix; файлы, имена которых
начинаются с точки, часто считаются «скрытыми» и не
отображается в обычном списке каталогов. Разработчики NCSA
выбрал имя .htaccess
' чтобы управляющий файл
в каталоге будет иметь довольно разумное имя («ht» для
«гипертекст») и не загромождать списки каталогов. Плюс, есть
долгая история утилит Unix, хранящих информацию о своих предпочтениях
в таких «скрытых» файлах.
Однако имя « .htaccess
» не является общеприемлемым.
Иногда может быть довольно сложно убедить систему разрешить вам создавать
или отредактируйте файл с таким именем. По этой причине вы можете изменить
имя, которое Apache будет использовать при поиске этих каталогов
конфигурационные файлы с помощью AccessFileName
в вашем
сервер httpd. conf
файл. Например,
AccessFileName ht.acl
заставит Apache искать файлы с именем ht.acl
вместо этого .htaccess
. Однако к ним будут относиться так же,
и они по-прежнему называются «файлы .htaccess
» для
удобство.
Когда Apache определяет, что запрошенный ресурс действительно представляет собой
файл на диске, он запускает процесс, называемый ходить по каталогу .'
Это включает в себя проверку внутреннего списка
контейнеры, чтобы найти подходящие,
и, возможно, поиск каталогов в файловой системе для .htaccess
файлов.
Каждый раз, когда обход каталога находит новый набор директив, которые применяются на просьбу они слили с настройками уже накоплено. Результатом является набор настроек, которые применяются к окончательный документ, отобранный из всех его предков каталогов и конфигурационные файлы сервера.
При поиске файлов .htaccess
Apache запускается с
вершина файловой системы. (В Windows это обычно означает « C:\
»;
в противном случае — корневой каталог «/
».) Затем он проходит по
каталоги к каталогу, содержащему окончательный документ, обработку и слияние
любые файлы .htaccess
, которые, как говорят файлы конфигурации, должны
обрабатываться. (См. раздел о переопределениях
для получения дополнительной информации о том, как сервер определяет, является ли .htaccess
файл должен быть обработан или нет.)
Это может быть интенсивным процессом. Рассмотрим запрос на
который разрешается в файл
C:\Program Files\Apache Group\Apache\htdocs\foo\bar\gritch\x.html
Если не указано иное, Apache будет искать каждый из
следующие файлы .htaccess
и обработайте все, что он найдет:
- C:\.htaccess
- C:\Program Files\. htaccess
- C:\Program Files\Apache Group\.htaccess
- C:\Program Files\Apache Group\Apache\.htaccess
- C:\Program Files\Apache Group\Apache\htdocs\.htaccess
- C:\Program Files\Apache Group\Apache\htdocs\foo\.htaccess
- C:\Program Files\Apache Group\Apache\htdocs\foo\bar\.htaccess
- C:\Program Files\Apache Group\Apache\htdocs\foo\bar\gritch\.htaccess
Это много работы, чтобы вернуть один файл! И сервер будет
повторяйте этот процесс каждый раз, когда запрашивается файл. Видеть
раздел overrides для способа уменьшить
это накладные расходы с Аллововеррайднет
директива.
Поскольку файлов .htaccess
оцениваются для каждого запроса,
вам не нужно перезагружать сервер Apache всякий раз, когда вы делаете
сдача. Это делает их особенно подходящими для окружающей среды.
с несколькими группами или отдельными лицами, использующими один веб-сервер
система; если веб-мастер разрешает, он может осуществлять контроль над
свои собственные области, не принуждая веб-мастера перезагрузить Apache
с каждым изменением. Кроме того, если есть синтаксическая ошибка в .htaccess
, это влияет только на часть
веб-пространство сервера, вместо того, чтобы удерживать сервер от
вообще не работает (что и произошло бы, если бы ошибка была
в конфигурационных файлах сервера).
Не все директивы будут работать в файлах .htaccess
; Например,
нет смысла разрешать появление директивы ServerName
в одном, так как сервер уже запущен и знает его имя -- и
не может изменить его -- к тому времени, когда запрос вызовет Файл .htaccess
для чтения. Другие директивы не
разрешено, потому что они имеют дело с функциями, которые являются общесерверными, или, возможно,
слишком чувствительны.
Однако большинство директив разрешены в .htaccess
.
файлы. Если вы не уверены, взгляните на документацию директивы.
Рисунок 1 представляет собой образец, извлеченный из документации Apache. Вы можете
посмотрите, где текст говорит « Context », что . htaccess перечислены; это означает, что эта директива может использоваться в каждом каталоге
файлы конфигурации.
ДирективаSetEnvIf Синтаксис: SetEnvIf атрибут регулярное выражение envar[=значение]
[...] |
Рисунок 1: Директивная документация |
---|
Однако обратите внимание, что есть дополнительная информация о совместимости . линия; в нем говорится, что эта директива может использоваться только в .htaccess
файлы, если вы используете Apache версии 1.3.13 или
потом.
Если вы попытаетесь включить директиву в .htaccess
файл, который там не разрешен, любые запросы на документы под
этот каталог приведет к ошибке « 500ServerError
».
страницу ошибки и сообщение в журнале ошибок сервера.
Если ваш файл .htaccess
содержит директивы, которые не
охватываются текущим набором категорий переопределения, они не будут вызвать ошибку — сервер их просто проигнорирует. Так что ваши
файл может содержать директивы в любой или во всех категориях,
и только те, которые относятся к категориям, перечисленным в Аллововеррайд
список будет обработан. Все остальные будут проверяться на
синтаксис, но иначе не интерпретируется.
Директивы Apache делятся на семь различных категорий, и все они могут
появляются в конфигурационных файлах сервера. Всего пять категорий
может использоваться в файлах .htaccess
, хотя и для того, чтобы
Apache принять директиву в файле каталога на ,
настройки для каталога должны разрешать директиву
категория будет переопределено .
Пять категорий директив:
-
Аутконфиг
- Эта категория предназначена для контроля
директивы, связанные с безопасностью веб-страницы, такие как
AuthName
,Удовлетворить
иТребовать
директивы. Это самая распространенная категория, которая позволяет быть переопределено, так как позволяет пользователям защищать свои собственные документы. -
Информация о файле
- Директивы, управляющие обработкой файлов,
-
Индексы
- Директивы, влияющие на списки файлов, должны находиться в этом
категория. Он включает
IndexOptions
,AddDescription
иDirectoryIndex
, Например. -
Ограничение
- Эта категория аналогична категории
AuthConfig
. в том, что директивы, которые он охватывает, обычно связаны с безопасность. Тем не менее, они обычно включают непроизвольный элементы управления, такие как управление доступом по IP-адресу. Директивы этой категории включаютПриказ
,Разрешить
иЗапретить
. -
Опции
- Категория
Options
предназначена для директив которые поддерживают различные параметры, такие какContentDigest
,XBitHack
иОпции самого
.
Специальная директива, которую можно использовать только на уровне сервера.
файлы конфигурации, определяющие, какие категории могут быть переопределены
в любом конкретном дереве каталогов. Директива AllowOverride
принимает два специальных
ключевые слова в дополнение к названиям категорий, перечисленным выше:
-
Все
- Это сокращенный способ перечисления всех категории; два приведенных ниже утверждения эквивалентны:
AllowOverride AuthConfig FileInfo Индексы Ограничения Параметры Разрешить переопределить все
-
Нет
- Это ключевое слово полностью отключает обработку
. htaccess
файлы для указанного каталога и его потомки (если только другойAllowOverride
директива для подкаталога определяется в файлах конфигурации сервера). «Отключено» означает, что Apache не будет даже искать для.htaccess
файлы, не говоря уже об их обработке. Этот может привести к экономии производительности, и именно поэтому defaultФайл httpd.conf
включает такой директива для системного каталога верхнего уровня..htaccess
обработка отключена для всех каталоги по умолчанию этой директивой и только выборочно включается для тех деревьев, где это делает смысл.
Как показано выше, директива AllowOverride
принимает
разделенный пробелами список названий категорий в качестве аргумента.
Разрешив использование файлов .htaccess
в пользовательских (или
клиент или клиент) каталоги, вы, по сути, расширяете
часть ваших привилегий веб-мастера всем, кто может редактировать эти
файлы. Поэтому, если вы решите сделать это, вам следует подумать
время от времени выполняя аудит, чтобы убедиться, что файлы
должным образом защищены - и, если вы действительно амбициозны,
что они содержат только те настройки, которые вы одобряете.
Из-за очень грубой детализации возможного переопределения
категории, вполне возможно, что, предоставив пользователю
возможность переопределить один набор директив, которые вы непреднамеренно
делегировать больше власти, чем вы ожидаете. Например,
вы можете включить " AllowOverrideFileInfo
"
директива для пользовательских каталогов, чтобы люди могли использовать Директива AddType
для маркировки документов с помощью MIME
типы, которых нет в общем списке сервера, но знали ли вы,
когда вы сделали это, вы также предоставили им доступ к Псевдоним
, Заголовок
, Действие
и Также переписать* директивы
? Директивы
связанные с категориями переопределения в модуле на основе, поэтому отслеживание того, что разрешено, путем разрешения определенного
категория переопределения может быть утомительным процессом.
Окончательный ответ на то, какие директивы в каких категориях находятся исходный код. Если вы действительно хотите знать, изучите источник для следующих строк:
Строка | Соответствующий AllowOverride Ключевое слово |
---|---|
OR_AUTHCFG | Аллововеррайд Аутконфиг |
OR_FILEINFO | Аллововеррайд FileInfo |
OR_INDEXES | Индексы AllowOverride |
OR_LIMIT | Предел Аллововеррайд |
OR_OPTIONS | Параметры Аллововеррайд |
(См. предыдущий раздел для описания того, что означают различные категории переопределения.)
Как видите, за исключением ключевых слов AuthConfig/AUTHCFG, исходные ключевые слова идентичны ключевым словам директивы. Этот удобно!
Прежде чем включать файлы .htaccess
, обратите внимание на
преимущества и недостатки. На серверах запускаю сам, с
нет пользователей, я предпочитаю .htaccess
файлы для
тестирование и отладка, и когда у меня есть конфигурация, я
например, я перемещаю директивы в
контейнер в файле httpd.conf
и удалите Файл .htaccess
. По этой причине у меня есть
переопределения включены практически везде. Это позволяет мне сбалансировать
удобство файлов .htaccess
против
их влияние на производительность.
На некоторых моих серверах у меня есть учетные записи пользователей для людей Я знаю и доверяю, и в таких условиях я больше осторожны и не разрешайте все переопределения глобально. я до склонны позволять тому, что важнее моих друзей для их собственные каталоги, однако.
И в некоторых случаях у меня есть настоящие «пользовательские» учетные записи, для людей, которых я , а не тоже знают -- и на этих серверах AllowOverrideNone
— это правило. я
иногда разрешать файлы .htaccess
в своих
частные каталоги, но я тщательно проверяю возможные
эффекты перед присвоением категории переопределения.
Два основных недостатка использования .htaccess
влияние на производительность и расширение контроля
доступ к др. С первым в некоторой степени можно справиться
разумное использование AllowOverride
директива, а последняя является вопросом установления доверия --
и проведение оценки рисков. Какая смесь работает лучше всего в вашем
среда - это то, что вам нужно определить для
самим собой.
Вот некоторые из наиболее распространенных проблем, которые я видел у людей.
(или был сам) с .htaccess
файлов. Одна вещь, которую я
Однако сначала следует подчеркнуть: журнал ошибок сервера - ваш друг. Вы всегда должны обращаться к журналу ошибок, когда кажется, что что-то не так.
правильно функционировать. Если это ничего не говорит о вашем
проблема, попробуйте повысить детализацию сообщения, изменив Директива LogLevel
для отладки
. (Или же
добавление строки LogLeveldebug
, которой у вас нет LogLevel уже
).
- Страница «Внутренняя ошибка сервера» отображается, когда документ запрос
- Это указывает на проблему с вашей конфигурацией. Проверить
Файл журнала ошибок Apache для более подробного объяснения того, что
пошло не так. Вероятно, вы использовали запрещенную директиву.
в файлах
.htaccess
или иметь директиву с некорректным синтаксис. -
Файл .htaccess
, похоже, ничего не меняет - Возможно, каталог находится в области
Директива AllowOverrideNone
. Попробуйте поставить строку тарабарщины в файле.htaccess
и принудительно перезагрузить страницы. Если вы по-прежнему получаете ту же страницу вместо " Internal Server Error ", то это, вероятно, причина проблемы. Другая небольшая возможность заключается в том, что документ который вы запрашиваете, на самом деле не контролируется. htaccess
файл, который вы редактируете; это может иногда происходить, если вы получаете доступ документ с общим именем, напримерindex.html
. Если есть вероятность этого, попробуйте изменить фактический документ и повторный запрос, чтобы убедиться, что вы видите изменение. этого не происходит. - Я добавил несколько директив безопасности в свой
.htaccess
файл, но у меня не запрашивается имя пользователя и пароль - Наиболее распространенной причиной этого является наличие файла
.htaccess
. директивы в рамкахSatisfyAny
директива. Явно отключите это, добавивSatisfyAll
в файл.htaccess
, и попробуй еще раз.
После того, как вы запустили и запустили веб-сервер Apache, первый препятствие было преодолено. Теперь можно переходить к изучению его возможности и особенности. Вот несколько ссылок на ресурсы для дальнейшего расследования:
- Основной веб-сайт Apache, конечно же: http://www. apache.org/>
- Документация для Apache и его модулей: http://www.apache.org/docs/>
- Каноническая страница ответа по электронной почте:
http://www.apache.org/foundation/preFAQ.html>
( Эта страница обычно используется для ответов на запросы по электронной почте о поддержку, но есть лотов хороших ресурсов, перечисленных на Это. )
Apache предоставляет два основных способа управления своим поведением на на уровень каталога : контейнеры
в общесерверных файлах конфигурации и .htaccess
файлы в каждом каталоге, где они необходимы. Каждый метод имеет свой
преимущества и его недостатки; вам, как веб-мастеру, необходимо
сбалансировать их друг с другом, чтобы решить, какое сочетание
методы лучше всего подходят для вашей среды.
Если вы делаете решите разрешить использование .htaccess
файлы, обязательно ограничьте их соответствующими областями и улучшите
вашей производительности с помощью AllowOverrideNone
в другом месте.