Cách cài đặt Nextcloud trên Debian 11

theanh

Administrator
Nhân viên
Nextcloud là phần mềm nguồn mở để tạo bộ lưu trữ tệp công khai và riêng tư. Nó cho phép bạn tạo các dịch vụ tự lưu trữ như Dropbox, Google Drive hoặc Mega.nz. Ban đầu, nó được tạo ra bởi nhà phát triển owncloud gốc Frank Karlitschek. Vào năm 2016, anh ấy đã phân nhánh dự án Owncloud và tạo một dự án mới với tên mới là "Nextcloud"

Vào thời điểm này, dự án Nextcloud phát triển nhanh chóng và trở thành nhiều hơn là phần mềm lưu trữ tệp, nó giống như một nền tảng đồng bộ hóa tệp và cộng tác nội dung hơn. Được hỗ trợ bởi rất nhiều plugin, Nextcloud trở thành một phần mềm cộng tác mạnh mẽ. Bạn có thể cài đặt plugin để quản lý dự án, hội nghị truyền hình, chỉnh sửa cộng tác, ghi chú, ứng dụng email, v.v.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Nextcloud trên Debian 11 Bullseye mới nhất. Bạn sẽ cài đặt Nextcloud trong LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB và PHP).

Điều kiện tiên quyết​

  • Máy chủ Debian 11. Đảm bảo tất cả các gói được cập nhật lên phiên bản mới nhất.
  • Người dùng root hoặc người dùng có quyền root. Người dùng này sẽ được sử dụng để cài đặt các gói mới và chỉnh sửa cấu hình hệ thống.

Lấy Root và Cập nhật Kho lưu trữ​

Trước tiên, hãy thực hiện lệnh sau để có được quyền root.

1. Nếu bạn đã cài đặt 'sudo', hãy thực hiện lệnh sudo bên dưới.
Mã:
sudo su
Bây giờ hãy nhập mật khẩu đăng nhập cho người dùng của bạn.

2. Nếu bạn không có gói sudo, hãy thực hiện lệnh 'su' như bên dưới
Mã:
su
Bây giờ hãy nhập mật khẩu root của bạn và nhấn 'Enter'.

3. Sau đó, hãy cập nhật tất cả các kho lưu trữ Debian của bạn bằng lệnh apt bên dưới.
Mã:
apt update

Cài đặt máy chủ web Apache​

Sau khi cập nhật các kho lưu trữ Debian, bạn sẽ cài đặt máy chủ web Apache và kích hoạt một số mô-đun Apache cho Nextcloud.

1. Thực hiện lệnh apt bên dưới để cài đặt máy chủ web Apache.
Mã:
apt install apache2
Gõ 'y' và nhấn 'Enter' để tiếp tục cài đặt.



2. Nếu quá trình cài đặt hoàn tất, hãy kiểm tra dịch vụ Apache bằng lệnh sau.
Mã:
systemctl is-enabled apache2
systemctl status apache2
Bạn sẽ thấy đầu ra 'enabled', điều này có nghĩa là dịch vụ Apache sẽ tự động khởi động khi hệ thống khởi động. Và trạng thái hiện tại của dịch vụ Apache là 'active (running)'.



3. Tiếp theo, kích hoạt các mô-đun Apache 'ssl, rewrite và headers' bằng cách thực hiện lệnh a2enmod bên dưới.
Mã:
a2enmod ssl rewrite headers
Dưới đây là kết quả bạn sẽ nhận được.



4. Sau đó, thực hiện lệnh sau để khởi động lại dịch vụ Apache.
Mã:
systemctl restart apache2
Các mô-đun Apache mới sẽ được áp dụng, hãy xác minh các mô-đun đó bằng lệnh apachectl bên dưới.
Mã:
apachectl -M | egrep "ssl|rewrite|headers"
Bạn sẽ thấy đầu ra tương tự như bên dưới.


Cài đặt và cấu hình PHP​

Đối với hướng dẫn này, bạn sẽ triển khai Nextcloud với phiên bản ổn định mới nhất của PHP 8.0.

Theo mặc định, kho lưu trữ Debian cung cấp các gói cho PHP 8.0. Tuy nhiên, Nextcloud yêu cầu một số gói PHP bổ sung có thể được cài đặt từ kho lưu trữ của bên thứ 3. Và bạn sẽ thêm một kho lưu trữ mới vào hệ thống Debian của mình.

1. Thực hiện lệnh bên dưới để thêm kho lưu trữ PHP cho hệ thống Debian.
Mã:
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main"\
| sudo tee /etc/apt/sources.list.d/sury-php.list
Tải khóa GPG xuống thư mục '/etc/apt/trusted.gpg.d'.
Mã:
curl -o /etc/apt/trusted.gpg.d/sury-php8.gpg https://packages.sury.org/php/apt.gpg
Bây giờ hãy chạy lại lệnh 'apt update' để cập nhật tất cả các kho lưu trữ.
Mã:
apt update


2. Cài đặt các gói PHP và các mô-đun PHP bổ sung cho Nextcloud bằng lệnh apt bên dưới.
Mã:
apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu
Sau đó, thực hiện lại lệnh apt để cài đặt một số gói bổ sung.
Mã:
apt install -y libmagickcore-dev
Các gói 'libmagickcore-dev' là cần thiết cho php-imagick để xử lý hình ảnh SVG trên Nextcloud.
3. Nếu quá trình cài đặt tất cả các gói đã hoàn tất, hãy thay đổi thư mục làm việc thành '/etc/php/8.0/apache2' và chỉnh sửa cấu hình 'php.ini' bằng nano.
Mã:
cd /etc/php/8.0/apache2/
nano php.ini
Đối với triển khai nextcloud cơ bản, hãy thay đổi các tùy chọn mặc định bằng cách sử dụng cấu hình sau.
Mã:
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M 
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam
output_buffering = Off
Bỏ chú thích tùy chọn 'zend_extension=opcache' để tải phần mở rộng opcache.
Mã:
zend_extension=opcache
Di chuyển đến phần '[opcache]' và thêm cấu hình sau.
Mã:
[opcache]
...
....
.....
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
Lưu cấu hình bằng cách nhấn nút 'Ctrl+x' và nhập 'y', sau đó nhấn 'Enter' để thoát.

4. Bây giờ hãy khởi động lại dịch vụ Apache để áp dụng các thay đổi mới bằng lệnh bên dưới.
Mã:
systemctl restart apache2

Cài đặt và cấu hình MariaDB​

Trong giai đoạn này, bạn sẽ cài đặt máy chủ cơ sở dữ liệu mariadb, bảo mật triển khai mariadb và tạo cơ sở dữ liệu và người dùng mới cho Nextcloud.

1. Để cài đặt máy chủ cơ sở dữ liệu mariadb, hãy chạy lệnh bên dưới.
Mã:
apt install mariadb-server mariadb-client
Nhập 'y' để xác nhận và cài đặt các gói mariadb.



2. Sau khi cài đặt hoàn tất, hãy kiểm tra dịch vụ mariadb bằng lệnh sau.
Mã:
systemctl is-enabled mariadb
systemctl status mariadb
Dịch vụ mariadb đang hoạt động và chạy, đồng thời được bật để tự động khởi động khi hệ thống khởi động.



3. Tiếp theo, bạn cần bảo mật triển khai mariadb của mình bằng cách thiết lập mật khẩu gốc cho mariadb và xóa một số cấu hình mặc định. Để thực hiện việc đó, bạn có thể sử dụng công cụ dòng lệnh 'mysql_secure_installation', có trong cài đặt mariadb mặc định.

Thực hiện lệnh "mysql_secure_installation" bên dưới.
Mã:
mysql_secure_installation
Đầu tiên, bạn sẽ được yêu cầu nhập mật khẩu gốc của mariadb. Chỉ cần nhấn 'Enter' để tiếp tục.
Mã:
Nhập mật khẩu hiện tại cho root (enter nếu không có):
OK, mật khẩu đã sử dụng thành công, tiếp tục...
Gõ 'Y' để bật xác thực 'unix_socket' cho người dùng 'root'.
Mã:
Chuyển sang xác thực unix_socket [Y/n] Y
Đã bật thành công!
Đang tải lại bảng đặc quyền..
... Thành công!
Nhập mật khẩu root mariadb mạnh của bạn và lặp lại, sau đó nhấn "Enter" để tiếp tục.
Mã:
Đổi mật khẩu root? [Y/n] Y
Mật khẩu mới:
Nhập lại mật khẩu mới:
Mật khẩu đã được cập nhật thành công!
Đang tải lại bảng đặc quyền..
... Thành công!
Bây giờ hãy nhập "Y" và nhấn "Enter" để xóa người dùng ẩn danh mặc định khỏi máy chủ mariadb.
Mã:
Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ ai
đăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng cho
họ. Điều này chỉ nhằm mục đích thử nghiệm và để quá trình cài đặt
diễn ra suôn sẻ hơn một chút. Bạn nên xóa họ trước khi chuyển sang
môi trường sản xuất.

Xóa người dùng ẩn danh? [Y/n] Y
... Thành công!
Sau đó, hãy tắt đăng nhập từ xa cho người dùng mặc định 'root'. Nhập "Y" và nhấn "Enter" để tiếp tục.
Mã:
Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều này
đảm bảo rằng không ai có thể đoán được mật khẩu root từ mạng.

Không cho phép root đăng nhập từ xa? [Y/n] Y
... Thành công!
Nhập "Y" một lần nữa để xóa cơ sở dữ liệu mặc định "test" và nhấn "Enter".
Mã:
Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thể
truy cập. Cơ sở dữ liệu này cũng chỉ dành cho mục đích thử nghiệm và nên được xóa
trước khi chuyển sang môi trường sản xuất.

Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
- Đang xóa cơ sở dữ liệu thử nghiệm...
... Thành công!
- Đang xóa quyền trên cơ sở dữ liệu thử nghiệm...
... Thành công!
Và cuối cùng, nhập "Y" một lần nữa để tải lại tất cả các quyền của bảng để áp dụng cấu hình mới.
Mã:
Tải lại bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi đã thực hiện cho đến nay
sẽ có hiệu lực ngay lập tức.

Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
... Thành công!
Bây giờ quá trình đã hoàn tất và bạn sẽ thấy đầu ra sau.
Mã:
Đang dọn dẹp...

Hoàn tất! Nếu bạn đã hoàn tất tất cả các bước trên, thì cài đặt MariaDB
của bạn hiện đã an toàn.

Cảm ơn bạn đã sử dụng MariaDB!

Tạo cơ sở dữ liệu và người dùng cho Nextcloud​

1. đăng nhập vào shell mariadb bằng lệnh mysql bên dưới.
Mã:
mysql -u root -p
2. Bây giờ hãy thực hiện truy vấn mysql sau để tạo cơ sở dữ liệu mới "nextcloud_db".
Mã:
CREATE DATABASE nextcloud_db;
3. Thực hiện truy vấn sau để tạo người dùng cơ sở dữ liệu mới "nextclouduser". Thay đổi "strongpassword" bằng mật khẩu mạnh của bạn.
Mã:
CREATE USER nextclouduser@localhost IDENTIFIED BY 'StrongPassword';
4. Cho phép người dùng "nextclouduser" truy cập và ghi "nextcloud_db" bằng truy vấn sau.
Mã:
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
5. Bây giờ hãy tải lại tất cả các đặc quyền của bảng để áp dụng cấu hình cơ sở dữ liệu mới.
Mã:
FLUSH PRIVILEGES;
Sau đó, bạn có thể nhập "quit" và nhấn "Enter" để thoát khỏi shell mariadb.


Tải xuống mã nguồn Nextcloud​

1. Thay đổi thư mục làm việc thành "/var/www" và tải xuống phiên bản mới nhất của mã nguồn Nextcloud bằng lệnh wget như bên dưới.
Mã:
cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-22.1.1.zip


2. Bây giờ hãy cài đặt gói giải nén bằng lệnh sau.
Mã:
apt install unzip
3. Tiếp theo, giải nén mã nguồn Nextcloud "nextcloud.zip" và bạn sẽ nhận được một thư mục mới "nextcloud", sau đó thay đổi chủ sở hữu của thư mục "nextcloud" thành người dùng "www-data".
Mã:
giải nén nextcloud-22.1.0.zip
chown -R www-data:www-data nextcloud
Bây giờ bạn đã sẵn sàng để tạo SSL Letsencrypt và cấu hình máy chủ ảo Apache cho Nextcloud.

Tạo SSL Letsencrypt​

Trong giai đoạn này, bạn sẽ cài đặt công cụ certbot và tạo chứng chỉ SSL cho cài đặt Nextcloud. Bạn sẽ tạo SSL Letsencrypt bằng plugin webroot.

1. Thực hiện lệnh sau để cài đặt công cụ certbot để tạo SSL Letsencrypt.
Mã:
apt install certbot
Nhập 'y' và nhấn 'Enter' để tiếp tục cài đặt.



2. Sau khi cài đặt hoàn tất, hãy tạo một thư mục mới để ủy quyền letsencrypt bằng các lệnh sau.
Mã:
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
3. Tiếp theo, hãy thay đổi thư mục làm việc thành "/etc/apache2/conf-available/" và tạo cấu hình mới "well-known.conf" bằng nano.
Mã:
cd /etc/apache2/conf-available/
nano well-known.conf
Sao chép và dán cấu hình sau.
Mã:
Bí danh /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"

 AllowOverride None
 Tùy chọn MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
 Yêu cầu phương thức GET POST OPTIONS
Nhấn "Ctrl+x" và nhập "y" và nhấn 'Enter' để lưu cấu hình và thoát.

Bây giờ hãy kích hoạt cấu hình mới bằng cách tạo liên kết tượng trưng của tệp 'well-known.conf' đến thư mục 'conf-enabled' bằng lệnh 'ln' bên dưới.
Mã:
ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/
4. Bây giờ hãy thực hiện các lệnh sau để xác minh cấu hình apache và khởi động lại dịch vụ apache.
Mã:
apachectl configtest
systemctl restart apache2
Nếu không có lỗi, bạn đã sẵn sàng tạo SSL Letsencrypt bằng plugin webroot.



5. Trước khi tạo SSL Letsencrypt, hãy đảm bảo tên miền của bạn được phân giải thành địa chỉ IP của máy chủ. Sau đó, bạn có thể tạo SSL Letsencrypt bằng plugin webroot bằng cách chạy lệnh certbot bên dưới. Ngoài ra, hãy thay đổi địa chỉ email và tên miền thành của riêng bạn.
Mã:
sudo certbot certonly --agree-tos --email [emailprotected] --webroot -w /var/lib/letsencrypt/ -d files.domain-name.io
Khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có tại thư mục "/etc/letsencrypt/live/files.domain-name.io/".

Thiết lập Apache Virtual Host cho Nextcloud​

Trong bước này, bạn sẽ thêm cấu hình máy chủ ảo apache/httpd mới cho Nextcloud.

1. Thay đổi thư mục làm việc thành "/etc/apache2/sites-available/" và tạo cấu hình mới "nextcloud.conf" bằng nano.
Mã:
cd /etc/apache2/sites-available/
nano nextcloud.conf
Thay đổi tên miền chi tiết và thư mục đường dẫn SSL thành của riêng bạn và dán cấu hình vào tệp "nextcloud.conf".
Mã:
 ServerName files.domain-name.io
 ServerAlias www.files.domain-name.io

 # tự động chuyển hướng HTTP sang HTTPS
 Chuyển hướng vĩnh viễn / https://files.domain-name.io/



 ServerName files.domain-name.io
 ServerAlias www.files.domain-name.io
 
 DocumentRoot /var/www/nextcloud/

 Giao thức h2 http/1.1

 # tự động chuyển hướng www sang không phải www
 
 Chuyển hướng vĩnh viễn / https://files.domain-name.io/
 

 # tệp nhật ký
 ErrorLog /var/log/apache2/files.domain-name.io-error.log
 CustomLog /var/log/apache2/files.domain-name.io-access.log kết hợp

 SSLEngine On
 SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/privkey.pem

 # HSTS
 
 Tiêu đề luôn đặt Strict-Transport-Security "max-age=15552000; includeSubDomains"
 

 
 Options +FollowSymlinks
 AllowOverride All

 
 Dav off
 

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
Nhấn "Ctrl+x" và nhập "Y", sau đó nhấn 'Enter' để lưu cấu hình và thoát.

2. Bây giờ kích hoạt cấu hình máy chủ ảo 'nextcloud.conf' bằng cách thực hiện lệnh sau.
Mã:
a2ensite nextcloud.conf


3. Bây giờ hãy xác minh cấu hình apache mới và đảm bảo bạn không gặp lỗi nào, sau đó khởi động lại dịch vụ apache.
Mã:
apachectl configtest
systemctl restart apache2

Cài đặt Nextcloud​

Nếu tất cả cấu hình máy chủ liên quan đã hoàn tất, bạn có thể truy cập cài đặt Nextcloud của mình bằng trình duyệt web.

1. Mở trình duyệt web của bạn và nhập địa chỉ URL của cài đặt Nextcloud.


Tạo người dùng đầu tiên và quản trị viên cho Nextcloud và thư mục dữ liệu có thể ghi được bởi người dùng 'www-data'.



2. Cuộn trang xuống cuối, nhập thông tin chi tiết tên cơ sở dữ liệu, người dùng và mật khẩu. Đối với tùy chọn 'Cài đặt ứng dụng được đề xuất', hãy bỏ chọn để cài đặt nhanh hơn. Sau đó, nhấp vào nút 'Hoàn tất thiết lập' để cài đặt Nextcloud.



3. Nếu cài đặt thành công, bạn sẽ thấy bảng điều khiển Nextcloud như bên dưới.



4. Bây giờ, hãy nhấp vào biểu tượng người dùng ở trên cùng bên phải và nhấp vào menu 'Cài đặt'. Tại phần 'Quản trị', hãy nhấp vào 'Tổng quan'.


  • Tại phần 'Cảnh báo bảo mật và thiết lập', bạn sẽ thấy một số khuyến nghị cần thực hiện, tùy thuộc vào môi trường cài đặt của bạn.
  • Tại phần 'Phiên bản', bạn sẽ thấy nhánh hiện tại của cài đặt Nextcloud của mình.
5. Tiếp theo, nhấp vào menu 'Hệ thống' ở cuối phần 'Quản trị'.



Bạn sẽ thấy thông tin chi tiết về môi trường, tải hệ thống, trạng thái dung lượng đĩa, trạng thái bộ nhớ, trạng thái mạng, v.v. của mình.

6. Như đã nói ở trên, nextcloud đã trở thành nhiều hơn là chỉ đồng bộ hóa tệp. Với sự hỗ trợ của các ứng dụng/plugin bổ sung, nó đã trở thành một bộ đồ cộng tác.

Ở biểu tượng hồ sơ trên cùng bên phải, nhấp vào menu 'Ứng dụng' và bạn sẽ thấy cửa hàng ứng dụng nextcloud như bên dưới.



Chọn ứng dụng bạn muốn cài đặt, sau đó nhấp vào nút 'Tải xuống và bật' để cài đặt ứng dụng mới.

7. Dưới đây là chế độ xem mặc định của bảng điều khiển người dùng Nextcloud. Bạn có thể mở rộng chức năng của bảng điều khiển bằng cách cài đặt các plugin bổ sung.


Nextcloud Performace Tuning​

Sau khi cài đặt Nextcloud, bạn có thể thực hiện thêm một số bước để tăng hiệu suất Nextcloud bằng cách bật bộ nhớ đệm cục bộ và thiết lập cronjob cho chính Nextcloud.

1. Ở phần cài đặt PHP ở trên cùng, bạn đã thiết lập PHP để lưu vào bộ nhớ đệm. Để bật bộ nhớ đệm trên Nextcloud, hãy chỉnh sửa cấu hình Nextcloud "config.php".

Thay đổi thư mục làm việc thành "/var/www/nextcloud/config" và chỉnh sửa cấu hình "config.php" bằng trình soạn thảo nano.
Mã:
cd /var/www/nextcloud/config/
nano config.php
Thêm cấu hình sau vào bên trong dấu ngoặc 'array ( .. );' như bên dưới
Mã:
 
Back
Bên trên