You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
5.8 KiB
68 lines
5.8 KiB
2 years ago
|
# Настройка apache2 сервера в linux
|
||
|
## Общие положения
|
||
|
Все настройки содержатся в папке /etc/apache/:
|
||
|
* /etc/apache2/apache2.conf отвечает за основные настройки
|
||
|
* /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
|
||
|
* /etc/apache2/mods-available/* - настройки модулей
|
||
|
* /etc/apache2/sites-available/* - настойки виртуальных хостов
|
||
|
* /etc/apache2/ports.conf - порты, на которых работает apache
|
||
|
* /etc/apache2/envvars - переменные используемые сервером
|
||
|
|
||
|
## Настройка сервера Apache через htaccess
|
||
|
(не разбирался)
|
||
|
(сталкивался в wordpress)
|
||
|
|
||
|
Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.
|
||
|
|
||
|
Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.
|
||
|
|
||
|
А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:
|
||
|
|
||
|
Order Deny,Allow
|
||
|
Deny from all
|
||
|
|
||
|
Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:
|
||
|
|
||
|
RewriteEngine on
|
||
|
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]
|
||
|
|
||
|
## Модули
|
||
|
* Просмотр перечня запущеных модулей<p>
|
||
|
$ apache2ctl -M
|
||
|
|
||
|
* Включение модуля<p>
|
||
|
$ sudo a2enmod имя_модуля
|
||
|
|
||
|
* Отключение модуля<p>
|
||
|
$ sudo a2dismod имя_модуля
|
||
|
|
||
|
* После включения или отключения модулей нужно перезагрузить apache:<p>
|
||
|
$ sudo systemctl restart apache2
|
||
|
|
||
|
Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка.
|
||
|
|
||
|
Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:<p>
|
||
|
|
||
|
$ a2enconf имя_модуля
|
||
|
$ a2disconf имя модуля
|
||
|
|
||
|
включим несколько необходимых, но не включенных по умолчанию модулей:
|
||
|
|
||
|
$ sudo a2enmod expires
|
||
|
|
||
|
$ sudo a2enmod headers
|
||
|
|
||
|
$ sudo a2enmod rewrite
|
||
|
|
||
|
$ sudo a2enmod ssl
|
||
|
|
||
|
Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.
|
||
|
|
||
|
## Настройка виртуальных хостов
|
||
|
Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
|
||
|
* ServerName - основное имя домена
|
||
|
* ServerAlias - дополнительное имя, по которому будет доступен сайт
|
||
|
* ServerAdmin - электронная почта администратора
|
||
|
* DocumentRoot - папка с документами для этого домена
|
||
|
|