NextCloud là gì?
Nextcloud là một ứng dụng mã nguồn mở và miễn phí để lưu trữ và chia sẻ tệp. Nó cho phép người dùng được chấp thuận truy cập tài liệu và hình ảnh trực tuyến từ một vị trí trung tâm. Nextcloud được coi là một giải pháp thay thế mạnh mẽ cho Dropbox và Google Drive. Hướng dẫn này giải thích cách tải xuống, cài đặt và cấu hình Nextcloud trên Ubuntu 22.04 LTS.
Thông tin
- OS: Ubuntu 22.04
- Mysql: 10.6.18-MariaDB
- Web Server: Apache
- PHP: 8.1
- Version NextCloud: 29.0.4
Cài đặt
Cài đặt Apache Web Server
Cài đặt Apache Web Server bằng lệnh sau:
sudo apt install apache2
Bật mpm_prefork Apache module và tắt mpm_event:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
systemctl restart apache2
Kiểm tra và đảm bảo web server vẫn hoạt động bằng lệnh sau:
systemctl restart apache2
Truy cập địa chỉ IP của web server và xác nhận máy chủ đang hoạt động bình thường:
Trang chào mừng Ubuntu/Apache2 mặc định xuất hiện trong trình duyệt. Trang này có thông báo It works và nêu chi tiết một số thông tin cơ bản về máy chủ:

Cài đặt MariaDB
Cài đặt MariaDB bằng lệnh sau:
sudo apt install mariadb-server
Kiểm tra và đảm bảo MariaDB hoạt động:
sudo systemctl start mariadb
sudo systemctl status mariadb
Cấu hình và bảo mật MariaDB bằng mysql_secure_installation.
Nhập mật khẩu của bạn và trả lời Y các câu hỏi sau:
- Remove anonymous users?
- Disallow root login remotely?
- Remove test database and access to it?
- Reload privilege tables now?
sudo mysql_secure_installation
Tạo cơ sở dữ liệu cho Nextcloud trong MariaDB
Đăng nhập vào MariaDB với user root. Nếu bạn đã thêm mật khẩu root, hãy cung cấp khi được yêu cầu.
sudo mysql -u root
Tạo database nextcloud và kiểm tra đảm bảo database đã được tạo:
CREATE DATABASE nextcloud;
SHOW DATABASES;
Tạo databse_user và cấp quyền truy cập vào database. Phần password bạn thay bằng password của mình và lưu thay đổi:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Thoát khỏi giao diện cấu MariaDB:
quit;
Cài đặt PHP và các thành phần cần thiết
Cài đặt gói PHP
sudo apt install php
Kiểm tra phiên bản PHP:
php -v
Cài đặt các thành phần PHP:
sudo apt install php-apcu php-bcmath php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-mbstring php-mysql php-zip php-xml
Kích hoạt các PHP extensions:
sudo phpenmod bcmath gmp imagick intl
Cài đặt extension unzip:
sudo apt install unzipUnzip đã được cài đặt từ trước nên chạy lệnh sẽ gặp thông báo như hình.

Cài đặt package libmagic:
sudo apt install libmagickcore-6.q16-6-extra
Tải và cài đặt Nextcloud
Bài viết này mình sẽ tải và cài đặt bản Nextcloud mới nhất hiện tại là version Version 29.0.4. Để xem các bản phát hành cụ thể của Nextcloud bạn truy cập link sau: https://nextcloud.com/changelog/
Tải Nextcloud version Version 29.0.4 bằng lệnh sau:
wget https://download.nextcloud.com/server/releases/nextcloud-29.0.4.zip
Giải nén tệp vừa tải. Sau khi giải nén thành công sẽ có thư mục Nextcloud tại đường dẫn cùng với file .zip mới tải về.

Thay đổi quyền cho thư mục Nextcloud và giải nén:
sudo chown -R www-data:www-data nextcloud
Di chuyển thư mục Nextcloud đến thư mục mặc định /var/www/html chứa mã nguồn của web server.
sudo mv nextcloud /var/www/html
Vô hiệu trang mặc định của Apache web server
sudo a2dissite 000-default.conf
systemctl reload apache2
Tạo file Virtual Host cho Nextcloud
Tạo file mới nextcloud.conf trong đường dẫn etc/apache2/sites-available bằng lệnh sau
touch /etc/apache2/sites-available/nextcloud.conf
Thêm cấu hình sau vào file vừa tạo:
- DocumentRoot: Tên đường dẫn thư mục Nextcloud
- ServerName: Thay bằng hostname của bạn
<VirtualHost *:80>
DocumentRoot "/var/www/html/nextcloud"
ServerName example.com
<Directory "/var/www/html/nextcloud/">
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>
kích hoạt trang web và không restart lại Apache2
sudo a2ensite nextcloud.conf
Tối ưu PHP cho Nextcloud
Mở file php.ini ở đường dẫn /etc/php/8.1/apache2/ và thực hiện các thay đổi sau:
sudo vi /etc/php/8.1/apache2/php.inimax_execution_time = 360
memory_limit = 512M
post_max_size = 200M
upload_max_filesize = 200M
date.timezone = Asia/Ho_Chi_Minh
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1Kích hoạt mộ số Apache modules:
sudo a2enmod dir env headers mime rewrite ssl
Khởi động lại Apache server và đảm bảo hoạt động:
sudo systemctl restart apache2
sudo systemctl status apache2
Truy cập và thiết Nextcloud bằng giao diện web
Bạn có thể tạo một domain hoặc subdomain trỏ về IP máy chủ đang cài đặt Nextcloud để dùng làm địa chỉ truy cập hoặc truy cập bằng địa chỉ IP

Tài phần này bạn thực hiện điền các thông tin sau và chọn Install (cài đặt) để tiến trình cài đặt bắt đầu.
- Create an administrative account (Thư mục dữ liệu): Tạo tên đăng nhập và mật khẩu đăng nhập
- Data Folder(Thư mục dữ liệu): Để mặc định
- Configure the database(Cấu hình cơ sở dữ liệu): Nhập tên người dùng và mật khẩu cho tài khoản đã tạo trong MariaDB trước đó. Tên cơ sở dữ liệu là
nextcloudđã tạo trước đó. Database host bạn để là localhost

Chọn Install recommended apps(Cài đặt các ứng dụng được đề xuất) để tiếp tục cài đặt

Khi hoàn tất, giao diện Nextcloud sẽ hiển thị như bên dưới. Đến phần này thì bạn đã cài đặt xong Nextcloud

Cài đặt chứng chỉ SSL cho Nextcloud
Cài đặt Cerbot Apache:
sudo apt install -y certbot python3-certbot-apache
Cài đặt SSL cho địa chỉ truy cập nextcloud:
sudo certbot --apache -d nextcloud.phongdinh.id.vn
Khởi động lại apache server và truy cập địa chỉ nextcloud kiểm tra.
systemctl restart apache2
systemctl status apache2

Máy chủ NextCloud đã được cài đặt thành công trên Ubuntu 22.04
