Cách cài đặt Nextcloud trên Rocky Linux

theanh

Administrator
Nhân viên
Nextcloud là phần mềm mã nguồn mở và miễn phí cho phép bạn tạo các dịch vụ lưu trữ tệp như Dropbox, Google Drive hoặc Mega.nz. Phần mềm này được tạo ra bởi nhà phát triển owncloud ban đầu 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 có tên 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. Với sự hỗ trợ của rất nhiều plugin, Nextcloud trở thành một phần mềm cộng tác như vậy. Bạn có thể cài đặt các 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 Rocky Linux 8.4. 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ủ Rocky Linux. Đả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 có quyền root. Người dùng này sẽ nhận được quyền root thông qua lệnh sudo.

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

Đầu tiên, bạn sẽ cài đặt máy chủ web Apache hoặc httpd trên máy chủ Rocky Linux.

1. Thực hiện lệnh dnf bên dưới để cài đặt máy chủ web httpd.
Mã:
sudo dnf install httpd
Nhập "y" và nhấn "Enter" để xác nhận và cài đặt các gói httpd.



2. Nếu quá trình cài đặt hoàn tất, hãy bật và khởi động dịch vụ httpd bằng lệnh sau.
Mã:
sudo systemctl enable httpd
sudo systemctl start httpd
Lệnh "systemctl enable" sẽ bật dịch vụ khởi động ở mỗi lần khởi động.

3. Sau đó, chạy lệnh bên dưới để xác minh dịch vụ httpd.
Mã:
sudo systemctl status httpd
Và bạn sẽ nhận được kết quả tương tự như bên dưới.



Như bạn thấy trên ảnh chụp màn hình ở trên, httpd đang hoạt động và chạy.

Cài đặt PHP trên Rocky Linux​

Hiện tại, Nextcloud cần PHP 7.4 trở lên để cài đặt. Bây giờ bạn sẽ cài đặt PHP 7.4 từ kho lưu trữ remi.

1. Thực hiện lệnh sau để thêm kho lưu trữ epel và remi
Mã:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Gõ "y" và nhấn "Enter" để thêm kho lưu trữ epel và remi.

Khi quá trình cài đặt hoàn tất, hãy xác minh kho lưu trữ epel và Remi bằng lệnh sau.
Mã:
sudo dnf repolist
Bạn sẽ thấy kho lưu trữ epel và remi trong danh sách kho lưu trữ.



2. Tiếp theo, đặt lại mô-đun kho lưu trữ mặc định PHP. Sau đó, bật mô-đun cho PHP 7.4 từ kho lưu trữ remi.

Thực hiện lệnh sau để đặt lại kho lưu trữ mô-đun php mặc định.
Mã:
sudo dnf module reset php
Trong quá trình này, nhập "y" và nhấn "Enter" để thêm khóa gpg kho lưu trữ remi.



Sau đó, thực hiện lệnh bên dưới để bật mô-đun php từ kho lưu trữ remi.
Mã:
sudo dnf module enable php:remi-7.4
Nhập "y" để xác nhận và nhấn "Enter" để tiếp tục. Bây giờ bạn đã sẵn sàng cài đặt PHP và tất cả các tiện ích mở rộng cho cài đặt WordPress.



3. Thực hiện lệnh sau để cài đặt php với một số phần mở rộng cần thiết.
Mã:
sudo dnf install php php-ctype php-curl php-gd php-iconv php-json php-libxml php-mbstring php-openssl php-posix php-session php-xml php-zip php-zlib php-pdo php-mysqlnd php-intl php-bcmath php-gmp php-imagick php-apcu
4. Sau khi cài đặt PHP hoàn tất, hãy chỉnh sửa cấu hình "php.ini" bằng trình soạn thảo nano.
Mã:
nano /etc/php.ini
Thay đổi giá trị mặc định bằng cấu hình bên dưới.
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
Nhấn "Ctrl+x" và nhập "Y" để lưu cấu hình và thoát.

Cấu hình quan trọng bạn phải biết:
  • Đối với sản xuất Nextcloud, bạn cần "memory_limit" lớn hơn 512MB.
  • Tùy chọn "upload_max_filesize" cho phép bạn thiết lập kích thước tải lên tối đa cho máy chủ Nextcloud của mình.
  • Tùy chọn "post_max_size" phải cao hơn tùy chọn "upload_max_filesize".
  • Tùy chọn "date.timezone" phải khớp với giờ địa phương của hệ thống "/etc/localtime".
  • Tăng "max_execution_time" tùy thuộc vào tải máy chủ của bạn.
5. Tiếp theo, hãy thay đổi thư mục làm việc thành "/etc/php.d/" và chỉnh sửa cấu hình "10-opcache.ini" bằng trình soạn thảo nano.
Mã:
cd /etc/php.d/
nano 10-opcache.ini
Thêm cấu hình sau để kích hoạt plugin opecache PHP.
Mã:
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
Nhấn nút "Ctrl+x" và nhập "Y" để lưu cấu hình và exit.

6. Để áp dụng cấu hình PHP mới, hãy khởi động lại dịch vụ httpd bằng lệnh sau.
Mã:
sudo systemctl restart httpd

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ã:
sudo dnf install mariadb mariadb-server
Chờ cài đặt mariadb.



2. Sau khi cài đặt hoàn tất, hãy bật và khởi động dịch vụ mariadb bằng lệnh sau.
Mã:
sudo systemctl enable mariadb
sudo systemctl start mariadb
4. Mariadb sẽ hoạt động và chạy, hãy thực hiện lệnh sau để xác minh dịch vụ mariadb.
Mã:
sudo systemctl status mariadb
Nếu dịch vụ mariadb đang chạy, bạn sẽ nhận được đầu ra tương tự như bên dưới.



5. 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 điều đó, bạn có thể sử dụng công cụ dòng lệnh 'mysql_secure_installation', được bao gồm 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 thiết lập mật khẩu gốc mariadb.

Nhập mật khẩu gốc mariadb mạnh của bạn và lặp lại, sau đó nhấn "Enter" để tiếp tục.
Mã:
Đặt mật khẩu gốc đảm bảo rằng không ai có thể đăng nhập vào 
người dùng gốc MariaDB mà không có quyền thích hợp.

Đặt mật khẩu gốc? [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à cần phải 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 các đặc quyền trên cơ sở dữ liệu thử nghiệm...
... Thành công!
Và cuối cùng, hãy nhập "Y" một lần nữa để tải lại tất cả các đặc quyền của bảng để áp dụng cấu hình mới.
Mã:
Tải lại các 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 các 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...

Xong! 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 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 netxcloud_db;
3. Thực hiện truy vấn sau để tạo người dùng cơ sở dữ liệu mới "nextuser". Thay đổi "strongpassword" bằng mật khẩu mạnh của bạn.
Mã:
CREATE USER nextuser@localhost IDENTIFIED BY 'StrongPassword';
4. Cho phép người dùng "nextuser" truy cập và ghi "nextcloud_db" bằng truy vấn sau.
Mã:
CẤP TẤT CẢ QUYỀN TRÊN netxcloud_db.* CHO nextuser@localhost;
5. Bây giờ hãy tải lại tất cả các quyền của bảng để áp dụng cấu hình cơ sở dữ liệu mới.
Mã:
XẢ QUYỀN;
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/
wget https://download.nextcloud.com/server/releases/nextcloud-22.1.0.zip
2. Trích xuất mã nguồn Nextcloud "nextcloud-xx.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 "apache".
Mã:
giải nén nextcloud-22.1.0.zip
chown -R apache:apache nextcloud
Bây giờ bạn đã sẵn sàng để cấu hình máy chủ ảo httpd cho Nextcloud.

Bật Mô-đun Apache/Httpd mod_ssl​

Đối với hướng dẫn này, bạn sẽ cài đặt Nextcloud và bảo mật bằng SSL từ Letsencrypt. Vì vậy, bạn cần bật mod_ssl cho máy chủ httpd trên Rocky Linux.

1. Cài đặt gói "mod_ssl" bằng lệnh dnf bên dưới.
Mã:
sudo dnf install mod_ssl mod_http2
2. Sau đó, tạo SSL mặc định cho localhost bằng lệnh openssl bên dưới. Nhưng nếu bạn đã có chứng chỉ "/etc/pki/tls/private/localhost.key" và "/etc/pki/tls/certs/localhost.crt", bạn có thể bỏ qua giai đoạn này.
Mã:
openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt
Bạn chỉ cần nhấn enter cho tất cả các câu hỏi vì chứng chỉ này sẽ chỉ được sử dụng cho localhost, không phải tên miền WordPress.



3. Bây giờ hãy thực hiện lệnh sau để đảm bảo mod_ssl có sẵn trên máy chủ web httpd.
Mã:
apachectl -M | grep ssl
Nếu bạn nhận được đầu ra như "ssl", thì mod_ssl đã được bật. Nếu không, bạn sẽ nhận được đầu ra trống.


Tạo SSL Letsencrypt bằng Certbot​

Trong giai đoạn này, bạn sẽ cài đặt công cụ cerbot và tạo chứng chỉ SSL cho cài đặt WordPress. 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ã:
sudo dnf install certbot
Chờ quá trình 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 cho letsencrypt bằng các lệnh sau.
Mã:
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
3. Tiếp theo, hãy thay đổi thư mục làm việc thành "/etc/httpd/conf.d/" và tạo cấu hình mới "well-known.conf" bằng trình soạn thảo nano.
Mã:
cd /etc/httpd/conf.d/
nano well-known.conf
Thêm các 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" để lưu và thoát.

4. Bây giờ hãy thực hiện các lệnh sau để xác minh cấu hình httpd và khởi động lại dịch vụ httpd.
Mã:
apachectl configtest
sudo systemctl restart httpd
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 tên của riêng bạn.
Mã:
sudo certbot certonly --agree-tos --email [emailprotected] --webroot -w /var/lib/letsencrypt/ -d files.domain.com -d [URL=http://www.files.domain.com?utm_source=diendancongnghe.com][/URL]
Khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có sẵn tại thư mục "/etc/letsencrypt/live/files.domain.com/".

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/httpd/conf.d" và tạo cấu hình mới "nextcloud.conf" bằng trình soạn thảo nano.
Mã:
cd /etc/httpd/conf.d/
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.com
 ServerAlias www.files.domain.com

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



 ServerName files.domain.com
 ServerAlias www.files.domain.com
 
 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.com/
 

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

 SSLEngine On
 SSLCertificateFile /etc/letsencrypt/live/files.domain.com/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/files.domain.com/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" để lưu cấu hình và thoát.

3. Tiếp theo, thực hiện lệnh sau để xác minh cấu hình httpd.
Mã:
sudo apachectl configtest
Nếu bạn không gặp lỗi, hãy khởi động lại dịch vụ httpd bằng lệnh bên dưới.
Mã:
sudo systemctl restart httpd
Bây giờ bạn đã sẵn sàng để cài đặt Nextcloud thông qua trình duyệt web.


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 của bạn.


Bây giờ bạn sẽ được chuyển hướng đến kết nối HTTPS an toàn và bạn sẽ nhận được trang như sau.


  • Trong phần "Tạo tài khoản quản trị", hãy nhập tên người dùng và mật khẩu mới cho quản trị viên của bạn.
  • Đối với phần "Thư mục dữ liệu", hãy để nguyên mặc định.
  • Trong phần "Cấu hình cơ sở dữ liệu", hãy chọn "MySQL/MariaDB" và nhập thông tin chi tiết cấu hình cơ sở dữ liệu
  • Ngoài ra, bạn có thể cài đặt các ứng dụng được đề xuất bằng cách đánh dấu vào tùy chọn hộp. Hoặc bỏ chọn tùy chọn hộp nếu bạn không muốn.
Sau đó, bạn có thể nhấp vào nút "Hoàn tất thiết lập".

2. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy bảng điều khiển Nextcloud mặc định như bên dưới.



3. Bây giờ hãy nhấp vào menu "Tệp" và bạn sẽ thấy danh sách tệp và thư mục bảng điều khiển người dùng.



4. Để truy cập trang quản trị, hãy nhấp vào hồ sơ người dùng ở trên cùng và chọn "Cài đặt".

Trong phần "Quản trị", bạn có thể thay đổi cấu hình Nextcloud mặc định.



5. Để thêm plugin hoặc ứng dụng mới, bạn có thể nhấp vào hồ sơ người dùng ở trên cùng và chọn "Ứng dụng".

Bây giờ bạn sẽ nhận được trang như sau.



Chọn danh mục plugin phù hợp với bạn, sau đó nhấp vào nút "Tải xuống và bật". Sau đó, nhấp vào "Bật" để kích hoạt ứng dụng hoặc plugin.

Dưới đây là ảnh chụp màn hình sau khi bật chủ đề Nextcloud Breeze Dark.


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 chỉnh sửa 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