10

PHPのmail()関数を介して電子メールを送信しようとしているApache2.2およびPHP5.3を実行しているCentOS6.2仮想マシンがあります。CLIから問題なくメールを送信できますが、PHPが試行すると失敗します。sendmailログには次のものがあります。

Oct  9 11:42:03 localhost sendmail[3080]: NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied

Apacheにはこれを行う権限がないようですが、修正方法がわかりません。私はこれについて多くの議論を見つけましたが、私が使用できることについて十分に具体的なものは何もありません。どんな助けでもいただければ幸いです。ありがとう!

4

5 に答える 5

31

Selinux が問題を引き起こす可能性があるため、実行を確認します。

getsebool -a | grep mail

次のように表示される場合は、selinux です。

allow_postfix_local_write_mail_spool --> off

無効にすることもできますが、それを保持したい場合は (セキュリティの追加レイヤーを提供するため保持する必要があります)、別のことを行う必要があります。

setsebool -P httpd_can_sendmail on

これにより、php mail() を使用する場合と同様に、httpd がメールを送信できるようになります。

于 2012-11-20T10:54:13.267 に答える
4

まず、許可が正しいかどうかを確認する必要があります。これが私のシステムでの以下の許可です

# 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

権限または所有権が間違っている場合は、chownおよびchmodを使用して変更してください。

上記が正しい場合は、selinuxを無効にするか、selinuxを有効にする場合は、chconを使用して正しい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

selinuxを一時的に無効にするには#setenforce 0

于 2012-10-09T17:49:27.793 に答える
1

SELinux が有効になっている可能性があります。

http://selinuxproject.org/page/Main_Page

次のようにして SELinux のステータスを確認できます。

状態

次のように表示されます。

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

次の方法で SELinux を一時的にオフにすることができます。

echo 0 >/selinux/enforce

そして戻って

echo 1 >/selinux/enforce

あなたが臨時雇用者をするならば。RPM をインストールしたり、変更を加えたりしないでください。これにより、再度有効にする際に問題が発生する可能性があります。

SELinux を永続的に無効にしたい場合は、以下を試してください。

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

于 2012-10-09T17:26:30.177 に答える