Operations

Cài đặt aaPanel trên Ubuntu 24.04 và Debian 12 VPS

Mở đầu

Bạn vừa thuê một VPS Linux với Ubuntu 24.04 hoặc Debian 12, và muốn quản lý website, database, DNS qua giao diện web thay vì gõ lệnh SSH cho từng tác vụ. aaPanel là một giải pháp nhẹ, mã nguồn mở, giao diện trực quan, không yêu cầu license như cPanel. Bài viết này hướng dẫn bạn từ bước đầu tiên cho đến khi có aaPanel chạy ổn định, kèm các lưu ý bảo mật và xử lý lỗi thường gặp.

Yêu cầu trước khi bắt đầu

  • Một thuê VPS chạy Ubuntu 24.04 LTS hoặc Debian 12 (x64). aaPanel hỗ trợ cả hai, nhưng không dùng CentOS 7 (đã EOL).
  • Quyền root hoặc user có sudo. Khuyến nghị dùng user root để chạy script cài đặt.
  • SSH client (Termius, PuTTY, hoặc terminal trên macOS/Linux).
  • Port 7800 (giao diện aaPanel), 80 (HTTP), 443 (HTTPS) mở trên firewall, nếu dùng ufw hoặc firewalld.
  • Không cài chồng lên các panel khác (cPanel, CyberPanel, Webmin) hoặc web server đã có (Nginx, Apache). Script aaPanel sẽ cài Nginx + Apache + MySQL/MariaDB + PHP, xung đột sẽ gây lỗi.

aaPanel là gì? Khi nào nên dùng?

aaPanel là control panel miễn phí, mã nguồn mở (dựa trên BaoTa Panel), phát triển bởi aaPanel team. Nó cung cấp giao diện web để quản lý: tạo website, quản lý database (MySQL/MariaDB, PostgreSQL), DNS, file, cron job, SSL (Let's Encrypt), firewall, và giám sát tài nguyên. Khác với cPanel/Plesk, aaPanel không yêu cầu thanh toán license, phù hợp cho cá nhân và dev muốn tự quản lý hạ tầng mà không muốn phức tạp hóa. Tuy nhiên, cộng đồng và tài liệu tiếng Anh hạn chế hơn so với cPanel, nên bạn cần chấp nhận rủi ro này. Nếu bạn cần một panel ổn định, nhẹ và đơn giản cho VPS Linux, ví dụ như VPS Linux bạn đang chạy, aaPanel là lựa chọn đáng cân nhắc.

Bước 1 - Cập nhật hệ thống và cài đặt các gói cần thiết

SSH vào VPS với quyền root, chạy lệnh sau để đảm bảo hệ thống ở phiên bản mới nhất.


# Ubuntu / Debian
apt update && apt upgrade -y
apt install -y wget curl screen unzip sudo

Giải thích: lệnh apt update cập nhật danh sách gói, apt upgrade nâng cấp các gói hiện có. wgetcurl để tải script aaPanel, screen giúp giữ phiên cài đặt nếu SSH bị ngắt.

Verify: chạy lsb_release -a (Ubuntu) hoặc cat /etc/debian_version (Debian), kiểm tra phiên bản. RAM tối thiểu 1GB (khuyến nghị 2GB).

Bước 2 - Chạy script cài đặt aaPanel

aaPanel cung cấp script cài đặt một lệnh cho Ubuntu/Debian. Dùng lệnh sau (ưu tiên bản mới nhất):


wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh
bash install.sh

Script sẽ tự động phát hiện OS, tải và cài đặt Nginx, Apache, MySQL, PHP, phpMyAdmin, Pure-FTPd, Redis... Quá trình mất 15-30 phút tùy tốc độ VPS và kết nối mạng. Trong lúc chờ, script sẽ yêu cầu bạn xác nhận Python version, nhập y nếu hỏi.

Lưu ý quan trọng: KHÔNG tắt terminal. Nếu lo mất kết nối SSH, hãy chạy trong screen trước (chạy screen -S aaPanel, sau đó chạy script. Để thoát screen an toàn: Ctrl+A, D; quay lại: screen -r aaPanel).

Verify: Sau khi hoàn tất, bạn sẽ thấy output dạng:


==================================================
Congratulations! aaPanel Successfully Installed!
==================================================
aaPanel Internet Address: http://IP:7800
username: abcdef
password: 123456

Ghi lại IP, port 7800, username, password.

Bước 3 - Truy cập giao diện và cấu hình lần đầu

Mở trình duyệt, truy cập http://[IP_VPS]:7800. Đăng nhập với thông tin từ bước trên.

  • Lần đầu, aaPanel sẽ yêu cầu bạn chọn gói phần mềm mặc định: LNMP (Linux, Nginx, MySQL, PHP) hoặc LAMP (Apache thay Nginx). Nếu không có yêu cầu đặc biệt, chọn LNMP.
  • Mật khẩu mặc định rất yếu, vào Panel Settings → đổi mật khẩu ngay lập tức, ưu tiên mật khẩu dài >20 ký tự. Đổi username mặc định.
  • Truy cập Security → cấu hình API Access: disable nếu không dùng IP whitelist cho API.
  • Thêm domain cho panel (tùy chọn): vào Panel SettingsPanel Domain, nhập domain trỏ về IP VPS. Cài SSL Let's Encrypt từ tab này.

Verify: Sau khi đổi mật khẩu, logout và đăng nhập lại để kiểm tra. Nếu muốn kiểm tra port 7800 có mở từ ngoài: dùng curl -I http://localhost:7800 hoặc từ máy khác curl -I http://IP:7800, kết quả HTTP/1.1 200 OK.

Bước 4 - Tạo website đầu tiên

aaPanel sẵn sàng, bạn có thể tạo website ngay trong vài cú click.

  1. Vào menu Websites → click Add Site.
  2. Nhập domain (ví dụ example.com, www.example.com).
  3. Chọn database: aaPanel tự động tạo database và user. Ghi lại thông tin.
  4. FTP: tùy chọn, nếu bạn upload file qua FTP.
  5. Click Submit.

aaPanel sẽ tạo thư mục website tại /www/wwwroot/example.com/. Bạn có thể upload file qua FTP hoặc file manager tích hợp. Để cài SSL Let's Encrypt: vào Websites → chọn site → SSL → chọn Let's Encrypt → nhập email → Submit.

Verify: truy cập http://example.com từ trình duyệt, thấy trang default aaPanel. Kiểm tra SSL: curl -I https://example.com trả HTTP/2 200.

Bước 5 - Cấu hình bảo mật cơ bản sau cài đặt

aaPanel mặc định mở port 7800 ra toàn bộ internet. Hạn chế truy cập panel chỉ từ IP của bạn (nếu có IP tĩnh) hoặc qua VPN. Dùng các lệnh sau trên VPS (không qua giao diện aaPanel):


# Cài ufw nếu chưa có
apt install ufw -y
ufw default deny incoming
ufw default allow outgoing

# Mở SSH, HTTP, HTTPS
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp

# Chỉ mở port 7800 cho IP của bạn (thay YOUR_IP bằng IP thật)
ufw allow from YOUR_IP to any port 7800

# Nếu chưa có IP tĩnh, tạm thời chỉ cho phép qua WireGuard (khuyến nghị)
# ufw allow from 10.0.0.0/8 to any port 7800

# Enable ufw
ufw --force enable

Đồng thời, trong aaPanel vào SecurityFirewall → xóa rule cho phép 0.0.0.0/0 port 7800 (nếu có). Điều này đảm bảo panel không bị rà quét từ bên ngoài.

Các biện pháp khác: bật Fail2ban trong aaPanel (Settings → Fail2ban), cấu hình tối ưu PHP-FPM, đặt giá trị upload_max_filesize, memory_limit phù hợp. Thay đổi SSH port mặc định từ 22 sang cao hơn, khóa root login dùng key, xem bài bảo mật SSH.

Xử lý lỗi thường gặp

Lỗi 1: Không truy cập được aaPanel qua port 7800

Nguyên nhân: firewall VPS (cloud firewall từ nhà cung cấp, ufw, iptables) chặn port. Kiểm tra: ufw status, iptables -L -n. Trên các gói VPS giá rẻ của nhiều nhà cung cấp có firewall tầng cloud, cần vào console provider mở port 7800 cho IP của bạn. Nếu dùng ufw: chạy ufw allow 7800/tcp tạm thời, sau đó sửa theo IP.

Lỗi 2: Script cài đặt treo ở bước "Downloading python"

Nguyên nhân: VPS không ra được internet, hoặc DNS lỗi. Kiểm tra: ping google.com. Nếu không được, sửa DNS: echo "nameserver 8.8.8.8" > /etc/resolv.conf. Có thể mirror python bị hỏng, thử dùng script cài từ source thay vì script mặc định (tham khảo forum aaPanel). Nếu vẫn lỗi, chạy screen và thử lại.

Lỗi 3: MySQL không khởi động được

Dùng lệnh trong aaPanel: systemctl status mysqld hoặc xem log: tail -100 /www/server/mysql/data/error.log. Nguyên nhân hay gặp: RAM < 1GB dẫn đến OOM. Giải pháp: nâng cấp RAM VPS lên 2GB, hoặc cấu hình MySQL dùng ít RAM hơn (trong file /etc/my.cnf, giảm innodb_buffer_pool_size xuống 128M). Nếu VPS có 2GB, bạn nên kiểm tra VPS Linux đáp ứng đủ.

Câu hỏi thường gặp

aaPanel có miễn phí không?

Có. aaPanel Basic là miễn phí, không giới hạn số website. Có bản Pro trả phí thêm tính năng (bảo mật nâng cao, WAF). Bản Free đủ dùng cho website cá nhân và doanh nghiệp nhỏ.

Có thể cài aaPanel trên VPS cài sẵn LEMP không?

Không khuyến nghị. Script aaPanel sẽ cài đè Nginx/Apache và MySQL, gây xung đột và lỗi. Nên cài aaPanel trên VPS sạch (fresh OS). Dùng Reinstall OS từ control panel nhà cung cấp nếu cần.

aaPanel có hỗ trợ IPv6 không?

Có. aaPanel hỗ trợ IPv6 cho website và panel. Cần enable IPv6 trên VPS trước, sau đó trong cài đặt site có option chọn IPv6.

Làm sao backup website trong aaPanel?

Vào Websites → chọn site → click Backup. aaPanel cho backup toàn bộ file + database, có thể tải về hoặc lưu trên cloud. Lên lịch cron backup trong Tasks.

aaPanel có bảo mật không?

aaPanel có firewall tích hợp, fail2ban, và plugin bảo mật (miễn phí và Pro). Tuy nhiên, như mọi panel web, nó có bề mặt tấn công lớn hơn việc dùng CLI. Hãy cập nhật aaPanel thường xuyên, không dùng port 7800 mở toàn bộ internet, và chỉ cài plugin từ nguồn chính thức.

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.