Установка веб-сервера предельно проста:
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>
Чтобы включить сайт необходимо сделать символьную ссылку на файл конфигурации в каталоге 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>