Следующая версия
|
Предыдущая версия
|
apache [2020/12/24 23:08] 127.0.0.1 внешнее изменение |
apache [2021/01/03 17:44] (текущий) dja |
Установка веб-сервера предельно проста: | ^ <font 26px/inherit;;#66cc00;;inherit>//Apache//</font> ^| |
| |[[:apache_install|Apache Install]]|Установка| |
| |[[:htaccess|.htaccess]]|Убираем доступ к папке| |
| |[[:htpasswd|.htpasswd]]|Установка пароля на каталог сайта| |
| |
<code> | \\ |
sudo apt install apache2 | |
</code> | |
| |
При наборе IP сервера видим стандартную заглушку. | |
| |
{{https://i.imgur.com/c01brV3.png?direct&128x200}} | |
| |
Вопрос, который следует решить, это права доступа к файлам и папкам сайта. По умолчанию их владельцем должен являться веб-сервер (пользователь и группа www-data), в противном случае скрипты могут работать неожиданным образом или не работать вообще. Более удобно и безопасно запускать содержимое сайтов от имени пользователя, а не веб-сервера. Для этого установим следующий пакет (не проверял): | |
| |
<code> | |
sudo apt install apache2-mpm-itk | |
</code> | |
| |
Настройки сервера содержатся в **/etc/apache2/apache2.conf**, к которому подключаются дополнительные файлы из директорий **mods-enabled** и **sites-enabled**. Каталоги **mods-enabled** и **sites-enabled** не содержат файлов конфигурации, а только символические ссылки на директории **mods-available** и **sites-available**, где следует располагать сами файлы. Если мы заглянем в папку **sites-enabled**, то увидим там уже готовую конфигурацию для сайта по умолчанию, т.е. того, что будет показано при наборе IP-адреса сервера. Данная настройка указывает на папку **/var/www/html**, где расположена страница заглушка. Можно просто заменить эту заглушку своим файлом. А можно к примеру задать другое расположение. К примеру мы хотим разместить на нашем сервере содержимое сайта example.com, сначала создадим необходимые директории и сделаем их владельцем пользователя, который будет работать с сайтом: | |
<code> | |
mkdir /var/www/example.com | |
chown andrey:andrey /var/www/example.com | |
</code> | |
| |
Создадим файл | |
| |
<code> | |
touch /etc/apache2/sites-available/example.com.conf | |
</code> | |
| |
Заполним его к примеру редактором **nano** | |
<code> | |
<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> | |
</code> | |
* **ServerName** - имя виртуального хоста, должен иметь значение полного доменного имени (FQDN), в нашем случае example.com, определяет, какое доменное имя обслуживает данный виртуальный хост. | |
* **ServerAdmin** - контактный адрес электронной почты администратора домена, включается в сообщения об ошибках веб-сервера, рекомендуется завести для этих целей отдельный ящик. | |
* **ServerAlias** - алиас имени хоста, обязательно значение [[http://www.example.com|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'': | |
| |
<code> | |
a2ensite example.com | |
</code> | |
| |
Для выключения соответственно | |
| |
<code> | |
a2dissite example.com | |
</code> | |
| |
Перезапустим сервер | |
| |
<code> | |
/etc/init.d/apache2 restart | |
</code> | |
| |
Теперь создадим наш индекс **/var/www/examlpe.com/index.html** с содержимым | |
| |
<code> | |
<body><h1>OK!</h1></body> | |
</code> | |
| |
{{https://i.imgur.com/HIJw7i7.png?nolink&341x210}} | |
| |
| |