Инструменты пользователя

Инструменты сайта


linux:apache

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
linux:apache [2021/07/18 16:11]
admin создано
linux:apache [2023/01/07 04:31] (текущий)
admin
Строка 1: Строка 1:
 ====== Apache ====== ====== Apache ======
 +
 +
 +===== Общее =====
 +
 +Доступные сайты хранятся в **/etc/apache2/sites-available**, активные в **-||-/sites-enabled**\\
 +Управление сайтами:
 +<code bash># {a2ensite, a2dissite} <site-name></code>
 +
 +Для работы в моей вики почему то потребовалось ставить **модуль "php"***, хотя он вроде как включен уже должен быть.., хз\\
 +<code bash>
 +$ apt install libapache2-mod-phpX.X
 +</code>
 +
 +
 +<details>
 +<summary> :!: Пример конфига сайта вики</summary>
 +<code bash>
 +<VirtualHost *:80>
 +        ServerName zxcx.ru
 +        DocumentRoot /var/www/zxcx.ru
 +
 +        <Directory /var/www/zxcx.ru>
 +            order deny,allow
 +            allow from all
 +        </Directory>
 +
 +        <LocationMatch "/(data|conf|bin|inc|vendor)/">
 +            order allow,deny
 +            deny from all
 +            satisfy all
 +        </LocationMatch>
 +
 +        Redirect / https://zxcx.ru/
 +</VirtualHost>
 +
 +<VirtualHost *:443>
 +        ServerName zxcx.ru
 +        DocumentRoot /var/www/zxcx.ru
 +        SSLEngine on
 +        SSLCertificateFile /etc/letsencrypt/live/zxcx.ru/fullchain.pem
 +        SSLCertificateKeyFile /etc/letsencrypt/live/zxcx.ru/privkey.pem
 +
 +        <Directory /var/www/zxcx.ru>
 +            order deny,allow
 +            allow from all
 +        </Directory>
 +
 +        <LocationMatch "/(data|conf|bin|inc|vendor)/">
 +            order allow,deny
 +            deny from all
 +            satisfy all
 +        </LocationMatch>
 +</VirtualHost>
 +</code>
 +</details>
 +
 +**Команды**\\
 +<code bash>
 +service apache2 reload
 +apache2ctl configtest
 +</code>
 +
 +
 +
 +=== Реинсталяция вики ===
 +Перенос вики на другой сайт:\\
 +  * перенес папку **/var/www/* ** со всем содержимым
 +  * на новом сервере поставил **certbot** и папку **/etc/letscrypt/** полностью скопировал со старого
 +  * скопировал **/etc/apache2/sites-available** и включил все сайты
 +  * **a2enmod ssl && apt install libapache2-mod-php7.3**
  
  
 ===== SSL ===== ===== SSL =====
 +
 +Возможно требуется включение модуля **SSL**\\
 +<code bash># a2enmod ssl</code>
 +
  
 ==== Получение сертификата ==== ==== Получение сертификата ====
-Получение бесплатного сертификата от Let's Encrypt.\\+=== Настройка apache ===
 При запросе, нужно подтвердить владение доменом, с помощью ТХТ-записи в DNS либо с самого веб сервера, рассматривается второй вариант т.к. есть возможность автопродления. Сертификат выдается на 90 дней.\\ При запросе, нужно подтвердить владение доменом, с помощью ТХТ-записи в DNS либо с самого веб сервера, рассматривается второй вариант т.к. есть возможность автопродления. Сертификат выдается на 90 дней.\\
  
 +:!: Этот момент под вопросом, с несколькими сайтами были проблемы :!: 
 Создаем общий конфигурационный файл (**/etc/apache2/conf-enabled/lets.conf**), в котором пропишем алиас Создаем общий конфигурационный файл (**/etc/apache2/conf-enabled/lets.conf**), в котором пропишем алиас
 <code bash>Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/</code> <code bash>Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/</code>
-в данном примере, запросы для страниц /.well-known/acme-challenge всех сайтов мы переводим в каталог /var/www/html/.well-known/acme-challenge\\+в данном примере, запросы для страниц **/.well-known/acme-challenge** всех сайтов мы переводим в каталог **/var/www/html/.well-known/acme-challenge**\\
  
 Проверяем корректность конфигурационного файла и ребутим если все норм: Проверяем корректность конфигурационного файла и ребутим если все норм:
Строка 19: Строка 94:
 <code bash># apt install certbot</code> <code bash># apt install certbot</code>
  
-Получение сертификата:+ 
 +=== Получение === 
 +Получение сертификата:\\ 
 +:!: При первом получении, сайт должен быть **доступен по http** !!!\\
 <code bash># certbot certonly --webroot --agree-tos --email admin@my-site.ru --webroot-path /var/www/html/my-site.ru/ -d my-site.ru -d www.my-site.ru</code> <code bash># certbot certonly --webroot --agree-tos --email admin@my-site.ru --webroot-path /var/www/html/my-site.ru/ -d my-site.ru -d www.my-site.ru</code>
-Создадутся 2 файла в **/etc/letsencrypt/live/my-site.ru**.\\ +Создаются 2 файла в **/etc/letsencrypt/live/my-site.ru**.\\ 
-Публичный ключ будет с именем cert.pem, а приватный — privkey.pem+Публичный ключ будет с именем **cert.pem**, а приватный — **privkey.pem**
  
-Для автопродления создаем задачу в планировщике (**crontab -e**). Уточните точный путь (**which certbot**) + 
-<code bash># 0 0 * * 1,4 /bin/certbot renew</code>+=== Автопродление === 
 +Для **автопродления** создаем задачу в планировщике (**crontab -e**). Уточните точный путь (**which certbot**) 
 +<code bash># 0 0 * * 1,4 /usr/bin/certbot renew</code>
  
  
 ==== Настройка сайтов ==== ==== Настройка сайтов ====
 +Необходимо проверить наличие модуля **ssl_module**
 +<code bash># apachectl -M | grep ssl</code>
 +Команда должна вернуть **ssl_module (shared)**, если нет, тогда включаем командой **a2enmod ssl**.\\
  
 +В конфиг сайта добавляем следующее:
 +<code bash><VirtualHost *:443>
 +    ServerName my-site.ru
 +    DocumentRoot /var/www/html/my-sitq.ru
 +    SSLEngine on
 +    SSLCertificateFile /etc/letsencrypt/live/my-site.ru/cert.pem
 +    SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key
 +</VirtualHost></code>
 +
 +Проверяем корректность настроек:
 +<code bash># apachectl configtest</code>
  
-<code bash> </code>+Применяем новую конфигурацию 
 +<code bash># apachectl graceful</code>
  
 +Не забываем **разрешить 443 порт** в файерволе.\\
 +На данном этапе сайт **уже должен быть доступен по https**.\\
  
-<code bash> </code> 
  
 +=== Редирект ===
 +Со старого сайта (блока <VirtualHost *:80>) делаем редирект на новый, в итоге должно получится типа того:
 +<code bash>
 +<VirtualHost *:80>
 +    ServerName my-site.ru
 +    DocumentRoot /var/www/html/my-sitq.ru
 +    Redirect / https://my-site.ru
 +</VirtualHost>
  
-<code bash> </code>+<VirtualHost *:443> 
 +    ServerName my-site.ru 
 +    DocumentRoot /var/www/html/my-sitq.ru 
 +    SSLEngine on 
 +    SSLCertificateFile /etc/letsencrypt/live/my-site.ru/cert.pem 
 +    SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key 
 +</VirtualHost></code>
linux/apache.1626624698.txt.gz · Последнее изменение: 2021/07/18 16:11 — admin