La nouvelle version 8 d’OwnCloud, le gestionnaire de stockage en ligne et bien plus encore, vient à peine de sortir et j’ai décidé de l’installer sur mon raspberry pi 2 pour m’affranchir de toute la suite de Google. Allez attaquons.

Pour cela je vais prendre la version Debian optimisée pour le raspberry pi 2 que je vous ai présenté hier. Avant faisons un peu le tour des fonctionnalités offertes qui sont disons le impressionnantes :

  • partage de fichiers
  • lecture de musique en ligne grâce au lecteur intégré
  • un agenda,
  • une gestion des contacts
  • la visualisation et l’édition de documents
  • la visualisation et le classement de photos
  • plus de nombreux plug-ins comme la possibilité de connecter vos autres espaces de stockage en ligne, …

Dans ce tutoriel, nous allons voir ensemble comment installer OwnCloud avec Nina pour le serveur web couplé à PHP et mariaDB.

Installation de OwnCloud 8 sur RaspBerry Pi 2

Première étape installons les applications requises :

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

Maintenant, continuons avec l’installation d’ownCloud :

wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2
tar -C /var/www -xvf owncloud-8.0.0.tar.bz2

Maintenant il faut définir www-data comme propriétaire et groupe du répertoire détaré :

sudo chown -R www-data:www-data /var/www/owncloud
sudo mv owncloud /var/www/owncloud

Créons maintenant les certificats SSL (lors des questions, renseignez common avec le votre nom de domaine) :

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

Modifions la configuration du site default :

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.old
sudo vi  /etc/nginx/sites-available/default

Collez-y ceci (remplacer cloud.example.com par votre nom de domaine):

upstream php-handler {
  server 127.0.0.1:9000;
  #server unix:/var/run/php5-fpm.sock;
  }

server {
  listen 80;
  server_name cloud.example.com;
  # enforce https
  return 301 https://$server_name$request_uri;
  }

server {
  listen 443 ssl;
  server_name cloud.example.com;

  ssl_certificate /etc/nginx/cert.pem;
  ssl_certificate_key /etc/nginx/cert.key;

  # Path to the root of your installation
  root /var/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  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;
   }

  }

Modifions aussi la conf de php:

sudo vi /etc/php5/fpm/php.ini

Changer les valeurs des lignes suivantes :

upload_max_filesize = 1000M
post_max_size = 1000M

Ajoutez-y ceci à la fin :

upload_tmp_dir = /media/data
extension = apc.so
apc.enabled = 1
apc.include_once_override = 0
apc.shm_size = 256

Il faut aussi modifier la config de php-fpm :

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

Et changer la ligne suivante :

listen = 127.0.0.1:9000

Maintenant créons la base de données :

mysql -u root -p
CREATE USER "owncloud"@"localhost" IDENTIFIED BY "motdepasse";
CREATE DATABASE owncloud;On donne tous les droits à l’utilisateur sur la base de données :
GRANT ALL PRIVILEGES ON owncloud.* TO "owncloud"@"localhost";
FLUSH PRIVILEGES ;

Vous pouvez maintenant vous connecter sur le site et de renseigner les champs :

Il faudra ensuite renseigner les champs correspondants (user, password, nom de la base de données ..) et de cliquer sur Terminer l’installation.