Jako, że udało mi się zmienić prędkość internetu na taką, która posiada już jakiś w miarę sensowny upload, postanowiłem w końcu zająć się własną chmurą na pliki. Jako, że wstępnie miałem już postawiony serwer www w postaci nginx oraz bazę danych, więc tego nie będę opisywał. No to bierzemy się do roboty.
Zaczynamy od pobrania potrzebnej paczki
wget http://download.owncloud.org/community/owncloud-7.0.2.tar.bz2
Rozpakowujemy
sudo tar -xjf owncloud-7.0.2.tar.bz2
Kopiujemy katalog do naszego katalogu głównego, w którym trzymamy swoje strony www, w moim przypadku
sudo cp -r owncloud /var/www
Ustawiamy odpowiedniego właściciela dla katalogu
sudo chown -R www-data:www-data /var/www/owncloud/
Pora na edycję kilka plików, zaczynamy od .htaccess i edytujemy w nim kilka linijek. Wielkość plików musi być taka sama jak konfigu php
sudo nano /var/www/owncloud/.htaccess
php_value upload_max_filesize 2000M
– ustawiamy maksymalny rozmiar pliku
php_value post_max_size 2000M
– j/w
sudo mcedit /etc/php5/fpm/php.ini
upload_max_filesize = 2000M
post_max_size = 2000M
Następnie dodajemy wpis do naszego configa nginx
server {
listen 80;
server_name cloud.mati-ck.pl www.cloud.mati-ck.pl;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl;
server_name cloud.mati-ck.pl;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
root /var/www/owncloud;
index index.html index.htm index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_read_timeout 240;
fastcgi_param HTTPS on;
include fastcgi_params;
}
}
Przy okazji, aby nie okazało się że nginx nam coś mieszka w przesyłaniu plików zmienimy sobie linijkę
client_max_body_size 2000M;
Z racji tego, że będziemy korzystać z https wypadałoby wygenerować własny certyfikat
sudo apt-get install openssl
sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key
sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key
Resetujemy nginx oraz php
sudo /etc/init.d/php5-fpm restart
sudo service nginx restart
Jeżeli tak jak ja, macie zamiar trzymać swoje pliki na dysku zewnętrznym, a dopiero teraz planujecie podłączyć do rpi, wypadałoby dodać odpowiedni wpis do fstab
/dev/sda1 /media/dysk ntfs-3g auto,users,permissions 0 0
następnie tworzymy na dysku katalog i nadajemy mu odpowiednie uprawnienia
mkdir /media/dysk/owncloud
sudo chown -R www-data:www-data /media/dysk/owncloud/
sudo chmod 770 /media/dysk/owncloud
Teraz pozostaje nam tylko przejść na stronę naszej chmurki, tj www.chmura.twój-serwer.pl oraz wypełnić wymagane dane.
Zalecane jest żeby dla każdej tworzonej bazy danych, wcześniej został utworzony użytkownik z uprawnieniami tylko do tej jednej bazy. Można to zrobić za pomocą konsoli, albo phpmyadmin.
W następnym poście opiszę jak szybko skonfigurować telefon, żeby automatycznie synchronizował katalogi, które chcemy z naszą chmurą.
2 thoughts on “Własna chmura plików na malinie, czyli raspberry pi + owncloud + nginx”
Nice, a jak z wydajnością maliny przy dużych plikach?
Kiepsko, praktycznie wszystko staje. Niestety procesor nie daje rady. Jak wykonujesz tylko jedną czynność jest ok, ale nie daj boże chciałbyś jeszcze bloga otworzyć itp to trzeba się uzbroić w cierpliwość.