Header Ads Widget

Ticker

6/recent/ticker-posts

Hướng dẫn xây dựng Cloud Server riêng bằng NextCloud trên Ubuntu

Keyword: How to build Cloud Server Personal by Next Cloud on Ubuntu
Cloud là một dịch vụ lưu trử dữ liệu đám mây nghĩa là không còn lưu trực tiếp trên PC cá nhân hay ổ USB của các bạn nữa mà chúng ta hay hiểu là lưu trử file này, file kia trên Drive hay OneDrive, Dropbox v.v nói sơ qua vậy thôi chứ mình không thích và cũng chẳng rành để định nghĩa cho các bạn hiểu về nó nhiều lắm đa phần những điều này điều có hết trên google và họ đã giải thích rất rõ rồi vì thế mình sẻ đi vào vấn đề là giúp các bạn phân tích so sánh chức năng của 2 loại Cloud Server khá nổi tiếng là Next Cloud và OwnCloud.
Vì sao mình chọn Next Cloud thì các bạn xem bản tính năng này rồi sẻ hiểu rõ nhé mặc dù cả 2 điều là Opensource
Tính năng
NextCloud
ownCloud
Files
File Storage
Hỗ trợ
Upload, đồng bộ, comments, tags, nhiều phiên bản, chuyển files qua giao diện web.
Hỗ trợ
Upload, đồng bộ, comments, tags, nhiều phiên bản, chuyển files qua giao diện web.
File Sharing
Hỗ trợ
Chia sẻ thông qua user, email, link, các trang mạng xã hội, bảo vệ bằng mật khẩu và ngày hết hạn. Có thể cho phép người dùng không có tài khoản (email) chỉnh sửa tài liệu.
Hỗ trợ
Chia sẻ thông qua user, email, link, các trang mạng xã hội, bảo vệ bằng mật khẩu và ngày hết hạn.
Tìm kiếm văn bản hoàn chỉnh
Hỗ trợ
Ứng dụng Nextant tích hợp Apache Solr
Hỗ trợ
Tích hợp với ElasticSearch có sẵn thông qua tiện ích bổ sung trả phí.
Folder Sharing
Hỗ trợ
Chia sẻ thông qua user, email, link, các trang mạng xã hội, bảo vệ mật khẩu và ngày hết hạn. Cho phép người dùng xem và upload
Hỗ trợ
Chia sẻ thông qua user, email, link, các trang mạng xã hội, bảo vệ mật khẩu và ngày hết hạn. Cho phép người dùng xem và upload
Tích hợp trực tuyến LibreOffice
Hỗ trợ
Hỗ trợ
PDF Viewer
Hỗ trợ
Tích hợp sẵn
Hỗ trợ
Ứng dụng PDF Viewer có sẵn
Thư viện ảnh
Hỗ trợ
Hỗ trợ
Chỉnh sửa tài liệu cho người dùng email không cần đăng nhập
Hỗ trợ
Không hỗ trợ
Theo dõi hoạt động tệp
Hỗ trợ
Tích hợp sẵn
Hỗ trợ
Có sẵn các App
Hỗ trợ file dung lượng lớn
Hỗ trợ
Hỗ trợ
Giới hạn bộ nhớ/người dùng
Hỗ trợ
Hỗ trợ
Kiểm soát truy cập File
Hỗ trợ
Chỉ hỗ trợ phiên bản Enterprise Edition
Khóa File
Hỗ trợ
Thông qua W2G2 app
Không hỗ trợ
Liên kết
Hỗ trợ
Chia sẻ file trên Nextcloud server được hỗ trợ
Hỗ trợ
Chia sẻ file trên ownCloud server được hỗ trợ
Clients
Web Client
Hỗ trợ
Hỗ trợ
Desktop Clients
Windows, Mac, Linux
Windows, Mac, Linux
Mobile Clients
Hỗ trợ
Google Play Android client (xếp hạng 4 và miễn phí), Apple App store client(xếp hạng 4.7 và miễn phí), F-Droid - kho ứng dụng Android và MS Windows Store có một ứng dụng vẫn đang trong quá trình thử nghiệm.
Hỗ trợ
Windows Mobile client, Google Play Android client (xếp hạng 4 và có giá $4.00), Apple App store client (xếp hạng 2.9 và có giá $0.99), và Blackberry World.
Apps
App Store / Marketplace
Hỗ trợ
120 ứng dụng có trong danh sách Nextcloud app store
Hỗ trợ
62 ứng dụng có trong danh sách ownCloud marketplace
Audio/Video Chat
Hỗ trợ
Có bao gồm push notifications
Không hỗ trợ
Không có ứng dụng trò chuyện nào trên ownCloud 10
Audio/Video Player
Hỗ trợ
Không thể đóng player trừ khi tải lại trang
Hỗ trợ
Bookmarks App
Hỗ trợ
Hỗ trợ
Calendar App
Hỗ trợ
Hỗ trợ
Contacts App
Hỗ trợ
Hỗ trợ
Email
Hỗ trợ
Ứng dụng Nextcloud Mail đơn giản cùng với ứng dụng tích hợp RainLoop
Hỗ trợ
Ứng dụng tích hợp RainLoop
Notes
Hỗ trợ
Hỗ trợ
Weather
Hỗ trợ
Không hỗ trợ
Security
Xác thực 2 yếu tố
Hỗ trợ
Hỗ trợ
Bảo vệ trước tấn công Brute Force
Hỗ trợ
Cho cả lõi và ứng dụng
Hỗ trợ
Có sẵn thông qua ownCloud Security app
Rate Limiting
Hỗ trợ
Không hỗ trợ
Các tính năng khác
Các nhóm User
Hỗ trợ
Circles app cho phép người dùng tạo nhóm người dùng /đồng nghiệp/bạn bè của riêng họ
Hỗ trợ
Custom groups app cho phép người dùng tạo và quản lý các nhóm tùy chỉnh để chia sẻ
API
Hỗ trợ
Hỗ trợ
Tích hợp bộ nhớ ngoài
Hỗ trợ
Hỗ trợ
Khả năng mở rộng/Hỗ trợ doanh nghiệp
Hỗ trợ
Hỗ trợ
Resource Monitoring
Hỗ trợ
Không hỗ trợ
Third Party Authentication
Hỗ trợ
Hỗ trợ
Theme Customization
Hỗ trợ
Hỗ trợ
Role Based Administration
Hỗ trợ
Hỗ trợ
Workflow
Hỗ trợ
Hỗ trợ
Translations
Hỗ trợ 33 ngôn ngữ khác nhau
Hỗ trợ 103 ngôn ngữ khác nhau
Sau khi xem xong bản so sánh trên chắc cũng đã hiểu lý do rồi đúng không ? ok vậy thì chúng ta bắt đầu thực hiện Install NextCloud nào

Bước 1: Cài đặt Apache2 HTTP Server trên Ubuntu

Để cài đặt thì ta thực hiện chạy các câu lệnh sau
sudo apt update
sudo apt install apache2
Khởi động lại Services của Apache nào
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
Sau đó chúng ta check xem máy chủ Apache đã hoạt động ổn chưa bằng cách truy cập vào thử nhé, ở đây do mình dùng Ubuntu Server nên mình phải truy cập bằng địa chỉ IP còn nếu các bạn dùng Ubuntu Desktop thì có thể sử dụng localhost

Bước 2: Thực hiện cài đặt MariaDB Database Server cho Ubuntu

Để thực hiện cài đặt ta chạy câu lệnh sau
sudo apt-get install mariadb-server mariadb-client
Thực hiện khởi động lại Services trên 2 hệ điều hành Ubuntu 16 và 18 bằng các câu lệnh sau
  • Trên Ubuntu 16.04 LTS ta thực hiện
sudo systemctl stop mysql.service
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
  • Trên Ubuntu 18.04 và LTS ta thực hiện như sau
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Do mình đăng chạy trên Ubuntu Server 18 và cao hơn nên mình sẻ sử dụng cách Start Service như bên dưới
Sau đó thực hiện tạo Database cho Cloud Server của chúng ta bằng câu lệnh
sudo mysql_secure_installation
Khi bảng thông báo hiện ra bạn chỉ việc thực hiện theo như sau
  •     Enter current password for root (enter for none): Nhấn Enter
  •     Set root password? [Y/n]: Y
  •     New password: Enter password
  •     Re-enter new password: Repeat password
  •     Remove anonymous users? [Y/n]: Y
  •     Disallow root login remotely? [Y/n]: Y
  •     Remove test database and access to it? [Y/n]:  Y
  •     Reload privilege tables now? [Y/n]:  Y
Sau đó thực hiện check bằng câu lệnh sau:
sudo mysql -u root -p

Bước 3: Cài đặt PHP 7.2 và các thư viện của nó

Để cài đặt ta cần Add Repo vào Ubuntu trước đã
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Sau đó thực hiện lệnh Update Ubuntu
sudo apt update
Tiếp đến ta chạy cài đặt các thư viện cần thiết cho PHP
sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip
Sau khi đã cài đặt PHP 7.2 xong rồi ta thực hiện chỉnh sửa lại một số thông số trong file php.ini
sudo vi /etc/php/7.2/apache2/php.ini
Tìm kiếm các phần sau và thay đổi nó y như của mình nhé
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Bước 4: Khởi động lại Apache2 và check PHP coi hoạt động chưa

Để restart Apache2 ta thực hiện câu lệnh sau
sudo systemctl restart apache2.service
Tiếp đến tạo 1 file phpinfo.php để biết nó đã hoạt động chưa nhé bằng cách sau
sudo vi /var/www/html/phpinfo.php
Trong file này bạn thêm vào câu lệnh sau và save lại
<?php phpinfo( ); ?>
Ta truy cập đường dẫn http://10.0.1.192/phpinfo.php các bạn nếu dùng Desktop thì dùng localhost thay cho IP nhé, tại mình dùng Server nên phải thế

Bước 5: Tạo NextCloud Database bằng Query

Truy cập vào mysql trước đã
sudo mysql -u root -p
Sau đó thực hiện chạy tạo database mình sẻ gọi database đó là NextCloud
CREATE DATABASE nextcloud;
Tạo user và password nhé bằng query sau
CREATE USER 'adnextcloud'@'localhost' IDENTIFIED BY '1234@abcd';
GRANT ALL ON nextcloud.* TO 'adnextcloud'@'localhost' IDENTIFIED BY '1234@abcd' WITH GRANT OPTION;
Cuối cùng ta chạy 2 câu query sau nữa là ok
FLUSH PRIVILEGES;
EXIT;

Bước 6: Thực hiện Download NextCloud phiên bản mới nhất

Chúng ta sẻ sử dụng Composer
sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Sau đó chúng ta tiếp tục vào html và download nó về
cd /var/www/html
sudo git clone --branch stable13 https://github.com/nextcloud/server.git nextcloud
cd /var/www/html/nextcloud
sudo composer install
sudo git submodule update --init
Chạy 2 câu lệnh sau để có thể cấp quyền cho NextCloud
sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/

Bước 7: Cấu hình Apache2

Để thêm file cấu hình cho Apache2 ta thực hiện dùng lệnh sau để tạo file nextcloud.conf cho Apache2
sudo vi /etc/apache2/sites-available/nextcloud.conf
Sau đó ta thêm đoạn code sau vào trong file nextcloud.conf
<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/nextcloud/
     ServerName sutrix-nextcloud.com
     ServerAlias www.sutrix-nextcloud.com
  
     Alias /nextcloud "/var/www/html/nextcloud/"

     <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Save file đó lại và thoát ra

Bước 8: Bật Nextcloud và một số thư viện cần thiết lên

Sau khi đã cấu hình VirtualHost xong ta thực hiện Enable nó lên nào
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Bước 9: Restart lại Apahce2 và tạo tại khoản Admin cho lần đầu đăng nhập

sudo systemctl restart apache2.service
Sau khi thực hiện đúng như trên và restart lại service apache bạn sẻ được như hình tại đây bạn cấu hình như sau
 Như hình phía dưới nhé
Như bạn thấy ở trên tài khoản admin là do mình đặt và tự tạo, còn phần database kết nối SQL thì bạn điền vào những thông tin mà bạn đã cài đặt và chạy query lúc ở phía trên, nên nhớ giá trị luôn là localhost dù bạn có thực hiện nó trên Server hay là Desktop đi nữa, do lúc nảy mình có tưởng rằng mình đang dùng Server nên điền IP ai ngờ nó lại lỗi thế mà điền localhost lại chạy ngon lành haha
Giao diện sẻ như thế này.

Để Upgrading Nextcloud ta thực hiện sử dụng các câu lệnh sau

Đầu tiên ta cần Backup nó trước đã
sudo mv /var/www/html/nextcloud /var/www/html/nextcloud_bak
Sau đó thực hiện Replace số Stable với giá trị cao hơn
cd /var/www/html
sudo git clone --branch stable14 https://github.com/nextcloud/server.git nextcloud
cd /var/www/html/nextcloud
sudo composer install
sudo git submodule update --init
Kế đến là Data ta cần Copy thư mục data củ và file config.php củ từ Folder backup hồi nảy vào thực mục Nextcloud mới mà ta đã tải về
sudo cp -rf /var/www/html/nextcloud_bak/data /var/www/html/nextcloud
sudo cp /var/www/html/nextcloud_bak/config/config.php /var/www/html/nextcloud/config/
Sau đó thực hiện chạy lại các câu lệnh sau để Upgrade nó nhé
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --on
sudo composer update /var/www/html/nextcloud --with-dependencies
sudo -u www-data php /var/www/html/nextcloud/occ upgrade
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off
Như vậy là mình đã hướng dẫn xong rồi đấy, các bạn thực hiện nếu có vấn đề gì đừng ngại cmt ở phía dưới.
Nguồn: itblognote.com

Post a Comment

4 Comments

  1. Nextcloud có xác thực bằng account domain được không bạn ?

    ReplyDelete
    Replies
    1. Cái này thì được nhé bạn, nhưng mình bận quá nên cũng không có thời gian ngâm cứu về nó nữa, nên chưa viết bài mới hihi

      Delete
  2. Cho mình hỏi là nó có hỗ trợ nhiều người edit 1 file cùng 1 lúc không Ad? Và kích thước lưu trữ của nó trên máy chủ như thế nào? Mình không thấy phần điều chỉnh kích thước của nextcloud?

    ReplyDelete
    Replies
    1. Kích thước là do bạn lựa chọn nha, bạn có thể để mặc định hoặc tùy chỉnh cho tài khoản đó bao nhiêu bạn muốn cũng được.

      Delete

Vài lời muốn nói:
* Không được nhận xét thô tục bởi mình biết các bạn là những người văn minh.
* Pass giải nén mặt định là itblognote hoặc itblognote.com nếu có Pass khác thì mình sẽ ghim trong bài viết.
* Click vào quảng cáo và chia sẻ bài viết để mình có thêm động lực viết bài nhé.