# Установка Apache2

<figure><img src="https://1083642673-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV74PkAtN2kO6QcoaSgpR%2Fuploads%2FUIZ9Hj1VeDDfUrAAnFCs%2FApache2.png?alt=media&#x26;token=944756ca-9987-4a57-aa5e-bfcf8c5aeda9" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Перед установкой **Apache2** необходимо убедиться, что на сервере отсутствует nginx!
{% endhint %}

## Установка Apache2: <a href="#ustanovka-apache2" id="ustanovka-apache2"></a>

Для установки **Apache2** на VDS, необходимо прописать:

```
apt-get install apache2
```

## Настройка Apache2: <a href="#nastroika-apache2" id="nastroika-apache2"></a>

Для настройки **Apache2** переходим на /etc/apache2/sites-available и создаем файл по образцу site.conf:

```
<VirtualHost *:80>
        ServerName qwins.co # Указать домен сайта
        ServerAdmin admin@qwins.co # Ваш email
        DocumentRoot /var/www/html # Путь до папки с сайтом

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```

Включаем сайт, место site.conf должно быть названия конфига, который Вы создали:

```
a2ensite site.conf
```

**Если нужно отключить сайт**, вместо site.conf должно быть названия конфиг&#x430;**:**

```
a2dissite site.conf
```

Перезагружаем **apache2**:

```
service apache2 reload
```

#### Подключение PHP к Apache2: <a href="#podklyuchenie-php-k-apache2" id="podklyuchenie-php-k-apache2"></a>

Для того, чтобы **Apache** смог корректно отображать **php** файлы, необходимо установить пакет:

```
apt-get install libapache2-mod-php -y
```

Перезагружаем **apache2**:

```
service apache2 reload
```

## Включение rewrite: <a href="#vklyuchenie-rewrite" id="vklyuchenie-rewrite"></a>

{% hint style="danger" %}
Без этой опции не будет работать 70% CMS для сайтов.
{% endhint %}

Большинство сайтов содержат файл **.htaccess** для его работы необходимо прописать:

```
a2enmod rewrite
```

Перезагружаем **apache2**:

```
service apache2 reload
```

## Включение SSL: <a href="#vklyuchenie-ssl" id="vklyuchenie-ssl"></a>

{% hint style="info" %}
Подключение SSL не обязательно, осуществляется при его наличии и Вашем желании.
{% endhint %}

Нужно включить модуль, который отвечает за **SSL**:

```
a2enmod ssl
```

Создаем еще один конфиг в /etc/apache2/sites-available, он будет отвечать за **SSL**, например site-ssl.conf:

{% tabs %}
{% tab title="site-ssl.conf" %}

```
<VirtualHost *:443>
        ServerName qwins.co # Указать домен сайта
        ServerAdmin admin@qwins.co # Ваш email
        DocumentRoot /var/www/html # Путь до папки с сайтом
        
        SSLEngine on
        SSLCertificateFile /path/to/your_domain_name.pem # Путь до публичного сертефеката
        SSLCertificateKeyFile /path/to/your_private.key # Путь до приватного сертефеката

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```

{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}

Перезагружаем **apache2**:

```
service apache2 reload
```

## Проверка на nginx: <a href="#proverka-na-nginx" id="proverka-na-nginx"></a>

Если **apache2** поставить c nginx, то они будут конфликтовать из-за порта - 80. Так что необходимо удалить один из **web-server**. Проверяем установлен ли nginx:

```
service nginx status
```

{% hint style="info" %}
Если не будет видно огромного сообщения с информацией, значит он не установлен.
{% endhint %}

Если **nginx** установлен, нужно его удалить:

```
apt-get remove --purge nginx* -y
```

## Удаление Apache2 <a href="#udalenie-apache2" id="udalenie-apache2"></a>

Для удаления **Apache2** используйте:

```
apt-get remove --purge apache2* -y
```
