Comment peut-apache être autorisés à envoyer du courrier?
J'ai une CentOS 6.2 de la machine virtuelle exécutant Apache 2.2 et PHP 5.3 que je suis en train de l'envoi des e-mails via PHP de la fonction mail (). Je peux envoyer des emails à partir de la CLI sans problèmes, mais quand PHP essaie d'échec. Dans le sendmail journal est le suivant:
Oct 9 11:42:03 localhost sendmail[3080]: NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied
Il semble que Apache n'a pas l'autorisation de le faire, mais je ne suis pas sûr de la façon de le résoudre. J'ai trouvé beaucoup de discussion à ce sujet, mais rien de suffisamment précis pour ce que je fais que je pourrais utiliser. Toute aide serait appréciée.
Merci!
Comment essayez-vous de transmettre ce courriel? Apache ne devrait jamais chdir dans le courrier répertoires spool - il faut juste parler pour le courrier local MTA.
Découvrez cette solution: forums.freebsd.org/showthread.php?t=32273
Découvrez cette solution: forums.freebsd.org/showthread.php?t=32273
OriginalL'auteur dev_willis | 2012-10-09
Vous devez vous connecter pour publier un commentaire.
D'abord, vous devez vérifier si l'autorisation sont corrects. Ici est l'autorisation ci-dessous dans mon système
# ls -l /usr/sbin/sendmail.sendmail
-r-xr-sr-x root smmsp /usr/sbin/sendmail.sendmail
# ls -l /var/spool/clientmqueue
drwxrwx--- smmsp smmsp /var/spool/clientmqueue
Si vos droits ou la propriété est fausse alors la modifier en utilisant chown et chmod.
Si ce qui précède est juste, alors désactiver selinux ou si vous voulez selinux activé utiliser chcon pour définir le bon contexte selinux.
http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html
Pour désactiver selinux utiliser temporairement
#setenforce 0
Ne pas désactiver SELinux 🙁 Il y a un booléen
httpd_can_sendmail
pour permettre au serveur web pour envoyer du courrier qui devrait fonctionner dans ce cas. Sursetsebool -P httpd_can_sendmail 1
, et comprennent les-P
option pour le rendre persistant entre les redémarrages.OriginalL'auteur Ranjith Ruban
Selinux peut provoquer le problème, pour vérifier lancer:
Si elle s'affiche comme ci-dessous, il est selinux:
Vous pouvez désactivé, mais si vous voulez le garder (et vous devriez, car il fournit une couche supplémentaire de sécurité) vous devriez faire quelque chose d'autre:
Cela permettra à la httpd pour envoyer des e-mails, comme lorsque vous utilisez php mail().
je n'ai utilisé que "setsebool -P httpd_can_sendmail sur" et a résolu le problème. Merci
OriginalL'auteur Florin Sima
Haine pour le nécro, mais aucune des solutions ici a fonctionné pour moi. Je sais très peu de choses sur SELinux, mais j'ai fini par découvrir le problème avec ce (sur CentOS 6):
Qui m'a dit qu'il est désactivé. Fixe avec
Cela a fonctionné pour moi sur centos
Vous êtes un sauveur.. Merci..
OriginalL'auteur jmaculate
Vous pouvez avoir SELinux est activé.
http://selinuxproject.org/page/Main_Page
Vous pouvez vérifier SELinux statut en faisant:
sestatus
Vous devriez voir quelque chose comme:
Vous pouvez activer SELinux temporairement via:
et à l'arrière avec
Si vous n'temp. l'éteindre, ne pas installer les RPMs ou apporter des modifications. Je trouve cela peut conduire à des problèmes de ré-activer.
Si vous souhaitez définitivement désactiver SELinux, essayez:
https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-Enabling_and_Disabling_SELinux.html
OriginalL'auteur jeffatrackaid
Cette commande fonctionne pour moi.
OriginalL'auteur Sawan Choubisa