2012-03-30php
前天測試出在64位系統下不能發送激活郵件的buglinux
打出error_msg:爲permission deny 服務器
調試搜索了半天,沒有結果;網上主要說的是網絡
fsockopen被關閉啊,用pfsockopen,或者stream_socket_client()來代替socket
都試過不行;函數
由於在window下這幾個函數都沒有問題,因此想到是linux的 的問題,這個東東困擾過好幾回了,之後碰到問題請首先想到這個;測試
既然默認開啓了確定有他的好處,不能關selinux,就搜索:selinux+smtpspa
找到了答案,selinux果真是不容許http來鏈接網絡的,執行以下命令:調試
setsebool -P httpd_can_network_connect=1ci
便可發送郵件了,看來得好好看看selinux這個鬼東西了。
詳情參考:
https://www.vbulletin.com/forum/showthread.php/217997-smtp-mail-and-SElinux-in-enforcing-mode
To allow PHP/Apache to connect to port 25 issue the following commands as root:
setsebool -P httpd_can_network_connect=1
To allow PHP mail() to work issue the following command as root:
setsebool -P httpd_can_sendmail=1
今天2012-04-19
又碰到服務器不能發送郵件的問題了,服務器部署到電信機房後。
SMTP Error: Could not connect to SMTP host.
找了半天沒有發現問題所在,重啓了httpd,就行了,實在太詭異了,
按理昨天關閉服務器在機房纔開的機,httpd也算是重啓了的。
先記住,重啓httpd可不是神馬好方法