Настройка vds на ubuntu 14.04. часть 6. установка и настройка apache

4: Настройка перезаписи

Данный раздел покажет, как настроить базовую перезапись URL-адресов. В качестве примера используется ссылка example.com/about.

Создайте файл about.html:

Скопируйте следующий код и поместите его в файл:

Обратите внимание: доступ можно получить только к about.html. Если вы введёте ссылку ip_адрес_сервера /about, вы получите ошибку 404 Not Found

Создайте правило перезаписи, чтобы исправить это.

Откройте файл .htaccess:

Добавьте в него следующую строку:

Теперь файл содержит такие настройки:

Теперь браузер сможет обслуживать страницу example.com/about.

На примере этого правила можно рассмотреть общий синтаксис перезаписи.

  • ^about$ – шаблон, с которым совпадает URL, и который пользователи вводят в браузере. В данном примере используются метасимволы, благодаря которым можно чётко обозначить местонахождение шаблона: символ ^ определяет начало шаблона, а • $ – конец.
  • about.html: исходный путь к странице, по которому обслуживается файл about.html.
  • : флаг, который отключает чувствительность URL-адреса к регистру.

Согласно этому правилу, доступ к странице можно получить по следующим ссылкам:

А такие ссылки не сработают:

5 шагов для ускорения работы Apache

Ускорить работу Apache можно на двух основных стадиях:

  • Во время компиляции – настройки при установке сервера.
  • Во время выполнения — установка параметров, влияющих на сервер во время его работы.

Настройки для ускорения Apache во время компиляции

Нужно выбирать вариант установки Apache, исходя из ваших требований. Это поможет создать быстрый и эффективный веб-сервер.

Загружайте только нужные модули

В Apache функциональность реализуется путем добавления модулей. Они бывают двух типов: статические и динамические (общие).

Чтобы посмотреть список модулей, поддерживаемых вашим сервером, используйте команду apachectl -M. Статические модули компилируются в бинарные файлы httpd, а динамические загружаются непосредственно во время выполнения.

Статические и динамические модулиключевые различия

Статические модули Динамические модули
Компилируются в бинарные файлы Добавляются во время выполнения
Требуют перекомпиляции кода Перекомпиляция не требуется
Быстро загружаются Замедляют веб-сервер

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

Но большое количество динамических или общих модулей может замедлить работу сервера Apache и сайта

Поэтому при выборе модулей требуется соблюдать осторожность

Чтобы увеличить скорость работы и производительность, используйте минимальное количество динамических модулей, поскольку они уменьшают объем доступной памяти.

Выберите правильный MPM

В Apache используются MPM (мульти-процессинговые модули), которые обрабатывают запросы, приходящие на сервер. Они прослушивают сетевые порты сервера, принимая запросы и создавая дочерние процессы.

MPM бывают двух типов: Prefork и Worker. В MPM Prefork каждый процесс httpd обрабатывает один сетевой запрос. Это более безопасно по сравнению с MPM Worker, но требует большего количества памяти и ресурсов.

MPM – Prefork и Worker

MPM Prefork MPM Worker
Один поток Несколько потоков
Использует больше ресурсов Использует меньше памяти
Отказоустойчив Справляется с большим трафиком

При использовании MPM Worker Apache работает в режиме многопоточного сервера, где каждый отвечает за свой запрос. Этот вариант подходит для обработки большего трафика при ограниченных мощностях сервера.

По умолчанию большинство установок Apache используют модуль Prefork. Он применяется для обработки больших объемов трафика. Вы можете проверить, какой модуль MPM использует ваш сервер при помощи следующей команды:

Определение типа MPM на вашем веб—сервере Apache

В Apache 2.4 появилась поддержка э MPM модуля Event, который может обрабатывать множественные запросы внутри одного потока. Поэтому он работает даже быстрее, чем модуль Worker.

Настройка HTTPS в Apache

Создание ключа и ssl-сертификата

Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.

Для создания ключа и сертификата вводим команду:

openssl req -new -x509 -days 30 -keyout server.key -out server.pem

На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.

На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter, соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.

После ответа на все вопросы в директории должны появиться два новых файла — (ключ) и (сертификат).

Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? :) Поэтому снимаем пароль с ключа:

cp server.key{,.orig}
openssl rsa -in server.key.orig -out server.key
rm server.key.orig

Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:

sudo cp server.pem etcsslcerts
sudo cp server.key etcsslprivate
sudo chmod 0600 etcsslprivateserver.key

Настройка Apache

Для начала необходимо активировать :

sudo a2enmod ssl

А затем включить настройки HTTPS сайта по умолчанию:

sudo a2ensite default-ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется (или ).

В этом файле рекомендуется после директивы

SSLEngine on

добавить строчку

SSLProtocol all -SSLv2

чтобы запретить использование устаревшего протокола SSLv2.

Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.

# Публичный сертификат сервера
SSLCertificateFile    /etc/ssl/certs/server.pem
# Приватный ключ сервера
SSLCertificateKeyFile /etc/ssl/private/server.key

Теперь просто перезагрузите Apache:

sudo service apache2 restart

И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.

Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.

Перенаправление HTTP запросов на HTTPS

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью . Если он не включён — включаем:

sudo a2enmod alias
sudo service apache2 restart

Затем изменяем файл , отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву

Redirect / https://example.com/

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.

Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.

Объединение файла .htaccess с главными конфигурационными файлами

Файлы .htaccess могут перезаписать раздел <Directory> для соответствующей директории, но будут перезаписаны другими типами конфигурационных разделов из главных конфигурационных файлов. Это можно использовать для закрепления конкретных конфигурацией, даже при наличии либеральных настроек AllowOverride. Например, для предотвращения выполнения скрипта, но позволив все другие настройки в .htaccess, вы можете использовать:

<Directory "/www/htdocs">
    AllowOverride All
</Directory>

<Location "/">
    Options +IncludesNoExec -ExecCGI
</Location>

Этот пример подразумевает, что вашим DocumentRoot является /www/htdocs.

Настройка виртуальных хостов

Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост

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

По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.

Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.

Однако сначала мы отключим стандартный файл конфигурации командой:

$ sudo a2dissite 000-default

Теперь скопируем его содержимое в файл, который будет содержать настройки Вашего сайта.

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

$ sudo cp /etc/apache2/sites-available/000-default.conf 
/etc/apache2/sites-available/site1.conf

Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:

$ sudo nano /etc/apache2/sites-available/site1.conf

Приведем содержимое файла к следующему виду:

<VirtualHost *:80>
 ServerName site1.com 
 DocumentRoot /var/www/site1/public_html

<Directory /var/www/site1/public_html>
 AllowOverride All
 Require all granted
 </Directory>

ErrorLog /var/www/site1/error.log
 CustomLog /var/www/site1/access.log combined
</VirtualHost>

Поясним приведенные выше параметры.

Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.

Имя этого хоста Вы указали в параметре ServerName — полное доменное имя Вашего сайта.

Далее следует директива DocumentRoot — она задает путь до директории, в которой хранятся файлы сайта site1 (все необходимые директории мы создадим позже).

Следующий параметр — блок <Directory>. Он задает настройки, которые будут применены для конкретной папки.

В данном случае:

  • AllowOverride All — разрешение допускать настройки, заданные в .htaccess;
  • Require all granted — доступ к каталогу разрешен всем.

В параметре ErrorLog мы указали расположение файла с логами ошибок.

В CustomLog — расположение файла с логами доступа.

После указания всех необходимых параметров закройте файл, сохранив изменения.

Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:

$ sudo mkdir /var/www/site1/
$ sudo chown www-data:www-data /var/www/site1/
$ sudo mkdir /var/www/site1/public_html
$ sudo chown www-data:www-data /var/www/site1/public_html

На этом этапе настройка виртуального хоста завершена, но желательно, конечно, проверить корректность его работы.
Для этого рекомендуем Вам создать index-файл в директории public_html:

$ nano /var/www/site1/public_html/index.html

Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:

<html>
 <head>
 <title>Удалось!</title>
 </head>
 <body>
 <h1>Виртуальный хост работает!</h1>
 </body>
</html>

Далее включите сайт следующей командой:

$ sudo a2ensite site1

И выполните перезагрузку Apache:

$ sudo service apache2 restart

Теперь необходимо ввести в браузере адрес сайта, виртуальный хост для которого Вы настраивали. Если все работает, как нужно, на экране будет отражено содержимое созданного Вами индексного файла.
Надеемся, все получилось :)

Шаг 3: Первый запуск локального веб-сервера

Приступим к первому запуску локального веб-сервера Apache для проверки его работоспособности. Надо это для того, чтобы при дальнейшей настройке у вас не возникло серьезных неполадок, на решение которых потратится много времени.

  1. Щелкните правой кнопкой мыши по меню «Пуск» и из появившегося меню выберите пункт «Windows PowerShell (администратор)».

Введите команду и нажмите Enter для ее активации. Она установит компоненты Apache и подготовит их к работе.

После получения информации об успешной установке сервисов переходите к следующему шагу.

Запуск веб-сервера осуществляется через команду c.

Появится оповещение Безопасности Windows, которое следует подтвердить, нажав «Разрешить доступ».

Откройте любой браузер и перейдите по адресу . Если на странице появилась надпись «Index of /», значит, все действия выполнены правильно.

При получении ошибки в консоли, свидетельствующей об отсутствии необходимых папок, перейдите в каталог «Server», создайте там директорию «data» с подпапкой «htdocs».

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Настройка Apache (необязательно)

Теперь, когда у вас есть Apache, обслуживающий веб-страницы на вашем Ubuntu 20.04, могут потребоваться дополнительные настройки конфигурации. 

Apache по умолчанию будет перечислять содержимое ваших каталогов без индексов (index.html, index.РНР).Это угроза безопасности, поскольку она позволяет хакерам просматривать ваш веб-сервер в поисках сценариев.

Вы также обнаружите, что.htaccessпо умолчанию в Apache будет игнорироваться.Если понадобится .htaccess, вы можете включить его, изменив файл конфигурации Apache.

Откройте файл конфигурации:

sudo nano /etc/apache2/apache2.conf

Нажмите CTRL+Wи найдите<Directory /var/www/>.

Блок должен выглядеть примерно так:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Удалите Indexes, чтобы остановить список каталогов Apache, и изменитеAllowOverride None на AllowOverride All, чтобы включить .htaccess.Теперь это должно выглядеть так:

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Сохраняем и выходим (CTRL+X, Y, ENTER).

Далее перезапускаем Apache.

sudo systemctl restart apache2

Включить mod_rewrite

Если вы хотите настроить некоторые правила .htaccess, вам, скорее всего, придется включитьmod_rewrite.

sudo a2enmod rewrite

Далее нужно перезапустить Apache.

sudo systemctl restart apache2

На этом полная установка и настройка стека LAMP завершена.

В скором времени ждите материал по установке phpMyAdmin. Всех с наступающим!

Настройка

Для применения изменений в настройках необходимо перезапустить демон Apache:

sudo service apache2 restart
       /etc/apache2/
       |-- apache2.conf
       |       `--  ports.conf
       |-- mods-enabled
       |       |-- *.load
       |       `-- *.conf
       |-- conf-enabled
       |       `-- *.conf
       `-- sites-enabled
               `-- *.conf

Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды или . Пример подключения модуля:

sudo a2enmod <mod-name>

Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды или . Пример подключения файла со своими настройками:

sudo a2enconf <config-name>

Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды или . Пример подключения виртуального хоста:

sudo a2ensite <site-name>

Кодировка по умолчанию

Для указания кодировки по умолчанию следует использовать директиву в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):

AddDefaultCharset UTF-8

Виртуальные хосты

Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.

Пример настройки виртуального хоста:

<VirtualHost *:80>
    #Имя хоста
    ServerName host1.server1
    #Корневая папка хоста
    DocumentRoot /var/www/host1.server1
    <Directory /var/www/host1.server1>
        #Разрешение на перезапись всех директив при помощи .htaccess
        AllowOverride All
    </Directory>
</VirtualHost>

Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.

После создания файла настроек допишите в /etc/hosts имя вашего хоста:

127.0.0.1    host1.server1

Для включения созданного виртуального хоста используется утилита :

sudo a2ensite host1.server1

Отключается хост аналогично утилитой :

sudo a2dissite host1.server1

mod_userdir

Модуль позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html

mkdir ~public_html

Чтобы включить , выполните:

sudo a2enmod userdir

и добавьте необходимого пользователя в группу www-data:

sudo adduser $USER www-data

после чего перезагрузите Apache:

sudo service apache2 restart

Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.

CGI

Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль командой

sudo a2enmod cgi

По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно,
указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле
/etc/apache2/conf-enabled/serve-cgi-bin.conf.

Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста

Установка MySQL

Следующий компонент вашегостека LAMP на Ubuntu 20.04 – MySQL.

Начните с обновления репозиториев и установки пакета MySQL. Нажмитеy иENTER при появлении запроса на установку.

sudo apt update && sudo apt install mysql-server

После завершения установки пакета мы можем проверить, работает ли служба MySQL:

sudo service mysql status

При запуске вы увидите зеленый активный статус:

mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2020-04-02 02:40:59 CEST; 2min 47s ago
   Main PID: 18476 (mysqld)
     Status: "Server is operational"
      Tasks: 27 (limit: 4915)
     CGroup: /system.slice/mysql.service
             └─18476 /usr/sbin/mysqld

Apr 02 02:40:59 ubuntu2004 systemd: Starting MySQL Community Server...
Apr 02 02:40:59 ubuntu2004 systemd: Started MySQL Community Server.

Возможно, вам придется нажатькнопку q, чтобы выйти из состояния службы, если вы используете SSH-клиент.

Настройка безопасности MySQL

Теперь вы должны запустить mysql_secure_installation, чтобы настроить безопасность для вашего сервера MySQL на Ubuntu 20.04.

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:

sudo systemctl enable apache2

Модули Apache

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

Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available

Список уже включенных модулей — в директории /etc/apache2/mods-enabled

Перейти в директорию можно командой cd, например:

$ cd /etc/apache2/mods-enabled

Чтобы просмотреть содержимое текущего каталога, наберите:

$ ls

Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.

Например, Вы можете включить CGI-скрипты следующей командой:

$ sudo a2enmod cgi

С информацией о каждом модуле можно ознакомиться на сайте Apache.

Настройки авторизации

Одним из главных отличий синтаксиса Apache 2.4 является способ авторизации пользователей.

Авторизация основывается на директивах, которые определяют, что может делать аутентифицированный пользователь. Другими словами, эти директивы задают критерии, согласно которым пользователь может или не может выполнить ту или иную операцию или получить доступ к определённому контенту.

Этим авторизация отличается от аутентификации (которая происходит сначала). Процедура аутентификации определяет, как пользователь распознаётся на сервере. Аутентификация в Apache 2.2 и 2.4 почти не изменилась, чего нельзя сказать о процедуре авторизации.

Во-первых, в Apache 2.4 компоненты авторизации могут использовать синтаксис Require, ранее доступный для аутентификации. Это позволяет определить порядок авторизации, не полагаясь на сложный набор правил. Теперь вы можете настроить процесс авторизации, указав настройки по умолчанию, а затем исключения из них.

К примеру, чтобы установить настройки по умолчанию для приема трафика, но при этом заблокировать определенный вредоносный ip-адрес, можно добавить в конфигурационный файл такой код:

Это установит стандартную политику приёма всего трафика, исключив из неё заведомо вредоносный IP-адрес 111.111.111.111. Чтобы эти настройки работали, нужно включить их при помощи блока директив RequireAll.

Авторизация может происходить не только на основе данных о пользователе или группе, но и руководствуясь такими факторами, как env, host, ip и all.

  • all: пропускает весь трафик, подходит для настроек по умолчанию.
  • env: проверяет, установлены ли переменные окружения.
  • host: проверяет имя хоста подключающегося клиента.
  • ip: проверяет IP-адрес подключающегося пользователя.

Трафик будет проверяться по этим факторам в зависимости от их порядка в конфигурации сервера. Как правило, эти настройки находятся в следующих блоках:

  • RequireAll: для получения доступа должны быть выполнены все без исключения требования авторизации.
  • RequireAny: для получения доступа должно быть выполнено хотя бы одно требование, заданное в данном блоке настроек.
  • RequireNone: для получения доступа трафик не должен соответствовать заданным требованиям авторизации.

Эти настройки делают процесс авторизации очень гибким. Кроме того, эти директивы можно встраивать друг в друга:

Таким образом Apache позволяет настроить тщательно продуманные пути авторизации. Вышеприведённый код авторизует пользователя, если он – root и его IP-адрес 123.123.123.123, а также пользователей по имени anthony и состоящих в группах sysadmins и useraccounts. Пользователи, которые состоят в группе restrictedadmin или чьё имя хоста отмечено на bad.host.com, не будут авторизованы.

Такие блоки настроек авторизации гораздо проще понять, чем стандартные директивы для управления доступом; как помните, в предыдущих версиях Apache для этого использовались директивы Order, Allow from, Deny from и Satisfy. Они всё ещё могут быть использованы в конфигурациях, но по сравнению с новым, более понятным синтаксисом они устарели.

Эти директивы перемещены в отдельный блок по имени mod_access_compat, потому его нужно включить, чтобы получить доступ к ним. Конечно, лучше всё-таки пользоваться новыми возможностями синтаксиса, поскольку они позволяют определить гораздо более гибкую политику.

Шаг 5: важные файлы и директории Apache

После того, как вы научились работать с сервером, необходимо поговорить о нескольких важных директориях и файлах Apache.

Контент

/var/www/html: здесь находится тот веб-контент, который изначально стоит только из стандартной приветственной страницы Apache, которую вы видели выше.

Конфигурация сервера

  • /etc/apache2: конфигурационная директория Apache. Здесь находятся все конфигурационные файлы.
  • /etc/apache2/apache2.conf: основной конфигурационный файл Apache. Его можно использовать для общих конфигурационных изменений Apache. Этот же файл отвечает за загрузку остальных конфигурационных файлов в этой директории.
  • /etc/apache2/ports.conf: этот файл отвечает за порты, которые используются для подключения к серверу. По умолчанию это порт 80 и иногда 443 порт (если включен модуль для обработки SSL).
  • /etc/apache2/sites-available/: в этой директории для каждого сайта хранятся виртуальные хосты (Virtual Hosts). Apache не будет использовать файлы из этой директории до тех пор, пока они не привязаны к директории sites-enables. То есть sites-available – это все доступные хосты, а sites-enabled – это включаемые сервером. Поэтому для создания нового виртуального хоста вам нужно сначала создать его файл в этой директории, а затем дать ссылку на этот виртуальный хост в директории sites-enabled для того, чтобы включить его.
  • /etc/apache2/sites-enabled/: директория для включения виртуальных хостов, которая была упомянута выше.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: директории для тех конфигурационных фрагментов, которые не связаны с виртуальными хостами. Связь между этими диреториями схожа со связью между двумя директориями выше. Файлы в conf-available вы можете включать при помощи команды a2enconf и выключать командой a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти директории содержат доступные и включенные модули соответственно. Файлы, которые заканчиваются на .load, содержат фрагменты для загрузки определенных модулей, а файлы, заканчивающиеся на .conf , содержат настройки для этих модулей. Для включения модулей используйте команду a2enmod, для выключения – a2dismod.

Логи сервера

  • /var/log/apache2/access.log: по умолчанию каждый запрос к вашему серверу записывается в этот лог (до тех пор, пока вы не измените эту настройку).
  • /var/log/apache2/error.log: по умолчанию в этот лог записываются все ошибки. Директива LogLevel определяет, какое количество информации об ошибках будет записываться.

Как применяются директивы файла .htaccess

Конфигурационные директивы, найденные в файле .htaccess, применяются к директории, в которой найден файл .htaccess, и всем её поддиректориям

Тем не менее, важно также помнить, что могут быть файлы .htaccess в родительских директориях. Директивы применяются в том порядке, как они были найдены

Поэтому файл .htaccess конкретной директории может перезаписывать директивы, найденные в файлах .htaccess выше в дереве директорий. А те, в свою очередь, могли уже перезаписать директивы, найденные ещё выше или директивы самого главного конфигурационного файла сервера.

Пример:

В директории /www/htdocs/example1 у нас есть файл .htaccess содержащий следующее:

Options +ExecCGI

Примечание: у вас должна быть включена опция «AllowOverride Options» чтобы разрешить использовать директиву «Options» в .htaccess файлах. Либо значение AllowOverride должно быть установлено на All.

В директории /www/htdocs/example1/example2 у нас есть файл .htaccess содержащий:

Options Includes

Поскольку второй файл .htaccess в директории /www/htdocs/example1/example2, то выполнение CGI не разрешено, поскольку эффект будет иметь опция Options Includes, которая полностью перезаписывает значения настроек Options, имеющих место ранее.

Ответ 1

Обратите внимание, что это относится только к Ubuntu 14.04 LTS (Trusty Tahr) и более новым версиям. В моей Ubuntu 14.04 LTS корень документа был установлен в «/var/www/html»

Он был настроен в следующем файле:

/etc/apache2/sites-available/000-default.conf

 Так что просто сделайте:

sudo nano /etc/apache2/sites-available/000-default.conf

 и измените следующую строку так, как вам нужно:

DocumentRoot /var/www/html

 Также сделайте:

sudo nano /etc/apache2/apache2.conf

 и найдите это:

<Directory /var/www/html/>

Options Indexes FollowSymLinks

AllowOverride None

Require all granted

</Directory>

 Измените «/var/www/html» на желаемый каталог и сохраните его. После сохранения изменений просто перезапустите веб-сервер Apache 2, и все будет готово :)

sudo service apache2 restart

 Если вы предпочитаете графический текстовый редактор, вы можете просто заменить «sudo nano» на «gksu gedit».

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: