# Установка Apache2

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

## Установка Apache2

Пропишем команду установки **Apache2**:

> ```
> apt-get install apache2
> ```

{% hint style="info" %}
Для centOS используйте команду «**yum install httpd**» (второе название Apache2)
{% endhint %}

## Настройка Apache2

Переходим в **sFTP** по адресу **/etc/apache2/sites-available** и создаем файл **server\_name.conf&#x20;*****(имя может быть любым)*****,** содержащий следующий текст с вашими данными:

> {% code title="server\_name.conf " %}
>
> ```
> <VirtualHost *:80>
>         ServerName sclad.team # Указать домен сайта
>         ServerAdmin admin@sclad.team # Ваш email
>         DocumentRoot /var/www/html # Путь до папки с сайтом
>
>         ErrorLog ${APACHE_LOG_DIR}/error.log
>         CustomLog ${APACHE_LOG_DIR}/access.log combined
> </VirtualHost>
> ```
>
> {% endcode %}

Для запуска сайта введите команду:

<pre class="language-javascript"><code class="lang-javascript"><strong>a2ensite server_name.conf //укажите имя файла вашего сайта
</strong></code></pre>

Для отключения сайте используйте следующую команду:

<pre class="language-javascript"><code class="lang-javascript"><strong>a2dissite server_name.conf //укажите имя файла вашего сайта
</strong></code></pre>

Для перезагрузки следующую команду:

```
service apache2 reload
```

### Подключение PHP к Apache2

Для использования php файлов установим специальный пакет:

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

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

```
service apache2 reload
```

### Включение rewrite (перезаписи файлов)

{% hint style="danger" %}
Без этой настройки может не работать значительная часть CMS сайтов.
{% endhint %}

Пропишем настройки для файла **.htaccess:**

```
a2enmod rewrite
```

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

```
service apache2 reload
```

### Включение SSL (протокол шифрования)

{% hint style="info" %}
Является не обязательным пунктом, повышающим доверие к вашему сайту
{% endhint %}

Включим модуль шифрования **SSL**:

```
a2enmod ssl
```

Перейдём **по** **sFTP** по адресу **/etc/apache2/sites-available** и создадим новый конфиг **site\_name-ssl.conf**:

> {% code title="site\_name-ssl.conf" %}
>
> ```
> <VirtualHost *:443>
>         ServerName sclad.team # Указать домен сайта
>         ServerAdmin admin@sclad.team # Ваш 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>
> ```
>
> {% endcode %}

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

```
service apache2 reload
```

## Проверка на Nginx

{% hint style="info" %}
При использовании **Apache2** с **Nginx**, они не смогут корректно работать, конфликтуя за порт - 80. Поэтому важно **удалить** одно из **ПО веб-сервера**.
{% endhint %}

Проверим наличие **Nginx**:

```
service nginx status
```

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

Для удаления **Nginx** пропишем:

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

## Удаление Apache2

Для удаления **Nginx** пропишем:

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sclad.group/baza-znanii-skladtim/administrirovanie-linux/ustanovka-apache2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
