Инструменты пользователя

Инструменты сайта


apache_install

Установка веб-сервера предельно проста:

sudo apt install apache2

При наборе IP сервера видим стандартную заглушку.

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

sudo apt install apache2-mpm-itk

Настройки сервера содержатся в /etc/apache2/apache2.conf, к которому подключаются дополнительные файлы из директорий mods-enabled и sites-enabled. Каталоги mods-enabled и sites-enabled не содержат файлов конфигурации, а только символические ссылки на директории mods-available и sites-available, где следует располагать сами файлы. Если мы заглянем в папку sites-enabled, то увидим там уже готовую конфигурацию для сайта по умолчанию, т.е. того, что будет показано при наборе IP-адреса сервера. Данная настройка указывает на папку /var/www/html, где расположена страница заглушка. Можно просто заменить эту заглушку своим файлом. А можно к примеру задать другое расположение. К примеру мы хотим разместить на нашем сервере содержимое сайта example.com, сначала создадим необходимые директории и сделаем их владельцем пользователя, который будет работать с сайтом:

mkdir /var/www/example.com
chown andrey:andrey /var/www/example.com

Создадим файл

touch /etc/apache2/sites-available/example.com.conf

Заполним его к примеру редактором nano

<VirtualHost 1.2.3.4:80>
    ServerName example.com
    ServerAdmin mail@example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
    CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
    ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
    AssignUserID andrey andrey
    <Directory /var/www/example.com>
        Options -Includes -Indexes -ExecCGI
        AllowOverride All
    </Directory>
</VirtualHost>
  • ServerName - имя виртуального хоста, должен иметь значение полного доменного имени (FQDN), в нашем случае example.com, определяет, какое доменное имя обслуживает данный виртуальный хост.
  • ServerAdmin - контактный адрес электронной почты администратора домена, включается в сообщения об ошибках веб-сервера, рекомендуется завести для этих целей отдельный ящик.
  • ServerAlias - алиас имени хоста, обязательно значение www.example.com, чтобы ваш сайт работал как с www, так и без.
  • DocumentRoot - корневая папка виртуального хоста, указываем директорию размещения сайта, т.е. /var/www/example.com
  • CustomLog - имя и расположение лога доступа, переменная ${APACHE_LOG_DIR} указывает на стандартную директорию логов веб-сервера, это позволяет использовать стандартный механизм ротации логов для всех сайтов, в имени лога рекомендуем указывать имя хоста, чтобы сразу было понятно где какой лог. Не забудьте в конце опцию combined, данная опция указывает формат лога и задается в apache2.conf.
  • ErrorLog - имя и расположение лога ошибок, полностью аналогичен логу доступа, но не требуется указывать формат лога.
  • AssignUserID - имя и группа пользователя (через пробел) от имени которых будет работать данный виртуальный хост, задается только если установлен apache2-mpm-itk, ====== в противном случае эта директива не нужна ======. (не проверял)

Чтобы включить сайт необходимо сделать символьную ссылку на файл конфигурации в каталоге sites-enabled, а, чтобы выключить - удалить эту ссылку. Это можно сделать вручную, при помощи команды ln -s, или использовать специальную утилиту apache:

a2ensite example.com

Для выключения соответственно

a2dissite example.com

Перезапустим сервер

/etc/init.d/apache2 restart

Теперь создадим наш индекс /var/www/examlpe.com/index.html с содержимым

<body><h1>OK!</h1></body>

apache_install.txt · Последнее изменение: 2021/01/03 17:45 — dja