{{tag>webadmin apache apache2 config service module php}}
====== Apache: Configuration du module PHP ======
Lorsque PHP est utilisé en tant que module Apache, chaque hôte virtuel peut redéfinir les options du module via plusieurs directives (**php_value**, **php_flag**, **php_admin_value**, **php_admin_flag**) via les fichiers de configuration Apache( .conf et .htaccess).
Pour que les options puissent être redéfinies dans les fichiers .htaccess les directives **Allow Override options** ou **Allow Override All** doivent être définies.
===== La directive php_value =====
Usage
php_value option valeur
Exemple
php_value memory_limit 512M
La directive php_value n'est utilisable que sur des options de type **PHP_INI_ALL** et **PHP_INI_PERDIR**. La liste des options PHP avec leur type associé est disponible à l'URL https://www.php.net/manual/en/ini.list.php
Une option définie via php_value dans le fichier de configuration de l’hôte virtuel Apache pourra être redéfinie dans un fichier .htaccess.
Ne pas utiliser **php_value** pour définir des valeurs booléennes, pour cela utiliser la directive **php_flag** présentée ci dessous.
===== La directive php_flag =====
Ne s'utilise que pour des options booléennes de type **PHP_INI_ALL** et **PHP_INI_PERDIR**:
Usage:
php_flag option valeur
Exemple:
php_flag log_errors On
===== La directive php_admin_value =====
Permet de spécifier une option qui ne pourra plus être redéfinie ni dans un .htaccess ni dans un script via l'appel à la fonction ini_set(). Pour effacer une valeur prédéfinie, utiliser la valeur **none**.
Usage:
php_admin_value option valeur
Exemple:
php_admin_value default_charset none
php_admin_value upload_max_filesize 2000M
===== La directive php_admin_flag =====
Permet de spécifier une option booléenne qui ne pourra plus être redéfinie ni dans un .htaccess ni dans un script via l'appel à la fonction ini_set().
Usage:
php_admin_flag option valeur
Exemple:
php_admin_flag display_errors On
Les constantes PHP telles que **E_ALL** ou **E_NOTICE** utilisables dans le php.ini n'existent pas en dehors de PHP (dans les fichiers de configuration Apache notamment). Pour définir les niveaux de logs par exemple, il faudra utiliser directement les valeurs correspondant aux masques binaires.
Exemple:
# reporte toutes les erreurs
php_admin_value error_reporting 32767
php_admin_flag log_errors On
php_admin_value error_log "/srv/annuaire/log/php_errors.log"
===== Références =====
* https://ma.ttias.be/php-php_value-vs-php_admin_value-and-the-use-of-php_flag-explained/
* https://www.php.net/manual/en/configuration.changes.php
* https://www.php.net/manual/en/ini.list.php