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 25 : | Ligne 22 : | ||
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. | ||
{{ | {{LinuxTerminal2|user=root|text=yum install mod_fcgid | ||
yum install mod_suphp}} | yum install mod_suphp}} | ||
Ligne 34 : | Ligne 31 : | ||
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. | ||
<file> | |||
< | |||
<VirtualHost *:80> | <VirtualHost *:80> | ||
Ligne 63 : | Ligne 59 : | ||
</Directory> | </Directory> | ||
</IfModule> | </IfModule> | ||
</VirtualHost> | </VirtualHost> | ||
</ | </file> | ||
{DOM} = Le nom de domaine associé au vhosts. | {DOM} = Le nom de domaine associé au vhosts. | ||
{FOLD} = Le nom du dossier où se trouve le site. | {FOLD} = Le nom du dossier où se trouve le site. | ||
Ligne 71 : | Ligne 67 : | ||
{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 74 : | ||
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. | ||
< | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
export PHPRC=/web/config/{UID} | export PHPRC=/web/config/{UID} | ||
Ligne 84 : | Ligne 80 : | ||
export PHP_FCGI_CHILDREN=1 | export PHP_FCGI_CHILDREN=1 | ||
exec /usr/bin/php-cgi | exec /usr/bin/php-cgi | ||
</ | </source> | ||
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 99 : | Ligne 95 : | ||
[[Category:SysAdmin]] | [[Category:SysAdmin]] | ||