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