Skip to main content

Configuration de PHP et Apache

3.7 Configurer PHP

Créer /etc/php/8.2/apache2/conf.d/99-glpi.ini :

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 :

session.cookie_secure = On

Redémarrer Apache :

sudo systemctl restart apache2

Contrôler les valeurs chargées :

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 :

<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 :

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 :

Syntax OK

Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.