• Alo88.COM! là Blog cá nhân nhằm chia sẻ những kiến thức, kinh nghiệm đã làm trong các dự án về các lĩnh vực: Lập trình website, quản trị mạng, web services, server cloud, Amazon Web Services, thiết kế đồ họa, domain-hosting.
    Hy vọng sẽ hữu ích cho các bạn

Bật chức năng gửi mail, SMTP cho apache trên amazon EC2 - Bật chức năng SELinux

mediavn

Administrator
Staff member
#1
Mình đã mất rất nhiều thời gian để tìm hiểu về cài đặt để mã nguồn gửi, nhận mail thông qua PHPMailer hoặc sử dụng hàm send mail của PHP hoặc phổ biến hơn sử dụng qua tài khoản SMTP của gmail ...
sendmail-selinux-apache.jpg

Bị lỗi này là do Cloud của EC2 mặc định đã chặn (SELinux blocking) nên web server php không thể thực hiện gửi mail. Lỗi này thường có trên RedHat / Fedora / Centos.

Điều kiện:
- Đã hoàn thành việc cài đặt website server apache, mysql, php trên EC2.
- Đã upload code website lên server (có thể là cms joomla, wordpress, mã nguồn của bạn muốn sử dụng gửi nhận mail)
- Bài này mình đang chạy trên centos7

Khắc phục:
Sử dụng lệnh getsebool để kiểm tra xem daemon httpd có được tạo kết nối qua mạng và gửi một email.
Kết nối ssh qua putty tới server gõ lần lượt các dòng lệnh dưới để kiểm tra.
Apache config:
getsebool httpd_can_sendmail
getsebool httpd_can_network_connect
Nếu chạy lệnh trên hiển thị off thì chúng ta bật on lên bằng cách chạy lần lượt các dòng lệnh dưới:
Apache config:
sudo setsebool -P httpd_can_sendmail 1
sudo setsebool -P httpd_can_network_connect 1
Nếu bạn đang chạy PHP-FPM qua fastcgi, bạn có thể cần áp dụng điều này cho trình nền fpm chứ không phải httpd.

Ok như vậy là đã mở chế độ SELinux giờ các bạn vào gửi mail thử xem thành quả nhé.
 

Bình Luận