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

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


linux:apache

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:apache [2021/07/18 16:21]
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>
Строка 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**) Для **автопродления** создаем задачу в планировщике (**crontab -e**). Уточните точный путь (**which certbot**)
-<code bash># 0 0 * * 1,4 /bin/certbot renew</code>+<code bash># 0 0 * * 1,4 /usr/bin/certbot renew</code>
  
  
Строка 41: Строка 121:
     SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key     SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key
 </VirtualHost></code> </VirtualHost></code>
- 
  
 Проверяем корректность настроек: Проверяем корректность настроек:
Строка 52: Строка 131:
 На данном этапе сайт **уже должен быть доступен по https**.\\ На данном этапе сайт **уже должен быть доступен по https**.\\
  
-Со старого сайта (блока <VirtualHost *:80>) делаем редирект на новый, в итоге должно быть типа того:+ 
 +=== Редирект === 
 +Со старого сайта (блока <VirtualHost *:80>) делаем редирект на новый, в итоге должно получится типа того:
 <code bash> <code bash>
 <VirtualHost *:80> <VirtualHost *:80>
Строка 67: Строка 148:
     SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key     SSLCertificateKeyFile /etc/letsencrypt/live/my-site.ru/privkey.key
 </VirtualHost></code> </VirtualHost></code>
- 
- 
- 
-<code bash># </code> 
-<code bash># </code> 
-<code bash># </code> 
- 
- 
- 
linux/apache.1626625313.txt.gz · Последнее изменение: 2021/07/18 16:21 — admin