SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub


Raspberry Pi ma ogromną liczbę zastosowań - od prostych serwerów druku, po centra multimedialne z funkcją Ambilight. Dzisiaj przekształcimy nasze "pi" w malinową chmurę z wykorzystaniem projektu ownCloud. Własna chmura jest znacznie ciekawszą formą dla osób, którym podoba się idea przetrzymywania danych w chmurze, ale nie mają zaufania do firm, które będą trzymać pieczę nad naszymi plikami.

Przygotowanie systemu operacyjnego

Aby przygotować naszą chmurkę, rozpoczniemy od instalacji systemu operacyjnego na karcie SD. Wykorzystamy do tego celu dystrybucję Raspbian “wheezy”. Podczas nagrywania obrazu na kartę SD należy dokładnie upewnić się, że nadpisujemy odpowiedni dysk.

  1. wget http://downloads.raspberrypi.org/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip
  2. unzip 2013-02-09-wheezy-raspbian.zip
  3. sudo dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdX

Po nagraniu karty możemy przystąpić do uruchomienia "maliny". Jeśli korzystamy z podłączonego kabla HDMI, po pierwszym uruchomieniu powita nas ekran konfiguracji. Możemy również zalogować się do Raspberry Pi za pomocą SSH i wykonać polecenie:

  1. sudo raspi-config

Zanim zaczniemy konfigurację, wybierzmy opcję "update", która zaktualizuje nam narzędzie konfiguracyjne.

Zacznijmy od opcji "expand_rootfs", która zmieni rozmiar partycji systemowej do maksymalnego, dopuszczalnego rozmiaru katy SD.

Możemy również zmienić lokalizację językową (change_locale) - naszym wyborem będzie oczywiście pl_PL.UTF-8 UTF-8. Jeśli wybierzemy więcej lokalizacji, konfigurator zapyta nas o domyślne ustawienie - wybieramy pl_PL.UTF-8. Ustawmy również prawidłową strefę czasową (change_timezone) np.: Europe/Warsaw.

Ponieważ nie będziemy korzystać ze środowiska graficznego, zmieńmy podział pamięci, przydzielając grafice absolutne minimum 16MB za pomocą opcji "memory_split" oraz wyłączmy bootowanie do pulpitu za pomocą "boot_behaviour"

Na zakończenie, nie zapomnij zmienić domyślnego hasła na własne za pomocą opcji "change_pass". Wybieramy "Finish" i zgadzamy się na restart.

Instalacja wymaganych pakietów

Standardowo zacznijmy od aktualizacji wydając polecenie:

  1. sudo apt-get update

ownCloud działa pod kontrolą Apache i PHP 5 - zainstalujmy więc wymagane oprogramowanie i biblioteki. Zainstalujemy również SSL, które pozwoli nam na szyfrowane połączenia oraz dodamy obsługę APC PHP, które znacznie poprawi prędkość ładowanych strony.

  1. sudo apt-get install libpcre3-dev curl libcurl3 libcurl4-openssl-dev apache2 libapache2-mod-php5 php5 php5-cgi php5-curl php5-gd php5-common php5-sqlite php5-dev php-xml-parser php5-intl php-pear php-apc

Instalacja APC

APC jest wydajnym kompilatorem kodu PHP z zapisywaniem opcode w pamięci, ograniczając operacje I/O na dysku - co przekłada się w znacznym stopniu na odciążeniu sprzętu. Włączenie APC może przyspieszyć aplikację w zależności od warunków od 40% do 300%.

  1. sudo pecl install apc

Instalator PECL zapyta nas o wstępną konfigurację:

  1. Enable internal debugging in APC [no] : no
  2. Enable per request file info about files used from the APC cache [no] : no
  3. Enable spin locks (EXPERIMENTAL) [no] : no
  4. Enable memory protection (EXPERIMENTAL) [no] : no
  5. Enable pthread mutexes (default) [no] : yes
  6. Enable pthread read/write locks (EXPERIMENTAL) [yes] : no

Zajmijmy się teraz dodatkową konfiguracją APC, czyli ustawieniem limitu pamięci na 48 MB:

  1. sudo nano /etc/php5/cgi/conf.d/apc.ini

i dodajemy:

  1. extension=apc.so
  2. apc.enabled=1
  3. apc.shm_size=48M

Konfiguracja Apache i PHP

Świeża instalacja PHP pozwala na wgrywanie plików nie przekraczających rozmiaru 2MB. Aby umożliwić sobie wgrywanie większych plików, wyszukajmy ustawiania upload_max_filesize oraz  post_max_size i ustawmy wartości na 512MB.

  1. sudo nano /etc/php5/apache2/php.ini
  1. upload_max_filesize=512M
  2. post_max_size=512M

W sekcji "Dynamic Extensions" dodajmy zaś rozszerzenie APC:

  1. extension=apc.so

Zmieniamy wszystkie wyrażenia AllowOverride None na  AllowOverride All:

  1. sudo sed 's/AllowOverride None/AllowOverride All/' -i /etc/apache2/sites-enabled/000-default

Włączmy jeszcze moduły rewrite i headers:

  1. sudo a2enmod rewrite
  2. sudo a2enmod headers

Konfiguracja SSL

Aby umożliwić łączenie się z naszą chmurą poprzez protokół https, włączamy odpowiednie moduły i restartujemy serwer Apache:

  1. sudo a2enmod ssl
  2. sudo a2ensite default-ssl
  3. sudo service apache2 restart

Jeśli zmieniliśmy nazwę hosta w /etc/hosts należy wygenerować nowy certyfikat. Oczywiście, można zrobić to na piechotkę, ale my zrobimy to tak:

  1. make-ssl-cert generate-default-snakeoil --force-overwrite

Instalacja ownCloud

Pomimo tego, że jest już dostępna piąta wersja ownCloud, my skorzystamy z gałęzi 4.5. Nowsza wersja oferuje zupełnie nowe możliwości, jednak nowości rządzą się swoimi prawami i trzeba dać im trochę czasu, zanim dojrzeją i się ustabilizują.

  1. wget http://download.owncloud.org/community/owncloud-4.5.8.tar.bz2
  2. sudo tar -xjf owncloud-4.5.8.tar.bz2 -C /var/www --strip 1
  3. sudo mkdir /var/www/data
  4. sudo chown -R www-data:www-data /var/www/dara

I właściwie tyle... możemy już korzystać z naszej własnej chmurki

Komentarze Komentarze
Avatar 1
Kuba Linux / Opera 9.80
14 March 2013 - 23:50 Brak informacji

A ja się zastanawiam, ile taka własna chmura kosztuje? I bardziej interesuje mnie zużycie prądu niż początkowa inwestycja, chociaż najciekawsze byłoby całkowite zestawienie. Mógłbyś przygotować, powiedzmy, roczny koszt własnej chmury? :)

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 19.0
19 March 2013 - 00:09 Bytom

W moim przypadku.

Koszta początkowe:
RPi B: 180zł
Zasilka: - 30zł
Dysk 1TB: - 300zł
--------------------
510zł

Koszta miesięczne:
Prąd: ~3zł
Internet 50Mbiy: 80zł
---------------------
83zł.

Na start trochę dużo. Ale potem z górki

Avatar 1
StGreg Windows 7 / Safari 537.22
19 March 2013 - 23:53 Katowice

Ten Internet 50Mbit to łącze symetryczne czy nie? W zasadzie do chmury częściej się coś wysyła niż z niej pobiera no ale czasem pobrać dużą ilość danych też trzeba dlatego ciekawi mnie te łącze.
Miło by było jakbyś powiedział jak wygląda rozłożenie - ile mniej więcej GB ładujesz do chmury a ile z niej pobierasz.

Aha, istnieje jakieś oprogramowanie klienckie, które po zainstalowaniu na laptopach/smartfonach samo by synchronizowało nasze pliki z naszą własną chmurką?

Avatar 2
Korneliusz Linux / Mozilla Firefox 19.0
20 March 2013 - 08:49 Katowice

Niby jest. Czasem jest 50/50, a czasem 30/15. Z chmury korzystam średnio, ale jest nieoceniona z dostępem do ważnych plików w domu / pracy / na wyjeździe. Z oprogramowaniem nie ma większego problemu - https://owncloud.org/sync-clients/

Można również zamontować jako dysk przez WebDav: http://doc.owncloud.org/server/5.0/user_manual/files/files.html

Avatar 1
brii Linux x86_64 / Mozilla Firefox 19.0
16 March 2013 - 11:44 Brak informacji

Prąd dla Pi to do 30,00zł rocznie.