2015-02-03 2 views
1

입니다. 저는 CentOS 6.6 시스템에 Wordpress를 설치해 봤는데이 물건에 꽤 새로워졌습니다. 새로 설치하여 모든 최신 버전의 httpd, php, mySQL 및 Wordpress를 설치하십시오.Wordpress.org 서버 : PHP는 SMTP 포트에 액세스 할 수 없지만 텔넷은

이제는 SMTP를 사용하여 이메일을 보내는 것 외에는 모두 작동합니다. SMTP를 구성하기 위해 Wordpress에 여러 개의 플러그인을 설치했지만 테스트 이메일을 보내면 SMTP connect()와 같은 오류가 발생합니다. 내 신임장을 확인하는 것보다 더 많이 만들었습니다.

telnet smtp.gmail.com 25 

openssl s_client -connect smtp.gmail.com:465 

그리고 둘 다 문제없이 Gmail의 SMTP 나를 연결 : 나는 이러한 시도 명령 줄에서

. Wordpress가 연결되는 것을 허용하지 않는 지속적인 오류로 마침내 Wordpress를 방정식에서 제거하기로 결정했고 모든 포트에 대해 "응답하지 않음"을 반환하는 다음 코드를 포함하는 서버에 테스트 PHP 파일을 만들었습니다.

<?php 
$host = 'smtp.gmail.com'; 
$ports = array(25, 465, 587); 
foreach ($ports as $port) 
{ 
$connection = @fsockopen($host, $port); 

if (is_resource($connection)) 
{ 
    echo '<h2>' . $host . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.</h2>' . "\n"; 

    fclose($connection); 
} 

else 
{ 
    echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\n"; 
} 
} 

위의 PHP 스크립트를 www.gmail.com으로 변경하고 포트 80과 443을 추가하면 80과 443이 열려 있고 나머지는 닫혀 있습니다 (현재 www 서버를보고있는 것처럼 말이죠). 그래서 스크립트는 잘 작동하는 것처럼 보입니다.

나는 그 자체가 내가 알아낼 수 없습니다

(I가있는 CmdLine에서이 포트에 텔넷 수) 나를 SMTP 포트의를 통해 이동하는 것을 허용하지 PHP에서 일부 문제가 될 수 있습니다 추측하고있어 PHP의 문제 일 수 있습니다. 누구든지이 포인터를 어떻게 해결할 수 있습니까?

+0

내가 발견 나는 audit.log에 들어오는 새로운 항목이, PHP는 테스트 페이지를 새로 고침 할 때마다 : –

+0

유형 = 시스템 콜 MSG = 감사 (1422965981.489 : 1703803) : 아치 = c000003e의 콜 = (42 개)의 성공은 더 = exit = -13 a0 = 1f a1 = 7f12c44a0ef8 a2 = 10 a3 = 7f12c005514c 항목 = 0 ppid = 53588 pid = 53590 auid = 0 uid = 48 gid = 48 euid = 48 suid = 48 fsuid = 48 egid = 48 sgid = 48 fsgid = 48 tty = (없음) ses = 492 comm = "httpd"exe = "/ usr/sbin/httpd"subj = unconfined_u : system_r : httpd_t : s0 key = (null) type = AVC msg = audit (1422965981.489 : 1703804) : avc : pid = 53590 comm = "httpd"dest = 465 scontext = unconfined_u : system_r : httpd_t : s0 tcontext = system_u : object_r : smtp_port_t : s0 tclass = tcp_socket에 대해 {name_connect} –

답변

1

내 대답을 찾았습니다. 사실 PHP에서 SMTP 포트에 액세스하려고 할 때마다 audit.log 항목이 입력 되었기 때문에 SELinux가 원인을 알 수있었습니다.

일시적으로 해제 SELinux를가 다시 작동했다 :

echo 1 >/selinux/enforce 

... 그리고 마지막으로 나는이 cmd를 구성 할 것을 발견 : 그 일에 입증 한

echo 0 >/selinux/enforce 

, 내가 SELinux를 사용 가능 다시 SELinux는 아파치/PHP를 통해 SMTP를 허용합니다 :

setsebool -P httpd_can_network_connect on 
1

마지막으로! 나는 WordPress가 아닌 셸을 사용하여 메일을 보낼 수있는 이유를 적어도 8 시간 이상 보냈습니다. 이건 내 문제를 해결!

$ sudo setsebool -P httpd_can_sendmail 1