Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| php:installation_configuration [2011/08/27 02:02] – import - création Anael MOBILIA | php:installation_configuration [2014/05/27 03:32] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | <style float-right> | + | <style float-right> |
| - | <style float-left> | + | <style float-left> |
| - | ====== | + | ====== |
| // | // | ||
| - | <note tip>Présentation rapide.</ | + | <note tip>Installation et configuration de PHP.</ |
| < | < | ||
| * Aucun prérequis pour ce tutoriel. | * Aucun prérequis pour ce tutoriel. | ||
| </ | </ | ||
| \\ | \\ | ||
| - | ===== grand1 | + | ===== Installation de PHP ===== |
| - | lorem ipsum | + | <code bash> |
| + | PHP est maintenant installé sur notre serveur, et est automatiquement intégré à Apache. | ||
| + | Le script d' | ||
| + | |||
| + | |||
| + | ===== Sécurisation / configuration de PHP ===== | ||
| + | La configuration de PHP s' | ||
| \\ | \\ | ||
| - | ===== Liens ===== | + | Avant toute chose, j' |
| - | * [[.:|Retour à la liste des tutoriels XXX]] | + | <code bash>cd / |
| - | * [[:|Retour à la liste des tutoriels]] | + | mv php.ini php.ini.back</ |
| + | Et je vais me baser sur le fichier de configuration recommandé pour un environnement de production | ||
| + | <code bash>cp / | ||
| + | < | ||
| - | ++__But : Installer et configurer [PHP|tag: | + | ==== SafeMode |
| - | %%%'' | + | Nous n' |
| - | %%% | + | \\ |
| - | !!!! I) [Installation|tag: | + | [[http:// |
| - | ///[bash] | + | |
| - | apt-get install php5 | + | ==== disable_functions |
| - | /// | + | <note tip>Si vous êtes la seule personne déposant des logiciels sur votre serveur, ces configurations servant à limiter les accès des fonctions PHP ne vous concernent pas pleinement. |
| - | PHP est maintenant installé sur notre serveur, et est automatiquement intégré à Apache ! | + | |
| - | %%%Le script d' | + | Toutefois, je recommande de les appliquer : ceci peut permettre de réduire l' |
| - | %%% | + | |
| - | %%% | + | Nous allons désactiver certaines fonctions de PHP pouvant mettre en péril la sécurité du serveur. |
| - | !!!! II) [Sécurisation|tag: | + | |
| - | La configuration de PHP s' | + | === chgrp === |
| - | %%%Nous allons tout de suite utiliser le fichier de configuration PHP recommandé pour un environnement de prod : (et faire un backup du fichier actuel) | + | Permet de modifier le groupe |
| - | ///[bash] | + | \\ |
| - | cd / | + | Les mauvaises utilisations de cette fonction |
| - | mv php.ini php.ini.back | + | \\ |
| - | cp / | + | [[http:// |
| - | /// | + | |
| - | !!! 1) [SafeMode|tag: | + | === disk_free_space |
| - | Nous n' | + | |
| - | %%%[Doc. PHP|http:// | + | |
| - | !!! 2) disable_functions | + | |
| - | Nous allons désactiver certaines fonctions de PHP pouvant mettre en péril la sécurité du serveur | + | |
| - | !! A) chgrp | + | |
| - | Permet de modifier le groupe d'un fichier. | + | |
| - | %%%Cette | + | |
| - | %%%[Doc. PHP|http:// | + | |
| - | !! B) disk_free_space | + | |
| Retourne l' | Retourne l' | ||
| - | %%%Cette fonction est partiellement inhibée par la modification du fichier / | + | \\ |
| - | %%%[Doc. PHP|http:// | + | [[http:// |
| - | !! C) disk_total_space | + | |
| + | === disk_total_space | ||
| Retourne l' | Retourne l' | ||
| - | %%%[Doc. PHP|http:// | + | \\ |
| - | !! D) diskfreespace | + | [[http:// |
| + | |||
| + | === diskfreespace | ||
| Alias de disk_free_space | Alias de disk_free_space | ||
| - | %%%[Doc. PHP|http:// | + | \\ |
| - | !! E) dl | + | [[http:// |
| + | |||
| + | === dl === | ||
| Charge des extensions PHP à la volée. Ce genre d' | Charge des extensions PHP à la volée. Ce genre d' | ||
| - | %%%[Doc. PHP|http:// | + | \\ |
| - | !! F) exec | + | [[http:// |
| - | Permet d' | + | |
| - | %%%[Doc. PHP|http:// | + | === exec === |
| - | !! G) ini_alter, ini_set, ini_restore | + | Permet d' |
| + | \\ | ||
| + | [[http:// | ||
| + | |||
| + | === ini_alter, ini_set, ini_restore | ||
| Permettent de modifier certaines valeurs de la configuration effectuée dans le fichier php.ini . | Permettent de modifier certaines valeurs de la configuration effectuée dans le fichier php.ini . | ||
| - | %%%Si certaines valeurs doivent être ajustées, | + | \\ |
| - | %%%[Doc. PHP|http:// | + | Si certaines valeurs doivent être ajustées, l' |
| - | !! H) leak | + | \\ |
| + | [[http:// | ||
| + | |||
| + | === leak === | ||
| Cette fonction permet d' | Cette fonction permet d' | ||
| - | %%%Toutefois, elle n'est présente que si PHP à été compilé avec l' | + | \\ |
| - | %%%Autant la supprimer pour éviter tout risque | + | Toutefois, elle n'est présente que si PHP à été compilé avec l' |
| - | !! I) passthru | + | \\ |
| + | Autant la supprimer pour éviter tout risque. | ||
| + | |||
| + | === passthru | ||
| Exécute une requête au niveau du shell et retourne le résultat. | Exécute une requête au niveau du shell et retourne le résultat. | ||
| - | %%%Cette fonction est une faille de sécurité monstrueuse également | + | \\ |
| - | %%%[Doc. PHP|http:// | + | Cette fonction est une faille de sécurité monstrueuse également |
| - | !! J) popen | + | \\ |
| + | [[http:// | ||
| + | |||
| + | === popen === | ||
| Exécute une commande au niveau du shell et retourne un pointeur de fichier. | Exécute une commande au niveau du shell et retourne un pointeur de fichier. | ||
| - | %%%Cette commande peut-être utilisée pour passer des commandes et est donc à proscrire | + | \\ |
| - | %%%[Doc. PHP|http:// | + | Cette commande peut-être utilisée pour passer des commandes et est donc à proscrire. |
| - | !! K) pclose | + | \\ |
| + | [[http:// | ||
| + | |||
| + | === pclose | ||
| Ferme un flux de fichier ouvert avec popen. | Ferme un flux de fichier ouvert avec popen. | ||
| - | %%%[Doc. PHP|http:// | + | \\ |
| - | !! L) proc_close, proc_get_status, | + | [[http:// |
| + | |||
| + | === proc_close, proc_get_status, | ||
| Fonctions similaires au popen / pclose. | Fonctions similaires au popen / pclose. | ||
| - | %%%[Doc. PHP - proc_close|http:// | + | \\ |
| - | %%%[Doc. PHP - proc_get_status|http:// | + | [[http:// |
| - | %%%[Doc. PHP - proc_nice|http:// | + | \\ |
| - | %%%[Doc. PHP - proc_open|http:// | + | [[http:// |
| - | %%%[Doc. PHP - proc_terminate|http:// | + | \\ |
| - | !! M) putenv, apache_setenv | + | [[http:// |
| + | \\ | ||
| + | [[http:// | ||
| + | \\ | ||
| + | [[http:// | ||
| + | |||
| + | === putenv, apache_setenv | ||
| Définit la valeur d'une variable d' | Définit la valeur d'une variable d' | ||
| - | %%%[Doc. PHP|http:// | + | \\ |
| - | %%%[Doc. PHP|http:// | + | [[http:// |
| - | !! N) set_include_path | + | \\ |
| + | [[http:// | ||
| + | |||
| + | === set_include_path | ||
| Cette commande permet de modifier le path accessible par nos scripts. | Cette commande permet de modifier le path accessible par nos scripts. | ||
| - | %%%Nous le définirons à l' | + | \\ |
| - | [Doc. PHP|http:// | + | Nous le définirons à l' |
| - | !! O) set_time_limit, | + | \\ |
| + | [[http:// | ||
| + | |||
| + | === set_time_limit, | ||
| Permet de modifier la configuration PHP quand à la durée d' | Permet de modifier la configuration PHP quand à la durée d' | ||
| - | %%%[Doc. PHP - set_time_limit|http:// | + | \\ |
| - | %%%[Doc. PHP - ignore_user_abort|http:// | + | [[http:// |
| - | %%%[Doc. PHP - apache_reset_timeout|http:// | + | \\ |
| - | !! P) shell_exec, system | + | [[http:// |
| + | \\ | ||
| + | [[http:// | ||
| + | |||
| + | === shell_exec, system | ||
| Exécute des commandes au niveau du shell, et retourne le résultat. | Exécute des commandes au niveau du shell, et retourne le résultat. | ||
| - | %%%[Doc. PHP - shell_exec|http:// | + | \\ |
| - | %%%[Doc. PHP - system|http:// | + | [[http:// |
| - | !! Q) syslog | + | \\ |
| + | [[http:// | ||
| + | |||
| + | === syslog | ||
| Permet d' | Permet d' | ||
| - | %%%[Doc. PHP|http:// | + | \\ |
| + | [[http:// | ||
| La configuration devient donc : | La configuration devient donc : | ||
| - | ///[php] | + | < |
| - | disable_functions = chgrp, disk_free_space, | + | disable_functions = chgrp, disk_free_space, |
| - | ini_alter, ini_set, ini_restore, | + | |
| - | set_include_path, | + | |
| - | /// | + | |
| - | !!! 3) expose_php | ||
| - | Définit sur PHP doit-être annoncé à vos visiteurs comme installé sur votre serveur (entête). | ||
| - | %%%Autant oublie de dire à nos visiteurs que nous avons PHP, cela pourra toujours nous cacher un peu :) | ||
| - | %%[Doc. PHP|http:// | ||
| - | ///[php] | ||
| - | expose_php = Off | ||
| - | /// | ||
| - | !!! 4) max_execution_time | + | ==== expose_php ==== |
| + | Définit si PHP doit-être annoncé à vos visiteurs comme étant installé sur votre serveur (entête). | ||
| + | \\ | ||
| + | Je n' | ||
| + | \\ | ||
| + | [[http:// | ||
| + | <code php> | ||
| + | |||
| + | |||
| + | ==== max_execution_time | ||
| Définit la durée maximale d' | Définit la durée maximale d' | ||
| - | %%%Par défaut la valeur est 30 secondes, à n' | + | \\ |
| - | %%%[Doc. PHP|http:// | + | Par défaut la valeur est 30 secondes, à n' |
| + | \\ | ||
| + | [[http:// | ||
| - | !!! 5) memory_limit | + | ==== memory_limit |
| Quantité maximale de RAM qu'un script PHP peut utiliser. | Quantité maximale de RAM qu'un script PHP peut utiliser. | ||
| - | %%%Ne possédant que 128Mo de RAM sur ma machine, je vais le définir à 64M. | + | \\ |
| - | %%%Je devrais diminuer encore cette valeur, mais vait mettre en ligne un site gourmand en mémoire ;-) | + | La valeur par défaut est de 128 Mo maximum par exécution du script. |
| - | %%%[Doc. PHP|http:// | + | \\ |
| + | Adaptez la valeur | ||
| + | \\ | ||
| + | [[http:// | ||
| - | !!! 6) File uploads | + | |
| + | ==== Envoi de fichiers ==== | ||
| L' | L' | ||
| - | %%%Je vais définir | + | \\ |
| - | %%%Je vais fichier | + | Je vais définir |
| - | %%%Attention à être cohérent entre upload_max_filesize (taille | + | \\ |
| + | Je vais définir '' | ||
| + | \\ | ||
| + | Attention à être cohérent entre '' | ||
| + | \\ | ||
| + | [[http:// | ||
| + | \\ | ||
| + | [[http:// | ||
| + | \\ | ||
| + | [[http:// | ||
| - | !!! 7) session.save_path | + | |
| - | Cette directive sert à définir | + | ==== session.save_path |
| - | %%%Il faut un chmod de 600 minimum sur ce répertoire. | + | Définit |
| - | %%%Je pensais utiliser le répertoire /tmp (chmod 777) principalement pour son auto-effacement à chaque relance du système. | + | \\ |
| - | %%%Laisser le répertoire de sessions dans /tmp représente donc une faille de sécurité ! | + | Il faut un chmod de 600 minimum sur ce répertoire. |
| - | %%%J'ai donc créé un répertoire sessions dans /var/www (propriétaire | + | |
| - | ///[php] | + | Je pensais utiliser le répertoire /tmp (chmod 777) principalement pour son auto-effacement à chaque relance du système. |
| - | session.save_path = / | + | \\ |
| - | /// | + | Je ne l'ai pas fait car tous mes sites web ont accès à ce répertoire |
| + | \\ | ||
| + | Laisser le répertoire de sessions dans /tmp représente donc une faille de sécurité ! | ||
| + | |||
| + | J'ai donc créé un répertoire sessions dans / | ||
| + | <code php> | ||
| + | \\ | ||
| + | [[http://fr.php.net/ | ||
| + | \\ | ||
| + | |||
| + | Pour chaque nouvelle | ||
| + | \\ | ||
| + | Il faut vider de temps en temps les fichiers correspondant à une session qui n'est plus utilisée. Pour cela, PHP intègre une probabilité d' | ||
| + | \\ | ||
| + | J' | ||
| + | <code php> | ||
| + | [[http:// | ||
| + | |||
| + | \\ | ||
| + | ===== Liens ===== | ||
| + | * [[.:|Retour à la liste des tutoriels PHP]] | ||
| + | * [[:|Retour à la liste des tutoriels]] | ||