Les méthodes de configuration sous PHP, tutoriel & guide de travaux pratiques en pdf.
Méthodes de configuration
Il existe différentes méthodes pour modifier les directive de configuration de PHP.
Fichier php.ini Le fichier php.ini est le fichier qui contient toutes les directives de configuration de PHP. Il est lu au chargement de PHP. Après une modification de ce fichier, il faut donc ne pas oublier de recharger PHP ce qui signifie redémarrer le serveur HTTP si PHP est chargé en tant que module Apache par exemple. Le fichier php.ini est situé a des endroits différents selon le système d’exploitation et le type d’installation choisi. Sur Unix / Linux, il est généralement situé dans le répertoire /etc/php5/apache2. Sur une installation Windows avec WampServer, celui ci est situé dans le répertoire c:\wamp\bin\apache\apache2.x.x\bin. Les directives situées dans le fichier php.ini s’appliquent à l’ensemble des scripts PHP du serveur sauf si elles sont surchargées par les niveaux supérieurs de configuration. Voici un extrait du fichier php.ini : [Date] ; Defines the default timezone used by the date functions date.timezone = Europe/London ;date.default_latitude = 31.7667 ;date.default_longitude = 35.2333 Comme vous pouvez le constater, le fichier php.ini est un fichier ini typique. Ainsi, la ligne 1 indique le début d’une section. La ligne 3 donne la valeur « Europe/Paris » à la directive de configuration « date.timezone » tandis que les autres lignes sont inactives car précédées d’un point virgule qui indique un commentaire. Enfin, pour activer une extension, il suffit d’ajouter une directive « extension » et lui donner pour valeur le nom de l’extension : ; Unix / Linux extension=myql.so
; Windows extension=mysql.dll
Fichier de configuration d’Apache
Apache permet de modifier les directives de configuration PHP dans ses fichiers de configuration
(configuration principale ou VirtualHosts). Voici un exemple de configuration de PHP a dans un VirtualHost : <VirtualHost *> ServerName www.domain.tld DocumentRoot /var/www/domain.tld/www/public <Directory /var/www/domain.tld/www/public> # Configuration d’Apache AllowOverride None Order allow,deny Allow from all
# Configuration de PHP php_value date.timezone « Europe/Paris » php_flag display_errors off php_admin_value error_reporting 8191 php_admin_flag upload_max_filesize « 8M » </Directory> </virtualHost> La modification d’une directive de configuration dans un fichier de configuration d’Apache peut se faire de quatre manières différentes :
● php_value modifie la valeur de la directive spécifiée. Cette instruction n’est utilisable qu’avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR. Pour annuler une valeur qui aurait été modifiée au préalable, utilisez la valeur « none »,
● php_flag modifie la valeur de la directive spécifiée. Celle ci doit être de type booléen. Cette instruction n’est utilisable qu’avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR.,
● php_admin_value qui est identique à php_value à ceci près qu’elle ne peut être utilisé dans un fichier .htaccess,
● php_admin_flag qui est identique à php_flag à ceci près qu’elle ne peut être utilisé dans un fichier .htaccess. En modifiant une directive de configuration dans un VirtualHost, on peut définir une configuration spécifique pour un site précis.
Fichiers .htaccess
La syntaxe pour modifier une directive de configuration dans un fichier .htaccess est similaire à celle des VirtualHosts : php_value date.timezone « Europe/Paris » php_flag display_errors off L’utilisation d’un fichier .htaccess pour définir des directives de configuration permet de n’appliquer cellesci qu’à un répertoire et ses sousrépertoires. A noter qu’il est impossible d’utiliser les instructions php_admin_value et php_admin_flag dans un
fichier .htaccess.
Scripts PHP
La couche de configuration la plus haute est située directement dans les scripts PHP. La fonction ini_set() permet de définir la valeur d’une directive de configuration : <?php ini_set(‘date.timezone’, ‘Europe/Paris’); ?> Il est possible de récupérer la valeur d’une directive de configuration avec la fonction ini_get().