Cách cấu hình email, SSL, database trên panel thay cPanel phổ biến
cPanel mạnh, quen, nhưng phí cao. Nhiều VPS nhỏ, agency, dev team chọn panel thay cPanel để giảm chi phí, dễ kiểm soát hơn. Phổ biến: CyberPanel, DirectAdmin, aaPanel, HestiaCP, CloudPanel, Webmin/Virtualmin, ISPConfig.
Khó nhất không phải cài panel. Khó nằm ở 3 phần hay gây lỗi website và email: email, SSL, database. Cấu hình sai SPF/DKIM thì mail vào spam. Sai SSL thì trình duyệt báo nguy hiểm. Sai database user hoặc quyền thì web lỗi kết nối.
Bài này hướng dẫn cách làm đúng, áp dụng được cho hầu hết panel thay cPanel.
1. Chuẩn bị trước khi cấu hình
Trước khi bấm trong panel, cần chuẩn bị nền.
Trỏ DNS đúng
Tên miền phải trỏ về VPS/server.
Bản ghi cơ bản:
– A record: domain.com → IP server
– A record: www.domain.com → IP server
– A record: mail.domain.com → IP server
– MX record: domain.com → mail.domain.com
– TXT SPF: chống giả mạo email
– TXT DKIM: ký email
– TXT DMARC: chính sách xác thực email
Ví dụ SPF:
v=spf1 a mx ip4:YOUR_SERVER_IP ~allVí dụ DMARC cơ bản:
v=DMARC1; p=none; rua=mailto:[email protected]Kiểm tra hostname server
Hostname nên là FQDN, ví dụ:
server.domain.comKhông dùng localhost, không dùng tên ngẫu nhiên. Hostname tốt giúp email ít bị nghi ngờ spam hơn.
Mở port cần thiết
Firewall cần mở:
– Web: 80, 443
– Email gửi: 25, 465, 587
– Email nhận IMAP/POP3: 143, 993, 110, 995
– Database remote nếu cần: 3306 hoặc 5432
– Panel: tùy panel, ví dụ 8090, 8083, 8443
Nếu VPS nhà cung cấp chặn port 25, email gửi ra ngoài fail. Cần gửi ticket mở port hoặc dùng SMTP relay.
2. Cấu hình website và SSL
SSL hiện là bắt buộc. Không SSL, web mất uy tín, SEO giảm, trình duyệt cảnh báo.
Thêm domain vào panel
Trong panel, vào mục dạng:
– Websites – Domains – Virtual Hosts – Sites
Tạo website mới:
– Domain: domain.com
– Document root: thường là public_html, htdocs, hoặc /home/user/web/domain.com/public_html
– PHP version: chọn đúng bản app cần
– Enable SSL: bật nếu panel cho chọn ngay
Với WordPress, Laravel, Magento, Node app, cần kiểm tra document root. Laravel thường trỏ vào thư mục:
/publicSai root gây lỗi trắng trang, lộ file .env, hoặc 403.
Cấp SSL Let’s Encrypt
Hầu hết panel hỗ trợ Let’s Encrypt. Quy trình thường:
1. Vào website/domain.
2. Chọn SSL hoặc Let’s Encrypt.
3. Tick domain.com và www.domain.com.
4. Bấm cấp chứng chỉ.
5. Bật redirect HTTP sang HTTPS.
Điều kiện cấp SSL thành công:
– Domain đã trỏ đúng IP.
– Port 80 mở.
– Web server chạy.
– Không bật proxy sai ở Cloudflare.
Nếu dùng Cloudflare, đặt SSL/TLS mode là:
Full (strict)Không nên dùng Flexible, vì dễ gây redirect loop.
Bật redirect HTTPS
Cần chuyển toàn bộ HTTP sang HTTPS. Panel có nút bật, hoặc cấu hình trong .htaccess với Apache:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Với Nginx, panel thường tự tạo server block redirect. Nếu sửa tay, kiểm tra kỹ để tránh vòng lặp.
Gia hạn SSL
Let’s Encrypt hết hạn sau 90 ngày. Panel thường tự renew. Nhưng nên kiểm tra cron hoặc service renew.
Lệnh kiểm tra tùy hệ thống:
certbot certificatesNếu panel không dùng Certbot riêng, xem log panel. SSL hết hạn gây lỗi lớn với khách truy cập và API.
3. Cấu hình email trên panel thay cPanel
Email là phần dễ sai nhất. Panel miễn phí không phải lúc nào cũng cấu hình mail hoàn hảo như cPanel.
Tạo mailbox
Trong panel, vào:
– Email – Mail Accounts – Mailboxes
Tạo email:
Đặt mật khẩu mạnh. Không dùng mật khẩu giống admin panel.
Cấu hình MX
Nếu dùng mail trên chính server, MX:
domain.com MX 10 mail.domain.com
mail.domain.com A YOUR_SERVER_IPNếu dùng Google Workspace, Zoho, Microsoft 365, không dùng mail server nội bộ. Khi đó MX phải theo nhà cung cấp đó. Không cấu hình lẫn lộn.
Cấu hình SPF
SPF cho biết server nào được phép gửi mail thay domain.
Nếu gửi từ VPS:
v=spf1 a mx ip4:YOUR_SERVER_IP ~allNếu dùng thêm dịch vụ SMTP như Mailgun, SendGrid, Amazon SES, cần include theo hướng dẫn của họ.
Ví dụ:
v=spf1 a mx ip4:YOUR_SERVER_IP include:sendgrid.net ~allChỉ nên có một SPF record cho domain. Nhiều SPF record gây lỗi.
Cấu hình DKIM
DKIM ký email bằng khóa riêng trên server. DNS lưu khóa công khai.
Trong panel, tìm:
– DKIM – Email Authentication – Mail Security
Bật DKIM cho domain, copy TXT record ra DNS.
Dạng thường gặp:
default._domainkey.domain.com TXT "v=DKIM1; k=rsa; p=PUBLIC_KEY"Sau khi thêm DNS, đợi propagate. Kiểm tra bằng công cụ:
https://mxtoolbox.com/dkim.aspxCấu hình DMARC
DMARC quyết định xử lý mail fail SPF/DKIM. Giai đoạn đầu nên dùng p=none để theo dõi:
v=DMARC1; p=none; rua=mailto:[email protected]Khi email ổn định, có thể tăng lên:
v=DMARC1; p=quarantine; rua=mailto:[email protected]Hoặc nghiêm hơn:
v=DMARC1; p=reject; rua=mailto:[email protected]Không bật reject khi chưa kiểm tra luồng gửi mail. Mail hợp lệ có thể bị chặn.
Cấu hình client email
Thông số phổ biến:
IMAP SSLServer: mail.domain.com
Port: 993
Encryption: SSL/TLS
Username: full email
Password: mailbox passwordServer: mail.domain.com
Port: 587
Encryption: STARTTLS
Username: full email
Password: mailbox passwordServer: mail.domain.com
Port: 465
Encryption: SSL/TLS
Username: full email
Password: mailbox passwordNếu gửi mail lỗi, kiểm tra log:
/var/log/mail.log
/var/log/maillogTùy distro.
4. Cấu hình database
Website thường dùng MySQL/MariaDB hoặc PostgreSQL. Panel thay cPanel thường có mục database riêng.
Tạo database và user
Trong panel, vào:
– Databases – MySQL Databases – MariaDB – PostgreSQL
Tạo:
Database: domain_db
User: domain_user
Password: strong_password
Host: localhostGán user vào database với quyền cần thiết. Với WordPress, quyền thường gồm:
– SELECT – INSERT – UPDATE – DELETE – CREATE – ALTER – INDEX – DROP
Không dùng root database cho website. Rủi ro lớn.
Cấu hình file website
WordPress trong wp-config.php:
define('DB_NAME', 'domain_db');
define('DB_USER', 'domain_user');
define('DB_PASSWORD', 'strong_password');
define('DB_HOST', 'localhost');Laravel trong .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=domain_db
DB_USERNAME=domain_user
DB_PASSWORD=strong_passwordNếu database chạy trong container hoặc remote host, localhost có thể sai. Dùng đúng IP, socket, hoặc service name.
Remote database
Chỉ bật remote database khi cần. Ví dụ app server tách khỏi database server.
Cần làm:
1. Cho database bind IP phù hợp.
2. Mở firewall port 3306.
3. Tạo user theo host cụ thể.
4. Giới hạn IP được kết nối.
Ví dụ MySQL user remote:
CREATE USER 'domain_user'@'APP_SERVER_IP' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON domain_db.* TO 'domain_user'@'APP_SERVER_IP';
FLUSH PRIVILEGES;Không dùng:
'user'@'%'trừ khi đã có firewall rất chặt.
Sao lưu database
Panel nào cũng cần backup. Tối thiểu:
– Backup daily – Lưu ngoài server chính – Giữ 7-30 bản – Test restore định kỳ
Backup không test restore = chưa chắc dùng được.
Lệnh export MySQL:
mysqldump -u domain_user -p domain_db > domain_db.sqlImport:
mysql -u domain_user -p domain_db < domain_db.sql5. Lỗi thường gặp và cách xử lý
SSL không cấp được
Nguyên nhân:
– DNS chưa trỏ đúng.
– Port 80 bị chặn.
– Cloudflare proxy gây xác thực fail.
– Domain có IPv6 AAAA sai.
– Web server config lỗi.
Cách xử lý: tắt proxy Cloudflare tạm, kiểm tra A/AAAA record, mở port, thử cấp lại.
Email vào spam
Nguyên nhân:
– Thiếu SPF/DKIM/DMARC. – IP server có blacklist. – Reverse DNS sai. – Nội dung mail giống spam. – Gửi quá nhiều từ IP mới.
Cách xử lý: kiểm tra blacklist, cấu hình rDNS về mail.domain.com, warm up IP, dùng SMTP relay nếu cần.
Website lỗi kết nối database
Nguyên nhân:
– Sai DB name/user/password.
– User chưa được cấp quyền.
– MySQL/MariaDB down.
– Host sai: localhost vs 127.0.0.1.
– Firewall chặn remote DB.
Cách xử lý: test login database bằng CLI, kiểm tra service, xem log app.
mysql -u domain_user -p -h localhost domain_db6. Chọn panel theo nhu cầu
CyberPanel
Hợp với OpenLiteSpeed, WordPress tốc độ tốt. Có Let’s Encrypt, email, database. Giao diện dễ.
DirectAdmin
Ổn định, nhẹ, thương mại nhưng rẻ hơn cPanel. Email và DNS khá đầy đủ. Hợp hosting provider nhỏ.
HestiaCP
Miễn phí, nhẹ, dễ dùng. Phù hợp VPS cá nhân, website nhỏ, agency nhỏ.
aaPanel
Giao diện đẹp, nhiều plugin. Dễ dùng cho người mới. Cần kiểm tra bảo mật plugin và nguồn cài.
CloudPanel
Tối ưu web app, PHP, Nginx. Không tập trung email server. Nếu cần email, nên dùng dịch vụ ngoài.
Kết luận thực tế
Panel thay cPanel tiết kiệm chi phí và đủ mạnh nếu cấu hình đúng. Trọng tâm nằm ở 3 phần: SSL phải tự gia hạn, email phải đủ SPF/DKIM/DMARC, database phải tách user, phân quyền đúng, backup đều.
Nếu chạy website doanh nghiệp nhỏ, HestiaCP, CyberPanel, DirectAdmin là lựa chọn tốt. Nếu chạy app hiện đại và không cần mail nội bộ, CloudPanel cộng Google Workspace hoặc Zoho Mail thường gọn hơn.
Làm đúng từ đầu giúp tránh lỗi khó chịu: web báo không an toàn, mail rơi spam, database mất dữ liệu. Panel chỉ là công cụ. Cấu hình chuẩn mới là thứ giữ hệ thống chạy ổn.
Bình luận (0)
Chưa có bình luận. Hãy là người đầu tiên!