Apache
Установка и удаление apache
Команда | Описание |
---|---|
Команда | Описание |
sudo apt update | Обновление системы |
sudo apt install apache2 | Установка apache |
sudo apt purge apache2 | Очистка от apache |
sudo apt remove –purge apache2 apache2-data apache2-utils | Удаление apache |
Управление сервисом
Команда | Описание |
---|---|
sudo systemctl status apache2 | Посмотреть статус сервиса |
sudo systemctl start apache2 | Запустить сервис |
sudo systemctl stop apache2 | Остановить сервис |
sudo systemctl restart apache2 | Перезапустить сервис |
sudo systemctl reload apache2 | Перечитать без разрыва текущей сессии с хостов |
sudo systemctl disable apache2 | Деактивировать запуск web-сервера при загрузке |
sudo systemctl enable apache2 | Активировать в загрузку |
Настройка сайта sample.net
1. Узнаём где находится папка с данными из конфигурации по умолчанию.
grep "DocumentRoot" /etc/apache2/sites-available/000-default.conf
2. Создаём папку для нового сайта
sudo mkdir -p /var/www/sample.net/html
3. Создаём файл по умолчанию для нового сайта
sudo touch /var/www/sample.net/html/index.html
4. Открываем файл по умолчанию и копируем в него HTML код ниже
sudo vim /var/www/sample.net/html/index.html
Вставить текст ниже в index.html
<!DOCTYPE html> <html> <head> <title>Hello</title> <meta charset="utf-8"> </head> <body> <h1>Hello Selectel!</h1> </body> </html>
5. Копируем конфигурацию по умолчанию с новым именем
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/sample.net.conf
6. Редактируем конфигурацию нового сайта
sudo vim /etc/apache2/sites-available/sample.net.conf
Управление Apache
Для подключения виртуальных хостов, а также модулей в Apache HTTP-сервере используется набор команд:
Команда | Описание |
---|---|
a2enmod {модуль} | подключение модуля |
a2dismod {модуль} | отключение модуля |
a2ensite {конфиг виртуального хоста} | подключает виртуальный хост |
a2dissite {конфиг виртуального хоста} | отключает виртуальный хост |
Управление конфигурациями
Команда | Описание |
---|---|
sudo a2ensite sample.net.conf | Разрешить конфигурацию сайта sample.net.conf |
sudo a2dissite 000-default.conf | Запретить конфигурацию сайта 000-default.conf |
sudo systemctl reload apache2 | Перезагрузить конфигурацию apache2 |
sudo apache2ctl configtest | Проверка файлов настроек |
sudo apachectl -S | Запущенная конфигурация |
sudo apachectl -M | Отобразить загруженные модули |
Правильный файл настроек
Не забыть указать ServerName и ServerAlias, а также убедиться, что они не указывают на 127.0.0.1 на сервере, чтобы не попадать на дефолтный сайт.
<VirtualHost *:80> ServerName 30f.ru ServerAlias www.30f.ru ServerAdmin root@30f.ru DocumentRoot /var/www/30f.ru/html ErrorLog /var/www//30f.ru/logs/error.log CustomLog /var/www/30f.ru/logs/access.log combined </VirtualHost>
Запретить доступ по IP
<Directory /var/www/html/product> ... Deny 45.34.21.10 ... </Directory>
Несколько IP
<Directory /var/www/html/product> ... Deny 45.34.21.10 Deny 65.34.23.12 ... </Directory>
Доступ к файлу
<Directory /var/www/html/product> ... <location /example.pdf> ... Deny 45.34.21.10 ... </location> ... <Directory>
Внутри виртуального хоста
<VirtualHost *:8080> ... <location /example.pdf> ... Deny 45.34.21.10 ... </location> ... <VirtualHost>
Поиск и исправление ошибок
Debian/Ubuntu
sudo systemctl status apache2.service -l --no-pager sudo journalctl -u apache2.service --since today --no-pager
Centos/RedHat
$ sudo systemctl status httpd.service -l --no-pager $ sudo journalctl -u httpd.service --since today --no-pager
C помощью Apache
$ sudo apachectl configtest
Если ошибка с ServerName
$ sudo vim /etc/apache2/apache2.conf $ sudo vim /etc/httpd/conf/httpd.conf
В конец файла добаляем
ServerName 127.0.0.1
sudo apachectl configtest
Редирект с http на https
Добавить в .htaccess
RewriteEngine On RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]