Tutoriaux
> Programmation > PHP / MYSQL > Configurer un serveur web > Les directives de configuration |
Vous trouvez sans doute que les possibilités offertes par PHP sont largement suffisantes et pourtant vous n'utilisez sans doute que la configuration par défaut de PHP. Le fichier de configuration php.ini est une véritable mine d'or comme disent certains codeurs chevronnés.
Si vous ne l'avez jamais fait, je vous conseille d'y jeter un coup d'oeil. Ce tutorial est la pour vous décrire les principales directives que vous rencontrerez tout au long du fichier de configuration PHP. Une directive n'est rien de plus qu'une variable qui vu influer sur le comportement de PHP.
Chapitre 1 : Balises d'ouverture Pour que du code php soit exécuter, il est nécessaire de l'entourer de balises. Celles ci sont appelées balises d'ouvertures[/b]. La plus utilisée et la recommandée est [b]<?php[/b]. Ceux qui utilisent [b]<?[/b] ont surement remarqué qu'avec la dernière version de PHP elle ne fonctionne plus. Cela est du à la directive [b]short_open_tag[/b] qui a surement été passée à off[/i]. Pour respecter les normes et avoir un code portable paramétrez cette directive à [i]off et utilisez [b]<?php.
Code :
short_open_tag=Off
Code :
asp_tags=On
Chapitre 2 : Compression des pages Vous pouvez compresser automatiquement les codes HTML que PHP génère. Cela permet d'économiser de la bande passante et bien entendu d'accélerer le temps de téléchargement de vos pages HTML.
zlib.output_compression=On
zlib.output_compression_level=9
La directive zlib.output_compression_level permet de définir le taux de compression. 9 est le plus fort taux de compression, en cas de problèmes après avoir activé la compression essayer de baisser ce taux de compression.
Chapitre 3 : Mode sécurisé (Safe mode) Si la directive safe_mode est activée, PHP n'autorisera pas les exécutions de programme externe ou l'accès aux fichiers d'autres utilisateurs. Cela pourra vous servir si vous souhaiter partager votre hébergement. Si vous travaillez seul sur votre serveur ( mutualisé ou dédié ) n'activez pas cette directive, elle restreint les possibilités du developpeur.
Code :
safe_mode=Off
Chapitre 4 : Limitation d'accès aux répertoires Dans le même esprit que la directive précédente, open_basedir permet de partager, entre plusieurs utilisateurs, un même serveur Web. Pour cela il suffit de définir un open_basedir différent pour chaque utilisateur :
Code :
open_basedir="/home/daminus/www"
Chapitre 5 : Gestion des ressources Par défaut, un script PHP s'exécute au maximum pendant 30 secondes. Le délai expiré le script s'arrete et affiche ce message d'erreur :
Citation :
Fatal error:Maximum execution time of 30 seconds exceeded in c:\home\daminus\script_maxtime.php on line 1[p]
[/p]
Si vous avez un script qui nécessite un certain temps d'exécution ( envoie de newsletter par exemple), vous pouvez modifier cette limite.
Code :
max_execution_time=100
Code :
memory_limit = 8M
Chapitre 6 : Gestion des erreurs Vous avez dû remarquer que PHP affichent les erreurs de compilation, après oubli d'un ; par exemple. Il existe plusieurs types d'erreurs ( qui vous seront détaillés dans un prochain tutorial ). Pour afficher toutes les erreurs modifier la directive suivante :
Code :
error_reporting = E_ALL
Code :
display_error = Off
Code :
log_errors = On
Chapitre 7 : Gestion des données Il s'agit ici du paramètre register_globals. Celui ci est à Off par défaut depuis la version 4.1 de PHP. Il est conseillé de le laisser désactivé pour des raisons de sécurité. Pour en savoir plus, ce sujet a été traité dans ce tutorial : http://www.student-designer.com/.../securite/php-register-globals-failles/
Code :
register_globals = Off
Chapitre 8 : Gestion des magic quotes Pour simplifier la vie des codeurs, PHP embarquait par défaut un mécanisme de protection des injections SQL[/b] ( Ce terme sera expliqué dans un prochain tutorial ). Cette protection se nomme [b]magic quotes[/b]. Cet outil ajoutait, sans aucun code supplémentaire de la part du développeur, une barre oblique inverse ( [b]\ ) devant les apostrophes et les guillemets pour les données provenant de GET, POST ou COOKIE.
Si vous utilisez vos propres protections contre les injections SQL, préférez désactiver les magic quotes. De plus elles entrainent une légère baisse de performance. Cependant certains scripts les utilisent et vous serez peut-être amené à les réactiver :
Code :
magic_quotes_gpc = On
Chapitre 9 : Gestion des chemins Si vous connaissez les fonctions include()[/b] et [b]require()[/b] vous devez savoir qu'elle permet d'inclure un fichier PHP dans un autre. Cependant connaissez vous la directive [b]include_path ? Celle ci indique à PHP ou chercher votre fichier par défaut dont voici un exemple :
Code :
include_path = ".:/php/includes/"
Code :
file_uploads = On
upload_tmp_dir = "/temp/"
upload_max_filesize = 2M
Chapitre 10 : Gestion des sessions Les sessions seront traités en détails ultérieurement. En attendant un tutorial traitant sur la mise en place d'un espace membre est disponible http://www.student-designer.com/.../php-mysql/les-cours-php/script-gestion-sessions-php/. Pour ceux qui connaissent les sessions il est possible de stocker les sessions autrement que dans des fichiers (option par défaut). Vous pouvez définir cette option comme suit :
Code :
session_save_handler = files
Code :
session.save_path = "/tmp/sessions/"
Chapitre 11 : Inclusion de fichier automatique A chaque page de votre script vous faites les mêmes include ? PHP vous permet d'inclure automatiquement un fichier PHP avant ou/et après le fichier à exécuter. Pour cela il vous faut completer la directive auto_prepend_file[/b] qui aura le même effet qu'un [b]include en première ligne de chacun de vos scripts.
Code :
auto_prepend_file = /home/daminus/www/header.php
Code :
auto_append_file = /home/daminus/www/footer.php
J'en conviens ce tutorial est magistral. Programmeurs débutants, il est fort probable que vous l'ayez juste survolé, ce qui est tout à fait normal. Mais essayez de retenir dans les grandes lignes les possibilités offertes pas le php.ini et je pense qu'après avoir bien progressé en PHP vous reviendrez vers ce tutorial pour augmenter les possiblités offertes par PHP.
Il est possible qu'au contraire ce tutorial vous ai mis l'eau à la bouche et que vous vouliez en savoir plus. Dans ce cas je vous conseille d'aller voir ce tutorial qui faut un tour d'horizon un peu plus large : http://www.illiweb.com/manuel/php/configuration.directives.html
Tutoriaux
> Programmation > PHP / MYSQL > Configurer un serveur web > Les directives de configuration |