Cài máy chủ web
bằng một lệnh.
nginx, PHP, MariaDB, Redis và WordPress. Script kiểm tra máy trước, hỏi bạn vài thông số, rồi mới cài.
curl -fsSL https://nhanhvps.com/nhanhvps | sudo bash
Không cài lên máy đang có website.
Trước khi ghi bất cứ thứ gì, script đọc phần cứng, cổng đang mở, dịch vụ đang chạy và những tên miền nginx đang phục vụ. Thấy một tên miền thật là nó dừng.
Dừng khi gặp site thật
nginx đang phục vụ tên miền không do panel quản lý thì script thoát, không ghi đè gì.
Thông số lấy từ máy
RAM, CPU và ổ đĩa quyết định swap, buffer pool, số tiến trình PHP. Mỗi dòng đều ghi lý do.
Chưa đồng ý thì chưa đổi
Bạn xem bảng kiểm tra và kế hoạch trước. Chỉ khi gõ xác nhận thì máy mới bị thay đổi.
Tự kiểm tra sau khi cài
Kết thúc bằng nginx -t, php-fpm -t và một kết nối thật vào cơ sở dữ liệu.
Tám câu, câu nào cũng có mặc định.
Giá trị mặc định lấy từ chính máy chủ nên cứ nhấn Enter là ra một cấu hình dùng được. Những thứ phải tính toán thì script tự tính, bạn không phải đoán.
| Câu hỏi | Mặc định |
|---|---|
| Ngôn ngữ giao diện | Tiếng Việt |
| Phiên bản PHP | 8.3. Chọn 8.1 hoặc 8.2 thì script tự thêm kho cần thiết |
| Swap | RAM chia đôi, trong khoảng 512 MB đến 4 GB |
| Múi giờ | Múi giờ máy đang đặt |
| Cổng SSH | Cổng sshd đang nghe |
| phpMyAdmin | Không cài |
| fail2ban | Bật |
| Website đầu tiên | Không. Chọn có thì hỏi thêm tên miền, email và WordPress |
Năm bước, lần nào cũng giống nhau.
Không có bước nào bị bỏ qua vì đã quen tay.
Kiểm tra sơ bộ
Phải là root, đúng Ubuntu 24.04, có systemd và apt cập nhật được. Sai thì dừng, chưa tải gì.
Tải và xác minh
Tải bản phát hành, so với mã sha256 công bố, rồi mới giải nén.
Kiểm tra hệ thống
Danh sách lỗi, cảnh báo và việc cần làm, kèm bảng thông số sẽ áp dụng.
Hỏi cấu hình
Tám câu như trên. Xong thì hiện lại toàn bộ để bạn xem lần cuối.
Cài và tự kiểm tra
nginx, PHP-FPM, MariaDB, Redis, tường lửa, chứng chỉ. Sau đó chạy nhanhvps doctor để xem lại.
Mấy chỗ hay bị làm ẩu.
Phần này là các quyết định khi viết, không phải danh sách tính năng.
Mỗi site một tài khoản Linux
Mỗi website có user riêng và một pool PHP-FPM riêng, open_basedir trỏ vào thư mục của nó. Site này không đọc được tệp của site kia.
Chứng chỉ không bị ghi đè
Lấy bằng certbot certonly --webroot rồi panel tự cài vào vhost. Không dùng plugin sửa vhost sau lưng bạn.
Cấu hình là tệp dữ liệu
Mỗi site một tệp key=value, đọc bằng parser chứ không source. Tệp hỏng thì báo lỗi, không chạy lệnh.
Hỏng thì trả lại bản cũ
Tệp nào bị sửa cũng có bản sao. Cấu hình mới không qua nginx -t thì bị gỡ, nginx chạy tiếp bằng bản trước.
Sao lưu khôi phục được
Dump cơ sở dữ liệu trong một transaction, nén thư mục site. Trước khi khôi phục, nó chụp lại trạng thái hiện tại.
Không chép code của panel khác
Viết lại từ bản đặc tả. Giấy phép GPL-2.0, tệp NOTICE ghi đúng những gì có trong kho.
Máy cần gì để chạy.
Máy chủ mới, chưa cài gì. Bản Ubuntu 24.04 LTS, kiến trúc x86_64 hoặc arm64.
Cần có
- RAM
- 1 GB, khuyến nghị 2 GB
- Ổ đĩa
- 10 GB trống
- Quyền
- root hoặc sudo
- Mạng
- ra được kho gói Ubuntu
Sẽ bị từ chối
- Máy có site
- nginx đang phục vụ tên miền thật
- Cổng bận
- 80 hoặc 443 do chương trình khác giữ
- Môi trường
- container, WSL, không có systemd
- Tài nguyên
- dưới 1 GB RAM hoặc dưới 10 GB đĩa
Chạy thử trên máy chủ mới
Script kiểm tra máy trước khi tải bất cứ thứ gì. Không hợp thì nó dừng và không đổi gì cả.
curl -fsSL https://nhanhvps.com/nhanhvps | sudo bash
curl -fsSL https://nhanhvps.com/nhanhvps | sudo bash -s -- --answers /root/answers.conf
Xem trước, không thay đổi gì:
sudo bash setup.sh --dry-run
Gỡ bản cài, website và cơ sở dữ liệu vẫn còn:
sudo bash setup.sh --uninstall