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]] |