Transforme a sua Raspberry PI na biblioteca da sua casa digital (Parte 2)
Assume-se que nesta fase do tutorial, o calibre-server já
está instalado na sua RasPI e o calibre (cliente) no seu computador pessoal.
Assume-se igualmente que o cartão de memória da Raspberry PI tem a partição do
filesystem totalmente expandida (caso contrário ver o post: http://aminhacasadigital.blogspot.pt/2013/04/raspbian-wheezy-expandir-particao-para.html).
Possíveis formas de aceder ao terminal da Raspberry PI já
foram abordadas anteriormente, como tal, assume-se que são conhecidas as
possibilidades de o fazer.
Neste tutorial serão abordados os seguintes assuntos:
utilizar um disco externo ou usb stick para servir de storage à sua biblioteca
digital, a instalação de um Web Server na Raspberry PI, a instalação de um
serviço de cloud na Raspberry PI (owncloud - um clone da dropbox) para que
consiga alterar a biblioteca no seu computador e mantê-la sincronizada com a
Raspberry PI; e o início de todos os serviços no boot da Raspberry Pi para que
fiquem sempre activos quando a RasPI sofre reboot.
Instalar um Web Server na Raspberry PI
Para o web
server iremos utilizar o Apache com SSL, PHP 5 e PHP APC (acelerador que fará
com que as páginas carreguem mais rapidamente).
Antes de
instalar qualquer pacote na RasPi convém actualizar a informação dos
repositórios do Raspbian:
$ sudo apt-get update
|
Instalar os pacotes necessários para o
Web-Server
$ sudo apt-get install apache2 php5 php5-json
php5-gd php5-sqlite curl libcurl3 libcurl4-openssl-dev php5-curl php5-gd
php5-cgi php-pear php5-dev build-essential libpcre3-dev php5
libapache2-mod-php5 php-apc
|
Instalar o PHP Apc:
$ sudo pecl install apc
|
Configurar o Web-Server. Precisamos de criar e editar o
ficheiro apc.ini na directoria /etc/php5/cgi/conf.d/ de forma a adicionar o APC ao PHP.
$ sudo nano /etc/php5/cgi/conf.d/apc.ini
|
Neste ficheiro
deverão ser adicionadas as seguintes três linhas. Guardar o ficheiro e sair.
(Guardar = Ctrl + O ; Sair= Ctrl + Z):
extension=apc.so
apc.enabled=1
apc.shm_size=30
Configurar o php de
forma a que seja possível fazer o upload de ficheiros até 1 GB.
$ sudo nano /etc/php5/apache2/php.ini
|
Neste ficheiro
deverão ser alteradas as seguintes entradas:
upload_max_filesize = … para
upload_max_filesize=1024M
post_max_size =... para post_max_size=1024M
Posteriormente é
necessário encontrar a secção das extensões e adicionar a extensão do apc:
extension=apc.so
Após estas
alterações, guardar o ficheiro e sair. Necessitamos agora de configurar o
Apache:
$ sudo nano /etc/apache2/sites-enabled/000-default
|
Neste ficheiro devem
alterar a entrada Allowoverride=None para Allowoverride=All
Configurar o SSL (Secure Sockets Layer):
$ sudo a2enmod rewrite
|
$ sudo a2enmod headers
|
$ sudo openssl genrsa -des3 -out server.key 1024;
sudo openssl rsa -in server.key -out server.key.insecure;sudo openssl req
-new -key server.key -out server.csr;sudo openssl x509 -req -days 365 -in
server.csr -signkey server.key -out server.crt;sudo cp server.crt
/etc/ssl/certs;sudo cp server.key /etc/ssl/private;sudo a2enmod ssl;sudo a2ensite
default-ssl
|
O último comando irá necessitar que coloque alguma informação (e.g. Key ). Após digitar a informação requisitada, reinicie o serviço Apache:
$ sudo service apache2 restart
|
No browser do seu
computador se entrar em http://endereço-de-rede-da-raspberry-pi deverá
encontrar a página default do Apache:
Instalar
o Owncloud na Raspberry PI
Com o Apache e o PHP
instalado e configurado, é necessário agora instalar o Owncloud (clone da
Dropbox) na Raspberry Pi. Este serviço irá permitir que consiga sincronizar
ficheiros ou pastas do seu computador com a RasPi.
Execute o seguinte
comando para efectuar o download do pacote:
$ wget
http://mirrors.owncloud.org/releases/owncloud-4.5.1.tar.bz2
|
Quando finalizado,
deverá fazer o unzip do ficheiro:
$ sudo
tar -xjf owncloud-4.5.1.tar.bz2
|
E copiar para a
directoria Web da RasPi (/var/www):
$ sudo cp -r owncloud /var/www
|
Deverá atribuir a ownership da pasta ao utilizador www-data para que consiga fazer o upload de ficheiros
$ sudo chown -R www-data:www-data
/var/www/owncloud/
|
Deverá também modificar o .htaccess para que este tenha o mesmo valor de upload que definiu anteriormente (1024M). Modifique as entradas necessárias com o seguinte comando:
$ sudo nano /var/www/owncloud/.htaccess
|
Montar o disco
externo ou usbstick na Rasperry Pi para a Cloud
O disco externo irá
servir de armazenamento à Cloud (incluindo a biblioteca de livros para o
Calibre). Criemos a pasta /media/usbstick onde o disco ficará montado.
$
sudo mkdir /media/usbstick
|
Montemos o disco na
pasta /media/usbstick . No meu caso, como é o único disco ligado à PI a
localização do disco é /dev/sda. Caso tenham mais do que um disco conectado, os
caminhos deverão ser /dev/sda1, /dev/sda2 e assim sucessivamente.
Montar o disco no
filesystem da RasPI, pasta /media/usbstick:
$ sudo mount
-t ext4 -o rw /dev/sda /media/usbstick/
|
O
disco não deverá estar formatado em FAT (não tem permissões suficientes para o
comando chown utilizado mais à frente). No meu caso, formatei o disco em ext4.
Seguidamente vamos
criar um grupo de utilizadores chamado owncloudusers e adicionar os
utilizadores pi e www-data. No fim, criaremos a pasta da Cloud no disco externo
e atribuiremos ownership da pasta ao grupo de utilizadores criado.
$
sudo groupadd
owncloudusers
|
$ sudo usermod
-a -G owncloudusers pi
|
$
sudo usermod -a -G
owncloudusers www-data
|
Criar a pasta
owncloud no disco externo:
$
sudo mkdir
/media/usbstick/owncloud
|
Atribuir permissões à
pasta da owncloud e a ownership ao user www-data do grupo owncloudusers:
$ sudo
chmod 770 /media/usbstick/owncloud/
|
$ sudo chown -R www-data:owncloudusers
/media/usbstick/owncloud
|
Configurar o
owncloud na RasPi
Escolha um nome de
utilizador e uma password e coloque a pasta que criou como caminho storage da
Cloud:
Instalar o Owncloud
client no seu computador e ligar à Owncloud criada na RasPI
Está disponível para
Windows, Mac OS ou Linux. Depois de instalado, deverá ser configurado de forma
a “apontar” para a nossa Raspberry PI:
Será criada uma pasta
chamada Owncloud no ambiente de trabalho do computador. Criem uma pasta dentro
desta com um nome à vossa escolha, onde irão armazenar a vossa biblioteca de
livros (no meu caso chamei-lhe bib).
Se entrarem novamente
na Owncloud da vossa RasPI (http://endereço-da-raspi/owncloud) irão
verificar que foi criada uma pasta
chamada “Clientsync”, dentro da qual existe a pasta que criaram, no meu caso a
pasta “bib”.
Será esta a pasta
para onde o Calibre-Server instalado na Raspberry PI irá apontar como a sua
biblioteca. Antes disso, iremos configurar a biblioteca do Calibre do nosso
computador para a pasta /Owncloud/bib do ambiente de trabalho do nosso
computador.
Mudar localização
do Calibre (computador pessoal) para a pasta partilhada
No separador Livros
do programa Calibre, clicar em Mudar/criar biblioteca e seleccionar a pasta que
criamos dentro da pasta Owncloud:
Desta forma, cada
novo livro adicionado ou informação modificada será armazenado na pasta
partilhada com a Raspberry PI, mantendo-se ambas as bibliotecas completamente
sincronizadas. Qualquer alteração no computador...reflecte-se na RasPI.
Iniciar o
Calibre-Server da RasPi na pasta partilhada
Uma vez que a pasta
da biblioteca foi alterada (passou a ser a pasta partilhada) temos de apontar o
calibre-server a essa pasta (
/media/usbstick/owncloud/clientsync/pi/files/bib).
$ sudo calibre-server
--with-library=/media/usbstick/owncloud/pi/files/clientsync/bib --port=9292
--username=pi --password=raspberry --daemonize
|
Montar o disco
externo e iniciar o calibre-server no boot da RasPi
Para permitir que
quer o disco externo quer a biblioteca digital estejam sempre disponíveis, é
necessário montar o disco e iniciar o serviço no boot. Uma forma de o conseguir
é editar o ficheiro /etc/rc.local e colocar os comandos antes de “exit 0”. Este
script é sempre executado como root quando a Raspberry Pi inicia.
Desta forma basta
editar o ficheiro:
$
sudo nano /etc/rc.local
|
E adicionar as seguintes
entradas imediatamente antes da linha “exit 0”
/bin/mount /dev/sda /media/usbstick
calibre-server
--with-library=/media/usbstick/owncloud/pi/files/clientsync/bib --port=9292
--username=pi --password=raspberry --daemonize
Screenshots da biblioteca sincronizada:
Na
cloud:
Na web:
No pc:
Notar que a biblioteca apenas está disponível na
vossa rede doméstica. Se pretenderem aceder fora de casa, devem abrir as portas
necessárias do vosso router apontando para o endereço de rede da vossa pi e
para a porta respectiva (80 no caso do Apache/owncloud e 9292 para a biblioteca
do calibre-server).
Até breve,
Miguel Borges de Freitas
0 Comments: