Modification de Apache : Suexec pour un vhost spécifique
La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.
Version actuelle | Votre texte | ||
Ligne 1 : | Ligne 1 : | ||
== Introduction == | |||
Il existe de multiples cas où on a besoin que le serveur Apache puisse écrire sur des fichiers, dans ce cas on donne généralement le droit à l'utilisateur Apache sur ce fichier et c'est tout.<br /> | Il existe de multiples cas où on a besoin que le serveur Apache puisse écrire sur des fichiers, dans ce cas on donne généralement le droit à l'utilisateur Apache sur ce fichier et c'est tout.<br /> | ||
Ligne 9 : | Ligne 6 : | ||
C'est justement dans ce dernier cas qu'il devient utile que ces scripts soient lancés avec les droits de l'utilisateur qui sert au webmaster au lieu de l'utilisateur Apache. | C'est justement dans ce dernier cas qu'il devient utile que ces scripts soient lancés avec les droits de l'utilisateur qui sert au webmaster au lieu de l'utilisateur Apache. | ||
== Présentation == | == Présentation == | ||
Ligne 18 : | Ligne 16 : | ||
Et pour finir il faudra créer un wrapper pour chaque utilisateur, il s'agit là d'une histoire de droits d'exécution qu'on verra plus tard. | Et pour finir il faudra créer un wrapper pour chaque utilisateur, il s'agit là d'une histoire de droits d'exécution qu'on verra plus tard. | ||
== Apache == | == Apache == | ||
=== Installation des modules === | === Installation des modules === | ||
Ligne 25 : | Ligne 25 : | ||
Sous CentOS l'installation se fait très simplement, mod_fcgid est disponible directement sur les repository de la distribution et mod_suphp est disponible sur rpmforge. | Sous CentOS l'installation se fait très simplement, mod_fcgid est disponible directement sur les repository de la distribution et mod_suphp est disponible sur rpmforge. | ||
yum install mod_fcgid | |||
yum install mod_suphp | yum install mod_suphp | ||
=== Configuration d'Apache === | === Configuration d'Apache === | ||
Ligne 35 : | Ligne 35 : | ||
Ensuite il faut configurer les vhosts, pour ça j'ai fait un template afin de simplifier la création de nouveau vhosts. | Ensuite il faut configurer les vhosts, pour ça j'ai fait un template afin de simplifier la création de nouveau vhosts. | ||
ICI LE TEMPLATE | |||
{DOM} = Le nom de domaine associé au vhosts. | {DOM} = Le nom de domaine associé au vhosts. | ||
Ligne 71 : | Ligne 42 : | ||
{GID} = Le groupe qui servira pour l'exécution des scripts. | {GID} = Le groupe qui servira pour l'exécution des scripts. | ||
{{Info|Dans le cas où le vhost ne serait disponible que pour un nom d'hôte particulier, il faudrait enlever la ligne '''ServerAlias''' et adapter le '''ServerName'''}} | {{Info|tip=Dans le cas où le vhost ne serait disponible que pour un nom d'hôte particulier, il faudrait enlever la ligne '''ServerAlias''' et adapter le '''ServerName'''}} | ||
== Les Wrapper == | == Les Wrapper == | ||
Ligne 78 : | Ligne 49 : | ||
Il doit absolument se situer dans un dossier dont les uid et gid sont identiques à ceux entrés dans la configuration d'Apache et aux siens.<br /> | Il doit absolument se situer dans un dossier dont les uid et gid sont identiques à ceux entrés dans la configuration d'Apache et aux siens.<br /> | ||
Il contiendra la définition de plusieurs variables pour PHP et la ligne de commande pour l'exécution. | Il contiendra la définition de plusieurs variables pour PHP et la ligne de commande pour l'exécution. | ||
#!/bin/ | #!/bin/bash | ||
export PHPRC=/ | export PHPRC=/blabla/user/php.ini | ||
exec /usr/bin/php-cgi | |||
exec /usr/bin/php-cgi | |||
On oubliera pas de spécifier un chemin vers un fichier php.ini particulier afin de pouvoir redéfinir certaines options comme on le souhaite et éviter ainsi des problèmes. | On oubliera pas de spécifier un chemin vers un fichier php.ini particulier afin de pouvoir redéfinir certaines options comme on le souhaite et éviter ainsi des problèmes. | ||
Ligne 95 : | Ligne 63 : | ||
La seule retouche que j'ai dû faire absolument est de modifier le chemin pour le stockage des fichiers de session. | La seule retouche que j'ai dû faire absolument est de modifier le chemin pour le stockage des fichiers de session. | ||
En effet vu que ce n'est plus Apache qui vient écrire les fichiers il devient compliqué de laisser tous les fichiers de session dans le même dossier, puis c'est pas très sécurisé non plus. | En effet vu que ce n'est plus Apache qui vient écrire les fichiers il devient compliqué de laisser tous les fichiers de session dans le même dossier, puis c'est pas très sécurisé non plus. Donc on va modifier la direction '''session.save_path''' pour la faire pointer vers un dossier où seul l'utilisateur concerné aura le droit d'écriture (et de préférence hors du dossier contenant le site). | ||
Donc on va modifier la | |||