Header Ads Widget

Responsive Advertisement

Ticker

3/recent/ticker-posts

Cài đặt NextCloud trên Ubuntu 20.04 LTS với Nginx, MariaDB, PHP 7.1 và Let's Encrypt SSL / TLS

NextCloud là một dịch vụ lưu trữ đám mây tự lưu trữ mã nguồn mở thực sự… Đây là một nhánh của OwnCloud và có thể được sử dụng để tạo một DropBox giống như trải nghiệm trong môi trường của riêng bạn ..

NextCloud là một nền tảng ứng dụng chia sẻ và đồng bộ hóa tệp mã nguồn mở, tự lưu trữ cho phép các dịch vụ đám mây riêng tư trên máy chủ và môi trường của chính người dùng. NextCloud cung cấp các chức năng tương tự như DropBox và các dịch vụ lưu trữ đám mây khác, đồng thời miễn phí tải xuống và cài đặt trên máy chủ của riêng bạn mà không cần trả phí cho nhà cung cấp dịch vụ.

Trong môi trường ngày nay, NextCloud thường được cài đặt mã hóa SSL / TLS để tất cả lưu lượng truy cập đến và đi từ nền tảng được bảo vệ qua HTTPS. Đây là một cách tuyệt vời để bảo mật dữ liệu của bạn trên NextCloud.

Hướng dẫn ngắn gọn này cho sinh viên và người dùng mới biết các bước cài đặt và cấu hình NextCloud trên Máy chủ Ubuntu 16.04 LTS với hỗ trợ Nginx, MariaDB, PHP và Let's Encrypt để lưu trữ NextCloud trong môi trường của riêng họ.

Để tìm hiểu cách cài đặt NextCloud trên máy chủ của bạn, hãy làm theo các bước bên dưới:

Bước 1: Cài đặt Nginx

NextCloud yêu cầu một máy chủ web để hoạt động và máy chủ web phổ biến thứ hai được sử dụng hiện nay là Nginx. Vì vậy, hãy cài đặt Nginx trên Ubuntu bằng cách chạy các lệnh bên dưới:

sudo apt install nginx

Tiếp theo, chạy các lệnh bên dưới để dừng, khởi động và kích hoạt dịch vụ Nginx luôn khởi động khi máy chủ khởi động.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Bước 2: Cài đặt MariaDB

NextCloud cũng yêu cầu một máy chủ cơ sở dữ liệu để hoạt động .. và máy chủ cơ sở dữ liệu MariaDB là một nơi tuyệt vời để bắt đầu. Để cài đặt nó, hãy chạy các lệnh bên dưới.

sudo apt-get install mariadb-server mariadb-client

Sau khi cài đặt, các lệnh dưới đây có thể được sử dụng để dừng, khởi động và kích hoạt dịch vụ MariaDB luôn khởi động khi máy chủ khởi động.

sudo systemctl stop mysql.service
sudo systemctl start mysql.service
sudo systemctl enable mysql.service

Sau đó, chạy các lệnh bên dưới để bảo mật máy chủ MariaDB.

sudo mysql_secure_installation

Khi được nhắc, hãy trả lời các câu hỏi bên dưới bằng cách làm theo hướng dẫn.

  • Nhập mật khẩu hiện tại cho root (nhập cho không): Chỉ cần nhấn  Enter
  • Đặt mật khẩu gốc? [Y / n]:  Y
  • Mật khẩu mới:  Nhập mật khẩu
  • Nhập lại mật khẩu mới: Lặp lại mật khẩu
  • Xóa người dùng ẩn danh? [Y / n]: Y
  • Không cho phép đăng nhập root từ xa? [Y / n]: Y
  • Xóa cơ sở dữ liệu thử nghiệm và truy cập vào nó? [Y / n]:  Y
  • Tải lại bảng đặc quyền ngay bây giờ? [Y / n]:   Y

Khởi động lại máy chủ MariaDB

sudo systemctl restart mysql.service

Bước 3: Cài đặt PHP 7.1-FPM và các mô-đun liên quan

PHP 7.1 không có sẵn trên kho lưu trữ mặc định của Ubuntu… để cài đặt nó, bạn sẽ phải lấy nó từ kho của bên thứ ba.

Chạy các lệnh bên dưới để thêm kho lưu trữ bên thứ ba bên dưới để nâng cấp lên PHP 7.1

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Sau đó cập nhật và nâng cấp lên PHP 7.1

sudo apt update

Chạy các lệnh bên dưới để cài đặt PHP 7.1 và các mô-đun liên quan.

sudo apt install php7.1-fpm php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-apcu php7.1-smbclient php7.1-ldap php7.1-redis php7.1-gd php7.1-xml php7.1-intl php7.1-json php7.1-imagick php7.1-mysql php7.1-cli php7.1-mcrypt php7.1-ldap php7.1-zip php7.1-curl

Sau khi cài đặt PHP 7.1, hãy chạy các lệnh bên dưới để mở tệp mặc định PHP-FPM.

sudo nano /etc/php/7.1/fpm/php.ini

Sau đó, thực hiện thay đổi các dòng sau trong tệp và lưu.

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = America/Chicago

Bước 4: Tạo cơ sở dữ liệu NextCloud

Bây giờ bạn đã cài đặt tất cả các gói được yêu cầu, hãy tiếp tục bên dưới để bắt đầu định cấu hình máy chủ. Đầu tiên hãy chạy các lệnh bên dưới để tạo cơ sở dữ liệu NextCloud.

Chạy các lệnh bên dưới để đăng nhập vào máy chủ cơ sở dữ liệu. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu gốc bạn đã tạo ở trên.

sudo mysql -u root -p

Sau đó, tạo một cơ sở dữ liệu được gọi là đám mây tiếp theo

CREATE DATABASE nextcloud;

Tạo một người dùng cơ sở dữ liệu được gọi là nextclouduser  với mật khẩu mới

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'new_password_here';

Sau đó cấp cho người dùng toàn quyền truy cập vào cơ sở dữ liệu.

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Cuối cùng, lưu các thay đổi của bạn và thoát.

FLUSH PRIVILEGES;
EXIT;

Bước 5: Tải xuống bản phát hành mới nhất của NextCloud

Tiếp theo, hãy truy cập trang NextCloud để tải xuống bản sao miễn phí của bạn bằng cách chạy các lệnh bên dưới.

Sau khi tải xuống, hãy chạy các lệnh bên dưới để giải nén tệp tải xuống vào thư mục gốc Nginx.

cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-19.0.3.zip
unzip nextcloud-19.0.3.zip
sudo mv nextcloud /var/www/html/nextcloud/

Sau đó, chạy các lệnh bên dưới để đặt các quyền chính xác cho NextCloud hoạt động.

sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/

Bước 6: Định cấu hình Nginx

Cuối cùng, định cấu hình tệp cấu hình trang Nginx cho NextCloud. Tệp này sẽ kiểm soát cách người dùng truy cập nội dung NextCloud. Chạy các lệnh bên dưới để tạo tệp cấu hình mới có tên nextcloud

sudo nano /etc/nginx/sites-available/nextcloud

Sau đó sao chép và dán nội dung bên dưới vào tệp và lưu nó. Thay thế dòng được đánh dấu bằng tên miền và vị trí thư mục gốc của riêng bạn.

server {
listen 80;
listen [::]:80;
root /var/www/html/nextcloud;
index index.php index.html index.htm;
server_name example.com www.example.com;

location / {
rewrite ^ /index.php$uri;
}

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}

location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}

}

Lưu file và thoát.

Bước 7: Kích hoạt Trang web NextCloud

Sau khi định cấu hình VirtualHost ở trên, hãy kích hoạt nó bằng cách chạy các lệnh bên dưới

sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/

Bước 8: Khởi động lại Nginx

Để tải tất cả các cài đặt ở trên, hãy khởi động lại Apache2 bằng cách chạy các lệnh bên dưới.

sudo systemctl restart nginx.service

BƯỚC 9: TẢI VÀ CẤU HÌNH ĐỂ NHẬN ĐƯỢC CHỨNG CHỈ SSL ENCRYPT

Bây giờ cấu hình NextCloud đã hoàn tất, hãy tiếp tục bên dưới để cài đặt và cấu hình Let's Encrypt. Let's Encrypt hiện cung cấp một mô-đun NGinx để tự động hóa quá trình này. Để cài đặt ứng dụng / mô-đun trên Ubuntu, hãy chạy các lệnh bên dưới

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

Sau đó, hãy chạy các lệnh bên dưới để nhận chứng chỉ Let's Encrypt SSL / TLS miễn phí cho trang web của bạn.

sudo certbot --nginx -m admin@example.com -d example.com -d www.example.com

Sau khi chạy các lệnh trên, bạn sẽ được nhắc chấp nhận các điều khoản cấp phép. Nếu mọi thứ được kiểm tra, máy khách sẽ tự động cài đặt chứng chỉ SSL / TLS miễn phí và định cấu hình trang web Nginx để sử dụng chứng chỉ.

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

Chọn Có (Y) để chia sẻ địa chỉ email của bạn

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y

Đây là cách dễ dàng để có được chứng chỉ SSL / TLS miễn phí cho trang web được cung cấp bởi Nginx của bạn.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Chọn tùy chọn 2 để chuyển hướng tất cả lưu lượng truy cập qua HTTPS. Điều này quan trọng!

Sau đó, ứng dụng SSL sẽ cài đặt chứng chỉ và định cấu hình trang web của bạn để chuyển hướng tất cả lưu lượng truy cập qua HTTPS.

Congratulations! You have successfully enabled https://example.com and
https://www.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.example.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-02-24. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Khối mã được đánh dấu sẽ được tự động thêm vào tệp cấu hình trang web Nginx NextCloud của bạn bằng Let's Encrypt certbot. Trang web NextCloud của bạn đã sẵn sàng để sử dụng qua HTTPS.

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/nextcloud;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    location / {
        rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        return 404;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        return 404;
    }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri $uri/ =404;
        index index.php;
    }

    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        access_log off;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    # Redirect non-https traffic to https
    # if ($scheme != "https") {
    #     return 301 https://$host$request_uri;
    # } # managed by Certbot

}

Sau đó, mở trình duyệt của bạn và duyệt đến tên miền máy chủ, sau đó là cài đặt. Bạn sẽ thấy trình hướng dẫn thiết lập NextCloud để hoàn tất. Hãy làm theo hướng dẫn một cách cẩn thận.

https://example.com

Sau đó, bạn sẽ thấy trang thiết lập NextCloud .. Kết nối với cơ sở dữ liệu bằng cách sử dụng thông tin bạn đã tạo và tiếp tục. Chọn máy chủ cơ sở dữ liệu được cài đặt trên hệ thống của bạn bằng cách nhấp vào nó như thể hiện trong hình ảnh bên dưới

cài đặt nextcloud ubuntu

Nhấp vào Hoàn tất thiết lập và bạn đã hoàn tất.

Thưởng thức!

thiết lập nextcloud ubuntu

Xin chúc mừng! Bạn đã cài đặt thành công NextCloud trên Ubuntu 16.04 LTS với hỗ trợ Let's Encrypt.

Để thiết lập quy trình tự động gia hạn chứng chỉ, hãy thêm công việc cron để thực hiện quy trình gia hạn.

sudo crontab -e

Sau đó thêm dòng bên dưới và lưu.

0 1 * * * /usr/bin/certbot renew & > /dev/null

Công việc cron sẽ cố gắng gia hạn 30 ngày trước khi hết hạn

Thưởng thức!

 

Nguồn tham khảo

 

Đăng nhận xét

0 Nhận xét