Cài Nextcloud trên Debian với LAMP

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt NextCloud trên Debian với LAMP stack. Nextcloud là giải pháp lưu trữ đám mây mã nguồn mở và miễn phí, cung cấp giải pháp thay thế cho các dịch vụ lưu trữ đám mây của bên thứ ba như Dropbox, Google Drive,… Với dung lượng lưu trữ không giới hạn tùy thuộc vào dung lượng VPS của bạn.

Điều Kiện

Để làm theo hướng dẫn này, bạn cần những điều sau:

  • Một Debian VPS (Virtual Private Server) hoặc một máy tính cục bộ cài Debian.
  • LAMP stack cài trên Debian.
  • Một tên miền.

Bước 1: Tải NextCloud

Tải xuống kho lưu trữ zip máy chủ NextCloud xuống hệ thống Debian của bạn bằng lệnh sau. Chọn phiên bản ổn định mới nhất từ trang chủ của NextCloud. (https://nextcloud.com/install/)

wget https://download.nextcloud.com/server/releases/latest.zip

Giải nén nó vào thư mục /var/www/ bằng unzip.

sudo apt install unzip

sudo unzip latest.zip -d /var/www/

Bây giờ ta tạo www-data (Apache user) làm chủ sở hữu của /var/www/nextcloud/.

sudo chown www-data:www-data /var/www/nextcloud -R

Bước 2: Tạo một Database và User trên MariaDB

Đăng nhập vào máy chủ cơ sở dữ liệu MariaDB bằng lệnh sau:

sudo mariadb -u root

Sau đó, tạo cơ sở dữ liệu cho NextCloud bằng lệnh MariaDB bên dưới. Hướng dẫn này đặt tên cho cơ sở dữ liệu là nextcloud. Bạn có thể sử dụng bất kỳ tên nào bạn thích. Đừng bỏ dấu chấm phẩy ở cuối.

create database nextcloud;

Sau đó, tạo một người dùng riêng. Một lần nữa, bạn có thể sử dụng tên ưa thích của mình cho người dùng này. Thay thế mật khẩu ở ví dụ bằng mật khẩu ưa thích của bạn.

grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';

Lệnh trên sẽ tạo người dùng và cấp tất cả các đặc quyền. Bây giờ hãy flush đặc quyền và thoát khỏi MariaDB.

flush privileges;

exit;

(Bước 3: Kích hoạt tính năng ghi nhật ký nhị phân trong MariaDB)

Chỉnh sửa tập tin cấu hình MariaDB.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Thêm ba dòng sau vào phần [mysqld].

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index = /var/log/mysql/mariadb-bin.index
binlog_format = mixed

Định dạng của nhật ký nhị phân phải được trộn lẫn. Lưu và đóng tệp sau đó khởi động lại dịch vụ MariaDB.

sudo systemctl restart mariadb

Bây giờ nhật ký nhị phân đã được bật trong MariaDB.

Bước 4: Tạo Apache Virtual Host File cho Nextcloud

Chúng ta sẽ tạo một tệp nextcloud.conf trong thư mục /etc/apache2/sites-available.

sudo nano /etc/apache2/sites-available/nextcloud.conf

Sao chép và dán các dòng sau vào tệp. Thay thế văn bản màu đỏ bằng tên miền thực của bạn. Bạn cũng cần trỏ tên miền của mình đến địa chỉ IP của máy chủ Debian 9 trong DNS.

<VirtualHost *:80>
DocumentRoot "/var/www/nextcloud"
ServerName nextcloud.your-domain.com

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any

</Directory>

</VirtualHost>

Lưu và đóng tệp sau đó kích hoạt máy chủ ảo này bằng lệnh bên dưới.

sudo a2ensite nextcloud

Chúng tôi cũng cần kích hoạt một số mô-đun Apache.

sudo a2enmod rewrite headers env dir mime setenvif ssl

Cài đặt các mô-đun PHP cần thiết.

sudo apt install php7.0-common php7.0-mysql php7.0-gd php7.0-json php7.0-curl php7.0-zip php7.0-xml php7.0-mbstring

Khởi động lại Apache để có thể tải các mô-đun Apache và PHP ở trên.

sudo systemctl restart apache2

Bước 5: Kích hoạt HTTPS

Bây giờ bạn có thể truy cập trình duyệt web để cài đặt Nextcloud bằng cách nhập tên miền để cài đặt Nextcloud.

nextcloud.your-domain.com

Trước khi nhập bất kỳ thông tin nhạy cảm nào, chúng ta nên kích hoạt kết nối HTTPS an toàn trên Nextcloud. Chúng ta có thể nhận được chứng chỉ TLS miễn phí từ Let’s Encrypt.

Cài đặt ứng dụng khách certbot (Let’s Encrypt) từ kho lưu trữ Debian.

sudo apt install certbot python-certbot-apache

Bây giờ hãy đưa ra lệnh sau để nhận chứng chỉ TLS/SSL miễn phí. Thay thế văn bản màu đỏ bằng dữ liệu thực tế của bạn.

sudo certbot --apache --agree-tos --redirect --hsts --email your-email-address -d nextcloud.your-domain.com

Giải thích:

  • –apache: Sử dụng plugin apache.
  • –agree-tos: Đồng ý các điều khoản dịch vụ.
  • –redirect: Tự động chuyển hướng tất cả lưu lượng HTTP sang HTTPS.
  • –hsts: Thêm tiêu đề Strict-Transport-Security.

Trong vòng vài giây, bạn sẽ thấy một thông báo như bên dưới, có nghĩa là chứng chỉ TLS đã được lấy và cài đặt thành công. Cấu hình TLS đạt điểm A trong bài kiểm tra SSL (SSL test).

Hoàn tất cài đặt trong trình duyệt web của bạn

Bây giờ trong thanh địa chỉ trình duyệt web của bạn, hãy nhập tên miền NextCloud của bạn. Bạn sẽ thấy nó tự động được chuyển hướng đến https.

nextcloud.your-domain.com

Bạn sẽ cần tạo một tài khoản quản trị viên. Thư mục dữ liệu là nơi lưu trữ các tệp của người dùng. Vì lý do bảo mật, tốt nhất nên đặt thư mục dữ liệu bên ngoài thư mục gốc của Nextcloud, chẳng hạn như /var/www/nextcloud-data. được tạo bằng lệnh sau:

sudo mkdir /var/www/nextcloud-data/

Sau đó, đảm bảo người dùng Apache (www-data) có quyền ghi vào thư mục dữ liệu.

sudo chown www-data:www-data /var/www/nextcloud-data -R

Sau đó nhập tên người dùng cơ sở dữ liệu, tên cơ sở dữ liệu và mật khẩu bạn đã tạo trước đó để kết nối Nextcloud với cơ sở dữ liệu MariaDB.

Sau khi hoàn tất, bạn sẽ thấy giao diện Web của Nextcloud. Xin chúc mừng! Bây giờ bạn có thể bắt đầu sử dụng nó làm bộ lưu trữ đám mây riêng của mình.

Tôi hy vọng hướng dẫn này đã giúp bạn cài đặt NextCloud trên Debian với LAMP stack.

Tip: Cấu hình để tải trực tiếp file chia sẻ khi nhấn vào link:

Mở tập tin .htaccess của Nextcloud: Đăng nhập vào máy chủ sau đó chạy lệnh:

sudo nano /var/www/nextcloud/.htaccess

Thêm đoạn mã sau vào cuối tệp .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/index.php/s/([a-zA-Z0-9]+)$
    RewriteRule ^ /index.php/s/%1/download [R=301,L]
</IfModule>

Lưu và thoát: Nhấn Ctrl + O để lưu tệp. Nhấn Ctrl + X để thoát.

Khởi động lại Apache để áp dụng thay đổi:

sudo systemctl restart apache2

Lưu ý:

Hãy chắc chắn rằng mô-đun mod_rewrite đã được kích hoạt trên Apache:

sudo a2enmod rewrite

Nếu .htaccess không hoạt động, kiểm tra tệp cấu hình Apache (apache2.conf) để đảm bảo rằng thư mục Nextcloud cho phép sử dụng .htaccess với AllowOverride All.

Tham khảo: www.linuxbabe.com