Bonjour à tous !
Je poste ici parce que la solution n’a pas été évidente à trouver.
Environnement :
[ul]Debian 8.2 stable
Apache 2.4 (ne concerne pas < 2.4)
Exim4
PHP5[/ul]
Mon serveur apache tourne avec le module mpm-itk qui permet d’utiliser un utilisateur différent pour chaque vhost ce qui a beaucoup d’avantages dans le cas d’un mutualisé.
Le problème était que je n’arrivais pas à envoyer de mail via la fonction PHP que je testais grâce à ce script simple :
<?php
if(mail('vivedebian@debian.fr', 'My Subject', 'message')){
echo "le message à été envoyé";
}else{
echo "Erreur d'envoi du message";
}
?>
Executé en root, aucun problème, en revanche, executé via un site web (donc un autre utilisateur que root ou www-data) j’avais un échec. Après avoir fouillé dans PHP ou encore dans les logs d’apache, rien de particulier ne remontait.
C’est en fait dans /var/log/exim4/paniclog que j’ai trouvé l’erreur suivante :
2016-02-01 12:52:52 unable to set gid=1007 or uid=0 (euid=0): forcing real = effective
J’ai donc modifié le mode mpm-prefork (sur lequel est basé mpm-itk) en ajoutant la ligne :
LimitUIDRange 0 2000
Entre les balises
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
LimitUIDRange 0 2000
</IfModule>
Reload de apache et exim4 et c’est tout
Maintenant tout fonctionne, les formulaires de contact du site web fonctionnent de nouveau
La doc qui m’a aidé :
mpm-itk.sesse.net/
A bientôt