Wie kann der apache erlaubt werden, um E-Mail senden?
Ich habe einen CentOS 6.2 virtuelle Maschine mit Apache 2.2 und PHP 5.3, ich werde versuchen, senden von E-Mails per PHP mail () - Funktion. Ich kann E-Mail senden von der CLI ohne Probleme, aber wenn PHP versucht, es funktioniert nicht. Im sendmail-log ist folgende:
Oct 9 11:42:03 localhost sendmail[3080]: NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied
Es scheint, dass Apache nicht die Erlaubnis haben, dies zu tun, aber ich bin mir nicht sicher, wie es zu lösen ist. Ich habe eine Menge Diskussion über diese aber nicht spezifisch genug, um das, was ich mache, dass ich verwenden könnte. Jede Hilfe würde geschätzt werden.
Danke!
Wie werden Sie versuchen, zu senden Sie diese E-Mail? Der Apache sollte nie müssen chdir in das mail-spool-Verzeichnisse - es sollte nur sprechen, um den lokalen E-mail-MTA.
Überprüfen Sie heraus diese Lösung: forums.freebsd.org/showthread.php?t=32273
Überprüfen Sie heraus diese Lösung: forums.freebsd.org/showthread.php?t=32273
InformationsquelleAutor dev_willis | 2012-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, Sie haben zu prüfen, ob die Berechtigung korrekt sind. Hier ist die Erlaubnis, die unten in meinem system
# 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
Wenn Sie Ihre Berechtigungen oder Eigentum ist falsch, dann ändern Sie es mit chown und chmod.
Wenn das oben richtig ist, dann deaktivieren Sie selinux oder wenn Sie möchten, dass selinux aktiviert verwenden chcon zu stellen Sie den richtigen selinux-Kontext.
http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html
Deaktivierung von selinux vorübergehend
#setenforce 0
Nicht deaktivieren Sie SELinux 🙁 Es gibt einen boolean
httpd_can_sendmail
zu ermöglichen, die web-server, um E-mail senden, die sollte in diesem Fall. Setzen Sie diese mitsetsebool -P httpd_can_sendmail 1
, und auch die-P
option, um es persistent Neustarts.InformationsquelleAutor Ranjith Ruban
Selinux kann die Ursache des Problems, um zu überprüfen, ausführen:
Wenn es zeigt, wie bellow es ist selinux:
Können Sie es deaktiviert, aber wenn Sie es behalten wollen (und das sollten Sie, denn es bietet eine zusätzliche Ebene der Sicherheit) sollten Sie etwas anderes tun:
Dadurch wird der httpd-E-Mails senden, als wenn Sie sich unter Verwendung der php mail().
ich habe nur "setsebool -P httpd_can_sendmail auf" und das problem gelöst. Dank
InformationsquelleAutor Florin Sima
Hasse necro, aber keine der Lösungen hier für mich gearbeitet. Ich weiß sehr wenig über SELinux, aber ich landete zu entdecken, das problem mit diesem (auf CentOS 6):
Die mir gesagt, es ist deaktiviert. Feste mit
Dieser arbeitete für mich auf centos
Sie sind ein Retter.. Danke..
InformationsquelleAutor jmaculate
Können Sie SELinux aktiviert haben.
http://selinuxproject.org/page/Main_Page
Können Sie überprüfen, SELinux-status zu tun:
sestatus
Sollten Sie etwas wie:
Können Sie schalten Sie SELinux vorübergehend ausschalten über:
und wieder mit
Wenn Sie temp. schalten Sie es aus, installieren RPMs, oder änderungen vornehmen. Ich finde, das kann zu Problemen führen mit re-aktivieren.
Wenn Sie möchten, um dauerhaft deaktivieren Sie SELinux, dann versuchen Sie:
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
InformationsquelleAutor jeffatrackaid
Diesen Befehl, für mich zu arbeiten.
InformationsquelleAutor Sawan Choubisa