Nextcloud là nền tảng lưu trữ và cộng tác dữ liệu mã nguồn mở, cho phép người dùng tự xây dựng hệ thống lưu trữ file riêng thay vì phụ thuộc hoàn toàn vào các dịch vụ như Google Drive, Dropbox hoặc Microsoft OneDrive.
Nextcloud có thể được triển khai trên VPS, Dedicated Server hoặc máy chủ vật lý tại Data Center. Ngoài chức năng lưu trữ và đồng bộ dữ liệu, hệ thống còn hỗ trợ nhiều tính năng mở rộng như chia sẻ file, lịch, danh bạ, chat, video conference và tích hợp các nền tảng văn phòng trực tuyến.
Trong bài viết này, chúng ta sẽ thực hiện cài đặt Nextcloud trên Ubuntu Server 24.04 LTS, sử dụng Nginx, PHP-FPM và MariaDB. Đồng thời cấu hình PHP, database, Nginx, quyền thư mục, HTTPS và Cron để Nextcloud có thể hoạt động ổn định trong môi trường production.
DataOnline cung cấp VPS giá rẻ cài đặt sẵn nextcloud
Nextcloud là gì?
Nextcloud là một nền tảng private cloud cho phép doanh nghiệp hoặc cá nhân tự lưu trữ và quản lý dữ liệu trên máy chủ của mình.
Về chức năng, Nextcloud có thể cung cấp trải nghiệm tương tự các dịch vụ cloud storage phổ biến:
- Lưu trữ file.
- Đồng bộ dữ liệu giữa máy tính và server.
- Chia sẻ file.
- Quản lý người dùng và nhóm.
- Quản lý lịch.
- Quản lý danh bạ.
- Chat và gọi video.
- Chỉnh sửa tài liệu trực tuyến.
- Quản lý phiên bản file.
- Tích hợp OnlyOffice hoặc Collabora Online.
- WebDAV.
- API cho ứng dụng bên thứ ba.
Một mô hình triển khai Nextcloud cơ bản:
Internet => Nginx => PHP-FPM => Nextcloud => MariaDB
Trong môi trường thực tế, có thể mở rộng kiến trúc bằng Redis, object storage, database server riêng, load balancer hoặc storage cluster khi số lượng người dùng và dữ liệu tăng lên.
Nextcloud phù hợp với những trường hợp nào?
Nextcloud phù hợp với nhiều nhu cầu khác nhau:
- Xây dựng private cloud cho doanh nghiệp.
- Lưu trữ dữ liệu nội bộ.
- Đồng bộ dữ liệu giữa nhiều máy tính.
- Chia sẻ file giữa nhân viên.
- Thay thế một phần Google Drive hoặc Dropbox.
- Lưu trữ tài liệu khách hàng.
- Xây dựng hệ thống collaboration.
- Lưu trữ dữ liệu cho nhóm phát triển.
- Kết hợp với OnlyOffice hoặc Collabora để chỉnh sửa tài liệu trực tuyến.
Nếu triển khai cho doanh nghiệp, nên sử dụng VPS hoặc Dedicated Server có SSD/NVMe, RAM đủ lớn và hệ thống backup riêng.
Mô hình cài đặt Nextcloud trên Ubuntu
Trong bài viết này sử dụng:
| Thành phần | Cấu hình |
|---|---|
| Operating System | Ubuntu Server 24.04 LTS |
| Web Server | Nginx |
| PHP | PHP 8.x |
| PHP Runtime | PHP-FPM |
| Database | MariaDB |
| Storage | SSD/NVMe |
| Nextcloud | Bản phát hành ổn định |
| Domain | cloud.example.com |
Thay cloud.example.com bằng domain thực tế của bạn.
Yêu cầu máy chủ
Nextcloud không có một cấu hình phần cứng cố định cho mọi trường hợp. Tài nguyên cần thiết phụ thuộc vào số lượng user, dung lượng dữ liệu, số lượng file, ứng dụng cài thêm và lưu lượng đồng bộ.
Đối với hệ thống thử nghiệm hoặc cá nhân, có thể bắt đầu với:
- 2 vCPU.
- 4 GB RAM.
- 40 GB SSD/NVMe trở lên cho hệ điều hành và ứng dụng.
- Storage riêng nếu cần lưu trữ nhiều dữ liệu.
Đối với doanh nghiệp, nên cân nhắc:
- 4 vCPU trở lên.
- 8 GB RAM trở lên.
- NVMe SSD.
- Storage có khả năng mở rộng.
- Backup độc lập.
- Redis.
- Database riêng nếu tải lớn.
Dung lượng lưu trữ cần được tính riêng dựa trên dữ liệu thực tế của người dùng.
Chuẩn bị DNS
Giả sử sử dụng domain:
cloud.example.com
Tạo bản ghi:
Type: A
Name: cloud
Value: IP_SERVER
Ví dụ:
cloud.example.com -> 103.x.x.x
Kiểm tra DNS:
dig cloud.example.com
Hoặc:
nslookup cloud.example.com
Đảm bảo domain đã trỏ đúng IP trước khi cấu hình SSL.
Bước 1: Cập nhật Ubuntu Server
Đăng nhập SSH bằng tài khoản có quyền sudo.
Cập nhật package:
sudo apt update
sudo apt upgrade -y
Kiểm tra phiên bản Ubuntu:
cat /etc/os-release
Kiểm tra hostname:
hostnamectl
Có thể đặt hostname:
sudo hostnamectl set-hostname cloud.example.com
Kiểm tra lại:
hostnamectl
Bước 2: Cài đặt Nginx
Cài Nginx:
sudo apt install nginx -y
Khởi động:
sudo systemctl start nginx
Cho phép tự động khởi động cùng hệ thống:
sudo systemctl enable nginx
Kiểm tra:
sudo systemctl status nginx
Nếu hiển thị:
Active: active (running)
Nginx đang hoạt động.
Kiểm tra phiên bản:
nginx -v
Kiểm tra website mặc định:
http://IP_SERVER
Nếu xuất hiện trang mặc định của Nginx, Web Server đã hoạt động.
Bước 3: Cài đặt PHP-FPM
Nextcloud cần PHP để thực thi ứng dụng.
Cài PHP và các package cần thiết:
sudo apt install php-fpm php-cli php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-xml php-imagick php-zip php-bcmath php-apcu unzip -y
Kiểm tra PHP:
php -v
Kiểm tra PHP-FPM:
systemctl status php8.3-fpm
Nếu server đang sử dụng phiên bản PHP khác, thay 8.3 bằng phiên bản tương ứng.
Kiểm tra socket:
ls -lah /run/php/
Ví dụ:
php8.3-fpm.sock
Socket này sẽ được sử dụng để kết nối Nginx với PHP-FPM.
Bước 4: Cấu hình PHP cho Nextcloud
Nextcloud thường xử lý các file lớn nên cấu hình PHP mặc định có thể không phù hợp.
Mở file:
sudo nano /etc/php/8.3/fpm/php.ini
Tìm và điều chỉnh:
memory_limit = 512M
upload_max_filesize = 2G
post_max_size = 2G
max_execution_time = 3600
max_input_time = 3600
max_input_vars = 5000
output_buffering = 0
date.timezone = Asia/Ho_Chi_Minh
Nếu cần upload file lớn hơn, có thể tăng:
upload_max_filesize = 10G
post_max_size = 10G
Tuy nhiên, không nên đặt giới hạn quá lớn nếu máy chủ không có đủ RAM, CPU, network và storage.
Sau khi thay đổi:
sudo systemctl restart php8.3-fpm
Bước 5: Cấu hình OPcache
OPcache giúp giảm thời gian PHP phải biên dịch lại mã nguồn, từ đó cải thiện hiệu suất Nextcloud.
Mở:
sudo nano /etc/php/8.3/fpm/php.ini
Tìm phần OPcache và cấu hình:
opcache.enable=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=60
Sau đó:
sudo systemctl restart php8.3-fpm
Kiểm tra:
php -m | grep -i opcache
Bước 6: Cài đặt MariaDB
Cài MariaDB:
sudo apt install mariadb-server mariadb-client -y
Khởi động:
sudo systemctl start mariadb
Cho phép tự động khởi động:
sudo systemctl enable mariadb
Kiểm tra:
sudo systemctl status mariadb
Kiểm tra phiên bản:
mariadb --version
Bước 7: Bảo mật MariaDB
Chạy:
sudo mariadb-secure-installation
Thực hiện các bước bảo mật theo yêu cầu hệ thống.
Nên:
- Xóa anonymous user.
- Xóa database test nếu không sử dụng.
- Không cho phép root database đăng nhập từ xa.
- Thiết lập phương thức xác thực phù hợp.
Sau đó đăng nhập MariaDB:
sudo mariadb
Bước 8: Tạo database cho Nextcloud
Trong MariaDB:
CREATE DATABASE nextcloud
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
Tạo user:
CREATE USER 'nextcloud'@'localhost'
IDENTIFIED BY 'MAT_KHAU_MẠNH';
Cấp quyền:
GRANT ALL PRIVILEGES ON nextcloud.*
TO 'nextcloud'@'localhost';
Áp dụng:
FLUSH PRIVILEGES;
Kiểm tra:
SHOW DATABASES;
Thoát:
EXIT;
Nên sử dụng password mạnh và không sử dụng lại password của tài khoản quản trị server.
Bước 9: Tải Nextcloud
Chuyển đến thư mục website:
cd /var/www/
Tải bản Nextcloud:
sudo wget https://download.nextcloud.com/server/releases/latest.zip
Giải nén:
sudo unzip latest.zip
Sau khi giải nén:
ls -lah /var/www/nextcloud
Xóa file ZIP:
sudo rm latest.zip
Bước 10: Phân quyền Nextcloud
Thiết lập owner:
sudo chown -R www-data:www-data /var/www/nextcloud
Thiết lập quyền cơ bản:
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
Kiểm tra:
ls -ld /var/www/nextcloud
Không nên cấp quyền 777 cho toàn bộ thư mục Nextcloud.
Bước 11: Tạo cấu hình Nginx
Tạo file:
sudo nano /etc/nginx/sites-available/nextcloud
Cấu hình cơ bản:
upstream php-handler {
server unix:/run/php/php8.3-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name cloud.example.com;
root /var/www/nextcloud;
client_max_body_size 2G;
index index.php index.html /index.php$request_uri;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location ^~ /.well-known {
location = /.well-known/webfinger {
try_files $uri $uri/ /index.php$request_uri;
}
location = /.well-known/nodeinfo {
try_files $uri $uri/ /index.php$request_uri;
}
try_files $uri $uri/ =404;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
location ~ \.php(?:$|/) {
rewrite ^/(?!index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|.+/richdocumentscode/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering on;
fastcgi_max_temp_file_size 0;
}
location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|png|webp|wasm|tflite|map|ogg|flac|mp4|webm)$ {
try_files $uri /index.php$request_uri;
expires 6M;
access_log off;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
}
Thay:
cloud.example.com
bằng domain thực tế.
Nếu PHP-FPM sử dụng phiên bản khác, thay:
/run/php/php8.3-fpm.sock
bằng socket tương ứng.
Bước 12: Kiểm tra cấu hình Nginx
Chạy:
sudo nginx -t
Nếu nhận:
syntax is ok
test is successful
cấu hình hợp lệ.
Kích hoạt website:
sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud
Có thể tắt website mặc định:
sudo rm -f /etc/nginx/sites-enabled/default
Kiểm tra lại:
sudo nginx -t
Reload:
sudo systemctl reload nginx
Bước 13: Truy cập trình cài đặt Nextcloud
Mở trình duyệt:
http://cloud.example.com
Nếu DNS đã trỏ đúng, bạn sẽ thấy giao diện cài đặt Nextcloud.
Tạo:
Administrator account
Username
Password
Phần Database chọn:
MySQL/MariaDB
Nhập:
Database user: nextcloud
Database password: MAT_KHAU
Database name: nextcloud
Database host: localhost
Sau đó bắt đầu cài đặt.
Nextcloud sẽ tự tạo các bảng database cần thiết.
Bước 14: Kiểm tra Nextcloud bằng OCC
Sau khi cài đặt, nên kiểm tra hệ thống bằng command line.
Chuyển đến thư mục:
cd /var/www/nextcloud
Chạy:
sudo -u www-data php occ status
Nếu hệ thống hoạt động bình thường, có thể nhận thông tin tương tự:
installed: true
version: ...
versionstring: ...
Kiểm tra phiên bản:
sudo -u www-data php occ -V
Kiểm tra trạng thái:
sudo -u www-data php occ status
Bước 15: Cấu hình Cron cho Nextcloud
Nextcloud cần chạy các background jobs định kỳ.
Đây là bước rất quan trọng nếu muốn hệ thống hoạt động ổn định trong production.
Mở crontab của user www-data:
sudo -u www-data crontab -e
Thêm:
*/5 * * * * php -f /var/www/nextcloud/cron.php
Sau đó vào giao diện:
Administration Settings
Tìm phần:
Background jobs
Chọn:
Cron
Không nên sử dụng AJAX background jobs cho hệ thống Nextcloud production có nhiều người dùng nếu có thể sử dụng Cron.
Bước 16: Cài đặt Redis
Redis giúp cải thiện caching và file locking cho Nextcloud.
Cài đặt:
sudo apt install redis-server php-redis -y
Khởi động:
sudo systemctl enable redis-server
sudo systemctl start redis-server
Kiểm tra:
sudo systemctl status redis-server
Kiểm tra Redis:
redis-cli ping
Nếu trả về:
PONG
Redis đang hoạt động.
Sau đó có thể cấu hình Redis trong:
/var/www/nextcloud/config/config.php
Ví dụ:
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => [
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
],
Cần kiểm tra chính xác đường dẫn Redis socket trên hệ thống trước khi áp dụng.
Nếu chưa sử dụng Redis, không nên thêm cấu hình Redis vào config.php một cách tùy tiện.
Bước 17: Cấu hình HTTPS cho Nextcloud
Không nên sử dụng HTTP thuần cho Nextcloud production vì dữ liệu đăng nhập và dữ liệu người dùng cần được truyền qua kết nối mã hóa.
Cài Certbot:
sudo apt install certbot python3-certbot-nginx -y
Tạo SSL:
sudo certbot --nginx -d cloud.example.com
Certbot sẽ cấu hình certificate cho domain.
Kiểm tra:
https://cloud.example.com
Kiểm tra certificate:
sudo certbot certificates
Kiểm tra HTTPS bằng:
curl -I https://cloud.example.com
Bước 18: Cấu hình Trusted Domains
Nextcloud chỉ cho phép truy cập thông qua các domain được khai báo trong trusted_domains.
Kiểm tra:
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains
Thêm domain:
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value=cloud.example.com
Nếu có thêm IP:
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 2 --value=IP_SERVER
Kiểm tra lại:
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains
Bước 19: Cấu hình upload file lớn
Một trong những lỗi phổ biến khi triển khai Nextcloud là upload file lớn bị giới hạn bởi PHP hoặc Nginx.
Nginx:
client_max_body_size 10G;
PHP:
upload_max_filesize = 10G
post_max_size = 10G
Thời gian xử lý:
max_execution_time = 3600
max_input_time = 3600
Sau khi thay đổi PHP:
sudo systemctl restart php8.3-fpm
Reload Nginx:
sudo systemctl reload nginx
Nếu sử dụng reverse proxy hoặc Cloudflare, cần kiểm tra thêm giới hạn upload của lớp proxy phía trước.
Bước 20: Tách dữ liệu Nextcloud khỏi web directory
Đối với hệ thống production, có thể đặt thư mục data bên ngoài web root.
Ví dụ:
/var/www/nextcloud
/data/nextcloud
Điều này giúp giảm nguy cơ dữ liệu người dùng bị truy cập trực tiếp thông qua Web Server.
Khi cài đặt Nextcloud, có thể chỉ định:
Data folder:
/data/nextcloud
Tạo thư mục:
sudo mkdir -p /data/nextcloud
Phân quyền:
sudo chown -R www-data:www-data /data/nextcloud
Không nên đặt thư mục dữ liệu trong một vị trí có thể bị Nginx phục vụ trực tiếp.
Bước 21: Kiểm tra dung lượng storage
Nextcloud thường là hệ thống có tốc độ tăng dữ liệu nhanh.
Kiểm tra:
df -h
Kiểm tra thư mục:
du -sh /var/www/nextcloud
Nếu data nằm ở storage riêng:
du -sh /data/nextcloud
Đối với hệ thống lưu trữ lớn, nên theo dõi:
- Dung lượng.
- IOPS.
- Latency.
- Throughput.
- SSD health.
- RAID hoặc Ceph health.
- Network throughput.
- inode.
Không nên chỉ dựa vào dung lượng còn trống để đánh giá khả năng đáp ứng của storage.
Bước 22: Kiểm tra database
Kiểm tra MariaDB:
sudo systemctl status mariadb
Kiểm tra database:
sudo mariadb -e "SHOW DATABASES;"
Kiểm tra InnoDB:
sudo mariadb -e "SHOW ENGINES;" | grep InnoDB
InnoDB phải được hỗ trợ.
Không nên sử dụng MyISAM cho database Nextcloud.
Bước 23: Kiểm tra Nginx và PHP-FPM
Kiểm tra Nginx:
sudo nginx -t
Kiểm tra service:
sudo systemctl status nginx
Kiểm tra PHP-FPM:
sudo systemctl status php8.3-fpm
Kiểm tra socket:
ls -lah /run/php/
Nếu Nginx trả về:
502 Bad Gateway
hãy kiểm tra PHP-FPM trước tiên.
Log Nginx:
sudo tail -f /var/log/nginx/error.log
Log PHP-FPM:
sudo journalctl -u php8.3-fpm -n 100 --no-pager
Bước 24: Kiểm tra log Nextcloud
Log chính thường nằm tại:
/var/www/nextcloud/data/nextcloud.log
Xem log:
sudo tail -f /var/www/nextcloud/data/nextcloud.log
Nếu data nằm ở thư mục khác, thay đường dẫn tương ứng.
Log có thể giúp phát hiện:
- Database error.
- PHP error.
- Permission error.
- App lỗi.
- Redis lỗi.
- File locking.
- Storage error.
- Cron error.
- Authentication error.
Một số lỗi Nextcloud thường gặp
Lỗi 502 Bad Gateway
Nguyên nhân thường liên quan đến:
- PHP-FPM không chạy.
- Sai PHP-FPM socket.
- Nginx trỏ nhầm phiên bản PHP.
- PHP-FPM hết worker.
- PHP-FPM bị crash.
Kiểm tra:
systemctl status php8.3-fpm
Kiểm tra socket:
ls -lah /run/php/
Kiểm tra Nginx:
nginx -t
Lỗi 413 Request Entity Too Large
Nguyên nhân thường do Nginx giới hạn kích thước upload.
Kiểm tra:
client_max_body_size 10G;
Sau đó:
sudo nginx -t
sudo systemctl reload nginx
Upload file lớn bị lỗi
Kiểm tra đồng thời:
Nginx client_max_body_size
PHP upload_max_filesize
PHP post_max_size
PHP max_execution_time
PHP max_input_time
Nếu có reverse proxy hoặc CDN, cần kiểm tra giới hạn của proxy.
Lỗi Trusted Domain
Nếu Nextcloud báo:
Access through untrusted domain
kiểm tra:
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains
Sau đó thêm domain tương ứng.
Lỗi Permission
Kiểm tra:
ls -ld /var/www/nextcloud
Các file Nextcloud cần được phân quyền phù hợp cho user chạy PHP-FPM.
Thông thường:
www-data:www-data
Không nên chạy:
chmod -R 777 /var/www/nextcloud
để xử lý lỗi permission.
Nextcloud cảnh báo Background Jobs
Kiểm tra Cron:
sudo -u www-data crontab -l
Kiểm tra:
sudo -u www-data php /var/www/nextcloud/occ background:cron
Nếu Cron không chạy, kiểm tra lại đường dẫn PHP và cron.php.
Tối ưu Nextcloud cho môi trường production
Sau khi cài đặt thành công, nên thực hiện thêm một số cấu hình.
Sử dụng Redis
Redis đặc biệt hữu ích khi hệ thống có nhiều user hoặc nhiều hoạt động đồng bộ file.
Bật OPcache
OPcache giúp giảm overhead khi PHP xử lý ứng dụng.
Sử dụng Cron
Cron giúp xử lý background jobs ổn định hơn AJAX.
Sử dụng HTTPS
Nextcloud nên được triển khai hoàn toàn qua HTTPS.
Theo dõi database
Khi số lượng file và user tăng, database có thể trở thành một trong những thành phần cần tối ưu đầu tiên.
Sử dụng storage phù hợp
Nếu Nextcloud được sử dụng làm private cloud cho doanh nghiệp, storage cần ưu tiên:
- IOPS.
- Latency thấp.
- Độ ổn định.
- Khả năng backup.
- Khả năng mở rộng.
Không nên lựa chọn storage chỉ dựa trên dung lượng.
Bảo mật Nextcloud Server
Một hệ thống Nextcloud chứa dữ liệu cá nhân hoặc dữ liệu doanh nghiệp nên được bảo mật nhiều lớp.
Sử dụng SSH Key
Hạn chế sử dụng password SSH.
Firewall
Chỉ mở các port cần thiết:
22/tcp
80/tcp
443/tcp
Nếu SSH sử dụng port khác, thay đổi rule tương ứng.
Không nên mở trực tiếp:
3306
6379
ra Internet nếu không cần thiết.
Cập nhật hệ điều hành
Định kỳ:
sudo apt update
sudo apt upgrade
Cập nhật Nextcloud
Trước khi nâng cấp Nextcloud:
- Backup database.
- Backup config.
- Backup data.
- Kiểm tra compatibility của app.
- Kiểm tra PHP version.
- Kiểm tra dung lượng storage.
Không nên nâng cấp trực tiếp trên production mà không có backup và phương án rollback.
Backup Nextcloud
Backup nên bao gồm ít nhất:
Database
Ví dụ:
mysqldump --single-transaction nextcloud > nextcloud.sql
Config
/var/www/nextcloud/config/
Data
/data/nextcloud/
Ứng dụng
/var/www/nextcloud/
Quan trọng nhất là phải kiểm tra khả năng restore. Một file backup chưa được kiểm tra khôi phục không thể xem là phương án backup hoàn chỉnh.
Nextcloud có nên chạy trên VPS không?
Có.
Nextcloud có thể chạy tốt trên VPS nếu VPS có:
- CPU đủ mạnh.
- RAM phù hợp.
- SSD/NVMe.
- Network ổn định.
- Backup độc lập.
Đối với cá nhân hoặc nhóm nhỏ, VPS là lựa chọn tiết kiệm và dễ triển khai.
Đối với doanh nghiệp có nhiều user và dữ liệu lớn, nên cân nhắc Dedicated Server hoặc kiến trúc storage riêng.
Nextcloud trên VPS và Dedicated Server
| Tiêu chí | VPS | Dedicated Server |
|---|---|---|
| Chi phí | Thấp hơn | Cao hơn |
| Triển khai | Nhanh | Cần chuẩn bị phần cứng |
| CPU | Chia sẻ hoặc phân bổ theo cấu hình | Toàn bộ máy |
| Storage | Tùy nhà cung cấp | Chủ động hơn |
| Khả năng mở rộng | Dễ | Phụ thuộc phần cứng |
| Dữ liệu lớn | Phù hợp tùy cấu hình | Phù hợp |
| Nhiều user | Tốt với cấu hình phù hợp | Tốt |
| Private Cloud doanh nghiệp | Phù hợp | Rất phù hợp |
Checklist cài đặt Nextcloud
Trước khi đưa hệ thống vào production, nên kiểm tra:
- Ubuntu Server đã cập nhật.
- DNS trỏ đúng IP.
- Nginx hoạt động.
- PHP-FPM hoạt động.
- PHP có đầy đủ extension.
- MariaDB hoạt động.
- Database Nextcloud đã được tạo.
- User database đã được tạo.
- Nextcloud đã tải và giải nén.
- Permission đã cấu hình đúng.
- Nginx Virtual Host đã cấu hình.
-
nginx -tkhông báo lỗi. - Domain truy cập được.
- HTTPS đã cấu hình.
- Trusted Domains đã thiết lập.
- Cron đã được cấu hình.
- Redis đã cấu hình nếu cần.
- OPcache đã bật.
- Upload limit đã được điều chỉnh.
- Storage có đủ dung lượng.
- Database backup đã cấu hình.
- File backup đã cấu hình.
- Đã thử restore dữ liệu.
- Firewall đã cấu hình.
- Port database không public nếu không cần.
- Log Nginx, PHP-FPM và Nextcloud hoạt động bình thường.
Kết luận
Nextcloud là một giải pháp private cloud mạnh, phù hợp cho cả cá nhân, nhóm làm việc và doanh nghiệp muốn chủ động kiểm soát dữ liệu.
Trên Ubuntu Server, mô hình Nginx + PHP-FPM + MariaDB cung cấp nền tảng tốt để triển khai Nextcloud. Tuy nhiên, cài đặt thành công giao diện Nextcloud mới chỉ là bước đầu. Để hệ thống hoạt động ổn định trong môi trường production, cần tiếp tục cấu hình HTTPS, Cron, Redis, OPcache, database, storage, firewall và backup.
Đối với hệ thống có lượng dữ liệu lớn hoặc nhiều người dùng đồng thời, cần đánh giá riêng CPU, RAM, PHP-FPM, database, IOPS và network. Khi quy mô tăng, Nextcloud có thể được mở rộng với storage riêng, database server riêng, Redis, object storage hoặc kiến trúc nhiều máy chủ.
Màn hình hiển thị như này là thành công!

