PHP Posts

Viritellään OwnCloud

RasPiCloud

 

Tässä merkinnässä valotan hieman kuinka saat viriteltyä RasPi:sta oman henkilökohtaisen pilvipalvelimen. Vaikka olisit tilanteessa, ettet saa nettiyhteytesi kautta pystytettyä julkista palvelinta löytyy omalle pilvipalvelimelle käyttökohteita ei-julkiseen kotiverkkoonkin. Asennamme siis NGINX-palvelinohjelmiston, OwnCloud:n, sekä tarvittavat palikat, jotta kaikki toimisi ongelmitta.

Esivalmistelut

Jos käytössäsi on riittävän kokoinen SD-kortti voit käyttää sitä owncloud:n tallennustilana, mutta kunnollinen ulkoinen levy lienee parempi vaihtoehto. On kuitenkin suotavaa käyttää sellaista ulkoista USB-levyä, jossa on oma virtalähde.

Aja ensin komento: sudo raspi-config jos sitä et ole kertaakaan vielä tehnyt ja valitse vaihtoehdot expand_rootfs ja memory_split  “16” MB ja vastaa Yes kun Raspbian tarjoutuu käynnistymään uudelleen. Aja komennot sudo apt-get update && sudo apt-get upgrade

Asentaminen

Luodaan tarvittavat käyttäjät ja ryhmät komennolla: sudo groupadd www-data ja sudo usermod -a -G www-data www-data

Asennetaan tarvittavat paketit:

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

Luodaan SSL-sertifikaatit (voimassa vuoden)

sudo openssl req $@ -new -x509 -days 365 -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

Konfiguroidaan nginx-palvelin

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

Tyhjennä kokonaisuudessaan tiedoston sisältö, korvaa se alla olevalla ja varmista, että muutat IP-osion kohdalle oman Raspberryn IP-osoitteen, jonka löydät komentamalla päätteessä ifconfig

server {
listen 80;
server_name 192.168.XXX.XXX;
rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}

server {
listen 443 ssl;
server_name 192.168.XXX.XXX;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
root /var/www/owncloud;
index index.php;
client_max_body_size 1000M; # set maximum upload size
fastcgi_buffers 64 4K;
location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}

location / {
try_files $uri $uri/ index.php;
}

location @webdav {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi_params;
}

location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
try_files $script_name = 404;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9000;
}
}

Seuraavaksi asetetaan arvot “upload_max_filesize” ja “post_max_size” arvoon 1000M – PHP.ini tiedostossa komentamalla sudo nano /etc/php5/fpm/php.ini. Vinkkinä mainittakoon, että PHP.ini on suht suuri tiedosto, joten on järkevämpää etsiä yllä mainittuja kohtia nano:ssa painamalla näppäinyhdistelmää CTRL + W. Rivit tulisi näyttää tältä muokkaamisen jälkeen: upload_max_filesize = 1000M
post_max_size = 1000M.

Aivan tiedoston loppuun lisätään rivit:

upload_tmp_dir = /srv/http/owncloud/data
extension = apc.so
apc.enabled = 1
apc.include_once_override = 0
apc.shm_size = 256

Seuraavaksi luodaan tarvittavat hakemistot oikeuksilla:

sudo mkdir -p /srv/http/owncloud/data
sudo chown www-data:www-data /srv/http/owncloud/data

PHP:n konfigurointi

sudo nano /etc/php5/fpm/pool.d/www.conf
Muutetaan rivi: listen = /var/run/php5-fpm.sock mutoon listen = 127.0.0.1:9000

sudo nano /etc/dphys-swapfile
Muutetaan rivi: CONF_SWAPSIZE=100 muotoon CONF_SWAPSIZE=512

Uudelleenkäynnistetään palvelin ja PHP

sudo /etc/init.d/php5-fpm restart
sudo /etc/init.d/nginx restart

OwnCloud-asentaminen

Olemme edenneet vaiheeseen, jossa asennamme owncloud:n. Tätä kirjoittaessa viimeisin versio on 5.0.14a – Kannattaa varmistaa OwnCloud:n sivuilta viimeisin versio ennen latausta. Aja kukin alla oleva komento yksittäin:

sudo mkdir -p /var/www/owncloud
sudo wget http://download.owncloud.org/community/owncloud-5.0.14a.tar.bz2
sudo tar xvf owncloud-5.0.14a.tar.bz2
sudo mv owncloud/ /var/www/
sudo chown -R www-data:www-data /var/www
sudo rm -rf owncloud owncloud-5.0.14a.tar.bz2

Tämän jälkeen OwnCloud-asennus on valmis ja voit yhdistää palvelimelle selaimesi kautta osoitteella: https://192.RAS.PIn.IP/owncloud

Ulkoisen kiintolevyn liittäminen

Liitä ulkoinen levy RasPi:n. Kuten jo alussa mainistin tulisi se olla omalla virtalähteellään varustettu. Komentamalla tail -f /var/log/messages näet aseman tunnisteen järjestelmässä “sda1” tai vastaavava. Luodaan hakemisto jonne asema liitetään, jonka jälkeen asema voidaan liittää ko. hakemistoon. Komennetaan:

sudo apt-get install ntfs-3g
sudo mkdir /media/USBHDD (Nimenä voi olla muukin kuin USBHDD)
sudo mount -t ntfs-3g /dev/sda1 /media/USBHDD

Ulkoisen levyn käyttäminen OwnCloud:ssa

Aluksi pysäytämme palvelimen ja luodaan ulkoiselle levylle data-hakemisto OwnCloud:a varten. Annetaan hakemistolle tarvittavat määreen ja siirretään olemassa oleva data-hakemisto ulkoiselle levylle:

sudo service nginx stop
sudo mkdir /media/USBHDD/OwnCloud5
sudo chown www-data:www-data /media/USBHDD/OwnCloud5
sudo mv /var/www/owncloud/data/ /media/USBHDD/OwnCloud5/

Muokataan OwnCloud:n config-tiedostoa
sudo nano /var/www/owncloud/config/config.php
Muutetaan rivi: ’datadirectory’ => ‘/var/www/owncloud/data’ mutoon ‘datadirectory’ => ‘/media/USBHDD/OwnCloud5/data’

Käynnistetään palvelin komentamalla: sudo service nginx start

Jos törmäät OwnCloud:n kanssa virheilmoitukseen: “This ownCloud server can’t set system locale to en_US.UTF-8/en_US.UTF8. This means that there might be problems with certain characters in file names. We strongly suggest to install the required packages on your system to support en_US.UTF-8/en_US.UTF8.” voi ongelman ratkaista komentamalla päätteessä: dpkg-reconfigure ja valitsemalla listalta en_US.UTF-8. Valinta tehdään välilyönti-näppäimellä.