|
Следующая версия
|
Предыдущая версия
|
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}} | |
| |
| |