v1.0.0-rc1 · GPL-2.0 · Ubuntu 24.04 LTS

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.

102 module tiếng Việt, tiếng Anh Ubuntu 24.04 LTS
root@server:~
$ curl -fsSL https://nhanhvps.com/nhanhvps | sudo bash
== Kiểm tra sơ bộ == ok Ubuntu 24.04.5 LTS, systemd, curl == Tải bản phát hành == ok sha256 khớp, giải nén xong == Kiểm tra hệ thống == 16 mục đạt, 2 cảnh báo, 0 lỗi swap 2048M, innodb_buffer_pool 640M, pm.max_children 8 == Cài đặt == ok nginx 1.24.0, php-fpm 8.3, mariadb 10.11, redis 7.0.15 Cài đặt hoàn tất. Mở menu bằng lệnh nhanhvps
01 / Kiểm tra trước

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.

01

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ì.

02

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.

03

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.

04

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.

02 / Câu hỏi

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ỏiMặc định
Ngôn ngữ giao diệnTiếng Việt
Phiên bản PHP8.3. Chọn 8.1 hoặc 8.2 thì script tự thêm kho cần thiết
SwapRAM chia đôi, trong khoảng 512 MB đến 4 GB
Múi giờMúi giờ máy đang đặt
Cổng SSHCổng sshd đang nghe
phpMyAdminKhông cài
fail2banBật
Website đầu tiênKhông. Chọn có thì hỏi thêm tên miền, email và WordPress
03 / Các bước

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.

01

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ì.

02

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.

03

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.

04

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.

05

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.

04 / Bên trong

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.

05 / Tải về

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ả.

Tải mã nguồn
root@server:~
$ curl -fsSL https://nhanhvps.com/nhanhvps | sudo bash
Cài không cần trả lời, cấu hình lấy từ tệp: 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