# Веб-сервер Apache

# Установка Apache+PHP-FMP 8.4 (Debian 13 /Ubuntu 24.04)

Установка Apache:

```shell
sudo apt install apache2
```

Редактирование опции &lt;Directory /var/www/&gt; в /etc/apache2/apache2.conf:

```XML
<Directory /var/www/>
        Options Indexes ExecCGI FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
```

Установка пакетов PHP, в данном случае используется версия 8.4, но можно использовать любую другую по желанию, просто замените циферки 8.4 на нужные вам:

```shell
sudo apt install php-fpm php-gd php-mbstring php-mysql php-zip php-memcached memcached
```

Включение нужных сервисов, PHP-FPM и кэширования:

```shell
sudo systemctl enable php8.4-fpm && sudo systemctl enable memcached
```

Активация модуля PHP-FPM:

```shell
sudo a2enconf php8.4-fpm
```

Установка библиотеки libapache2-mod-fcgid для обмена данными для Apache HTTP и PHP:

```shell
sudo apt install libapache2-mod-fcgid
```

Активация модуля proxy и proxy\_fcgi:

```shell
sudo a2enmod proxy && sudo a2enmod proxy_fcgi
```

Добавим в конфигурационный файл /etc/apache2/mods-available/dir.conf index.php в самое начало, должно получиться

> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

Проверка конфигурации:

```shell
sudo apachectl configtest
```

> Output
> 
> Syntax OK

Для установки часового пояса в настройках PHP следует найти параметр date.timezone, раскомментировать и указать значение:

```shell
sudo nano /etc/php/8.4/fpm/php.ini
```

Перезапуск PHP-FPM и Apache:

```shell
sudo systemctl restart php8.4-fpm && sudo systemctl restart apache2
```

# Создание виртуального хоста (сайта)

Пример виртуального хоста:

```
<VirtualHost *:80><br></br>	ServerName example.com<br></br>	<br></br>	UseCanonicalName On<br></br><br></br>	DocumentRoot /var/www/example_com<br></br><br></br>	<Directory /var/www/example_com><br></br>                Options FollowSymLinks<br></br>                AllowOverride All<br></br>                Require all granted<br></br>        </Directory><br></br><br></br>	ErrorLog ${APACHE_LOG_DIR}/example_com-error.log<br></br>	CustomLog ${APACHE_LOG_DIR}/example_com-access.log combined<br></br><br></br></VirtualHost>
```