Hướng dẫn cài đặt OwnCloud chia sẻ dữ liệu trực tuyến với Raspberry Pi

Trong bài viết này, bạn chỉ mất khoảng 15′ cài đặt OwnCloud là đã có thể tự sở hữu một máy chủ cloud cho riêng mình, thoải mái lưu trữ dữ liệu cá nhân hoặc thậm chí chia sẻ với bạn bè mà không lo ngại các dữ liệu nhạy cảm.

VẬY OWNCLOUD LÀ GÌ VÀ TẠI SAO NÊN CÀI ĐẶT OWNCLOUD?

Vài năm trở lại đây, chúng ta khá quen thuộc với các thuật ngữ như “cloud” hay “lên mây”, … và một số các dịch vụ cloud quen thuộc là Dropbox, Mega.nz, Google Drive, … Với các dịch vụ này, khách hàng sẽ lưu trữ dữ liệu trên Internet thay vì trên máy cá nhân. Lợi thế ở chỗ người dùng có thể truy xuất các file này ở bất cứ chỗ nào và nhiều thiết bị khác nhau miễn là có Internet.

Tuy nhiên sử dụng các dịch vụ trên có rủi ro là bạn không biết được dữ liệu của mình có bị chia sẻ cho ai đó khác hay không. Nó thực sự quan trọng nếu bạn có nhiều dữ liệu nhạy cảm, bí mật, không muốn chia sẻ.

Và vì thế ra đời những hệ thống Private Cloud, trong đó OwnCloud được coi là giải pháp miễn phí tốt nhất, dễ vận hành nhất, hỗ trợ đa nền tảng khác nhau. Đây là những lý do mà bạn nên cài đặt OwnCloud trên Raspberry Pi của mình:

  • OwnCloud miễn phí, hoàn toàn miễn phí. Dĩ nhiên họ vẫn có bản mất phí cho doanh nghiệp
  • Hỗ trợ đa nền tảng bao gồm web, client và mobile (có cả Android lẫn iOS)
  • Hỗ trợ chia sẻ, phân quyền cho người khác được phép truy cập dữ liệu của bạn
  • Đảm bảo an toàn dữ liệu bằng cách mã hóa khi đồng bộ giữa các thiết bị
  • Cho phép sửa các định dạng văn bản như Text, Microsoft Office
  • Hiển thị, chơi các file media (ảnh, video, nhạc)
  • Hỗ trợ lịch và danh bạ (chưa hỗ trợ trên OwnCloud 10.1)

CÀI ĐẶT OWNCLOUD TRÊN RASPBERRY PI NHƯ THẾ NÀO?

Có 2 cách cài đặt OwnCloud cơ bản gồm:

  1. Tự cài từ A – Z. Tức là bạn cần cài đặt máy chủ web, máy chủ database và ngôn ngữ PHP hỗ trợ, … Việc này mất thời gian hơn chút vì bạn cần gõ (hoặc copy theo bài viết này cũng được) đâu đó tầm 20 dòng lệnh. Tham khảo thêm Cài đặt Web server và PHP, MySQL trên Raspbian.
  2. Cài thông qua bộ cài đặt tự động trong hệ điều hành DietPi. Bạn có thể tham khảo Giới thiệu DietPi – Một hệ điều hành đa dụng và siêu nhẹ cho Raspberry Pi.

Dưới đây chúng tôi sẽ tập trung vào hướng dẫn cài đặt OwnCloud qua cách thứ nhất. Cách thứ 2 xin hẹn các bạn ở một bài viết khác.

1. Bạn cần chuẩn bị gì?

Raspberry Pi 3 bạn cần cài hệ điều hành Raspbian hoặc Ubuntu. Nếu bạn chưa từng cài hệ điều hành hãy xem qua bài viết Hướng dẫn cài đặt hệ điều hành trên Raspberry Pi. Bên cạnh đó, vì nó là máy chủ nên bạn cũng cần thiết lập địa chỉ IP tĩnh cho Raspberry Pi. Bạn sẽ cần đến IP này để share dữ liệu cũng như định tuyến ra mạng Internet.

2. Tiến hành cài đặt OwnCloud

Trước hết, cần cập nhật kernel Raspberry Pi và các phần mềm bằng lệnh

sudo apt-get update
sudo apt-get upgrade

Sau đó, bạn cần tạo user và group được quyền truy cập vào web server thông qua lệnh

sudo usermod -a -G www-data www-data

Lệnh trên tạo user www-data và add vào group www-data. User, group này sẽ được phân quyền truy cập vào web server Nginx chúng ta cài sau đây.

sudo apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-common php5-cgi sqlite3 php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-curl php5-gd php5-fpm memcached php5-memcache varnish -y

Câu lệnh rất dài phía trên sẽ cài webserver Nginx, PHP, OpenSSL cùng các gói dịch vụ khác để OwnCloud có thể hoạt động được.

Tiếp theo, bạn cần tạo và cài SSL cho OwnCloud, mục đích là để mã hóa dữ liệu khi gửi nhận.

sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key

Tại bước này, các bạn cần phải khai báo một số thông tin như mã quốc gia (VN), tên thành phố (HaNoi hay Ho Chi Minh, ..), tên tổ chức/cá nhân/doanh nghiệp, email, … Bạn cứ thực hiện theo từng bước hướng dẫn là được.

Tạo được SSL rồi bạn phải phân quyền để có thể sử đụng được nó qua lệnh dưới này:

sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key

Cũng xin lưu ý với các bạn, đây là SSL tự sinh bằng phần mềm OpenSSL, chưa được chứng thực nên khi truy cập bạn sẽ bị cảnh báo và trên trình duyệt sẽ hiển thị như sau:

Cảnh báo SSL chưa được chứng thực nhưng bạn đừng quá lo lắng

Bạn cứ yên tâm sử dụng, nhìn nó không đẹp tí thôi chứ vẫn mã hóa bình thường nha

Bước tiếp theo rất quan trọng, bạn cần cấu hình NGINX server để OwnCloud có thể hoạt động được.

Đầu tiên, bạn tạo và mở file config của Nginx như sau:

sudo sh -c "echo '' > /etc/nginx/sites-available/default"
sudo nano /etc/nginx/sites-available/default

Sau đó hãy copy đoạn code dưới đây paste vào file default vừa mở ra

upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name 192.168.1.5;
return 301 https://$server_name$request_uri; # enforce https
}

server {
listen 443 ssl;
server_name 192.168.1.5;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
# Path to the root of your installation
root /var/www/owncloud;
client_max_body_size 1000M; # set max upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# Optional: set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}

Trong đó, có phần địa chỉ IP (192.168.1.5 bôi đỏ) các bạn cần sửa thành địa chỉ IP Raspberry Pi của mình.

Sắp xong rồi, giờ bạn cần sửa PHP FPM một chút nữa để chạy được với Nginx bằng cách sửa file sau:

sudo nano /etc/php5/fpm/pool.d/www.conf

Và thêm vào dưới dòng lệnh này:

listen = 127.0.0.1:9000

Bước cuối cùng, chúng ta cần tiến hành tải OwnCloud về Raspberry Pi theo một số lệnh sau, các bạn chạy lần lượt từng lệnh hoặc gộp lệnh chạy cũng được nhé

sudo mkdir -p /var/www/owncloud
sudo wget https://download.owncloud.org/community/owncloud-10.0.3.zip
sudo unzip owncloud-10.0.3.zip
sudo mv owncloud/ /var/www/
sudo chown -R www-data:www-data /var/www

Lưu ý, trong bài viết này chúng tôi sử dụng OwnCloud phiên bản 10.0.3 nên nó có link tải như trên và các lệnh như trên. Tùy vào việc bạn sử dụng phiên bản nào mà các bạn cần sửa link, lệnh tương ứng nhé.

Cuối cùng, bạn chỉ cần truy cập địa chỉ IP Raspberry Pi của các bạn. Ở ví dụ này là https://192.168.1.5, nhập username, password vào là OwnCloud tự động cài các thành phần còn lại. Đây là user, pass để login OwnCloud chứ không phải user login Raspbian nha các bạn.

Tạo user, password để hoàn tất việc cài đặt OwnCloud

Lúc này, việc cài đặt đã hoàn tất, bạn tiến hành cấu hình tinh chỉnh OwnCloud nếu cần và tiến hành sử dụng.

OwnCloud có nền tảng web, mobile và client nên các bạn có thể tải về để sử dụng trên nhiều thiết bị

OwnCloud hỗ trợ đa nền tảng

3. Public OwnCloud ra Internet

Hoàn thành các bước trên, bạn mới chỉ có thể sử dụng OwnCloud ở trong nhà của bạn mà thôi. Muốn public ra Internet để sử dụng được ở mọi nơi thì bạn cần tiến hành NAT (hay còn fọi là Port Forwarding) trên modem của bạn, đồng thời nếu mạng nhà bạn không có IP WAN tĩnh thì cần phải làm thêm bước cấu hình Dynamic IP cho Raspberry Pi.

Cả 2 việc trên, bạn có thể tham khảo bài viết Cài đặt Dynamic IP cho Raspberry Pi dựa trên nền tảng Afraid DNS hoàn toàn miễn phí. Riêng việc NAT thì phụ thuộc vào từng loại modem khác nhau mà menu truy cập sẽ khác nhau nhưng đều có chung cơ chế. Để OwnCloud hoạt động được bạn cần mở 2 port là 80 và 443.

Ngoài ra, nếu bạn muốn lưu trữ nhiều hơn thì có thể sử dụng USB Flash hoặc ổ cứng cắm ngoài. Hãy xem bài viết Kết nối ổ đĩa cứng vào Raspberry Pi để biết cách gắn thêm dung lượng lưu trữ cho Pi nhé.

Trên đây, chúng tôi đã giới thiệu đến các bạn cách cài đặt OwnCloud để biến Raspberry Pi thành một máy chủ lưu trữ dữ liệu trực tuyến có thể truy xuất ở mọi nơi.

Chúc các bạn thành công và nếu có khó khăn trong quá trình cài đặt, sử dụng OwnCloud hãy liên hệ với chúng tôi ngay nhé.

Raspberry Pi Việt Nam