# Configuration de PHP et Apache

## 3.7 Configurer PHP

Créer `/etc/php/8.2/apache2/conf.d/99-glpi.ini` :

```bash
sudo tee /etc/php/8.2/apache2/conf.d/99-glpi.ini >/dev/null <<'INI'
date.timezone = Europe/Paris
memory_limit = 512M
max_execution_time = 600
max_input_vars = 5000
post_max_size = 64M
upload_max_filesize = 64M

session.cookie_httponly = On
session.cookie_samesite = Lax

opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 60
INI
```

Lorsque l’instance est accessible uniquement en HTTPS, ajouter :

```ini
session.cookie_secure = On
```

Redémarrer Apache :

```bash
sudo systemctl restart apache2
```

Contrôler les valeurs chargées :

```bash
php -i | grep -E \
  'date.timezone|memory_limit|upload_max_filesize|post_max_size'
```

---

## 3.8 Configurer le VirtualHost Apache

Créer `/etc/apache2/sites-available/glpi.conf` :

```apache
<VirtualHost *:80>
    ServerName glpi.dreamsaphir.fr

    DocumentRoot /var/www/glpi/public

    <Directory /var/www/glpi/public>
        Options FollowSymLinks
        AllowOverride None
        Require all granted

        RewriteEngine On

        # Transmettre l'en-tête Authorization à GLPI.
        RewriteCond %{HTTP:Authorization} ^(.+)$
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

        # Envoyer les requêtes vers le routeur GLPI,
        # sauf lorsqu'un fichier existe réellement.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/glpi-error.log
    CustomLog ${APACHE_LOG_DIR}/glpi-access.log combined
</VirtualHost>
```

Activer le site et la réécriture :

```bash
sudo a2enmod rewrite
sudo a2ensite glpi.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```

Le résultat de `apache2ctl configtest` doit être :

```text
Syntax OK
```

---

> Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.