Gérer la configuration PHP en ligne de commande sur Debian
Limite mémoire, taille des fichiers déposés, gestion des guillemets, ... sont autant de paramètres de configuration de PHP dont la modification est demandée par diverses applications Web lors de leur installation. Ce guide propose la mise en place d'un script en ligne de commande permettant la modification sans conflit de la configuration PHP.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
- Debian 8.0 Jessie
- Debian 9.0 Stretch
- Ubuntu 17.10 Artful Aardvaark
Prérequis
Ce guide recommande:
- les améliorations décrites par Améliorer la configuration initiale de PHP5 sur Debian.
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Détectez le nom des paquets PHP disponibles:
phpVersion='5'
if [ -n "$(command apt-cache pkgnames php-cli)" ]; then
phpVersion=''
fi
Déterminez l'utilisateur pour l'installation d'applications Web PHP:
projectUser='phpapp'
Déterminez le répertoire principal de l'utilisateur pour l'installation d'applications PHP:
projectUserHome="/var/lib/${projectUser}"
Préparation de l'environnement
Installez les logiciels nécessaires:
${cmdProxy} apt-get install php${phpVersion}-cli
Créez un utilisateur système dédié à l'installation d'applications Web PHP:
${cmdProxy} adduser --system --disabled-password --group --home "${projectUserHome}" "${projectUser}"
Mise en place de l'outil
Installez le script php-tools permettant la gestion de la configuration PHP:
${cmdProxy} wget 'https://raw.github.com/biapy/howto.biapy.com/master/php5/php-tools' \
--quiet --no-check-certificate --output-document='/usr/local/bin/php-tools'
${cmdProxy} chmod +x '/usr/local/bin/php-tools'
Utilisation
Obtenir la valeur actuelle d'une option de configuration PHP:
# sudo php-tools --get 'post_max_size'
Analyser la configuration d'une option PHP:
# sudo php-tools --analyze 'post_max_size'
Forcer la valeur d'une option PHP (ici, force l'option post_max_size à 5Mo):
# sudo php-tools --fix 'post_max_size' '5M'
Augmenter la valeur d'une option PHP si nécessaire (ici, règle post_max_size à 10Mo si la valeur précédente n'est pas supérieure):
# sudo php-tools --set 'post_max_size' '10M'
Les réglages mis en place par la commande php-tools sont placés dans les fichiers "/etc/php5/conf.d/zzz-php-tools.ini" ou '/etc/php/7.0/mods-available/zzz-php-tools.ini' suivant la version de PHP disponible.