Установка
Установить пакет apache2:
sudo apt update
sudo apt install apache2
Проверить работу службы:
sudo systemctl status apache2
Настроить файерволл UFW. Для этого вывести список профилей приложений командой:
sudo ufw app list
Есть три профиля, доступных для Apache:
Apache: этот профиль открывает только порт 80 (нормальный веб-трафик без шифрования)
Apache Full: этот профиль открывает порт 80 (нормальный веб-трафик без шифрования) и порт 443 (трафик с шифрованием TLS/SSL)
Apache Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)
Разрешить трафик по профилю "Apache Full":
sudo ufw allow 'Apache Full'
Проверить изменение:
sudo ufw status
Для проверки запущенного сервера необходимо знать его IP-адрес. Узнать адрес сервера можно командой:
hostname -I
С удаленного компьютера зайти на сервер по известному IP-адресу. Должна отобразиться страница "Apache2 Ubuntu Default Page".
Настройка виртуальных хостов
В данном примере сайт будет находится в папке site. Не забудьте модифицировать команды, если хотите использовать другое имя.
В папке /var/www/ создать папку, в которой будут находиться файлы сайта:
sudo mkdir /var/www/site
Создать тестовую страницу в месте расположения будущего сайта:
sudo nano /var/www/site/index.html
В редакторе написать тестовый код:
<html>
<body>
<p>Hello!</p>
</body>
</html>
Т.к. html-файл создавался "из-под рута", необходимо изменить владельца папки со всем содержимым (рекурсивно) командой:
sudo chown -R www-data:www-data /var/www/site
Установить права доступа командой:
sudo chmod -R 755 /var/www/site
Создать новый файл с настройками виртуального хоста:
sudo nano /etc/apache2/sites-available/site.conf
С содержимым:
<VirtualHost *:80>
ServerAdmin info@localhost
ServerName site
ServerAlias www.site
DocumentRoot /var/www/site
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Активировать новый виртуальный хост командой:
sudo a2ensite site.conf
Отключить сайт по умолчанию командой:
sudo a2dissite 000-default.conf
Проверить ошибки конфигурации командой:
sudo apache2ctl configtest
Перезапустить Apache командой:
sudo systemctl reload apache2
Открыть в браузере сайт, воспользовавшись именем виртуального хоста. После копирования файлов сайта в папку /var/www/site не забывать изменять им владельца и права доступа.
Поддержка PHP
Если при переходе на сайт php-скрипты открываются как текст, а не исполняются, необходимо установить поддержку PHP. В начале установить PHP командой:
sudo apt install php
Установить дополнения для Apache2:
sudo apt install libapache2-mod-php php-mysql php-mysql
Проверить установку командой:
php -v
Перезагрузить Apache командой:
sudo systemctl restart apache2
Команды управления Apache2
Чтобы остановить веб-сервер, введите:
sudo systemctl stop apache2
Чтобы запустить остановленный веб-сервер, введите:
sudo systemctl start apache2
Чтобы остановить и снова запустить службу, введите:
sudo systemctl restart apache2
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
sudo systemctl reload apache2
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
sudo systemctl disable apache2
Чтобы перезагрузить службу для запуска во время загрузки, введите:
sudo systemctl enable apache2
Теперь Apache должен запуститься автоматически при следующей загрузке сервера.
#ubuntu #apache2 #php