Installation des ports

OwnCloud est une alternative libre aux solutions propriétaires de stockage en ligne. Le projet propose une interface web permettant de visualiser, partager et d'éditer ses données, et implémente des protocoles standards comme WebDAV (accès au fichiers), CardDAV (accès aux contacts) et CalDAV (calendrier), ce qui permet de le synchroniser avec les OS les plus courants.

Voici la liste des ports à installer et à configurer pour avoir un fonctionnement correct d'OwnCloud sous un environnement FreeBSD, Apache, PHP et Mysql. Les trois principaux :

  • www/apache22
  • lang/php5
  • databases/mysql55-server

Il suffit de se placer dans le dossier, et d'exécuter les commandes (ici pour apache22)

$ cd /usr/ports/www/apache22
$ make install
$ make clean

On installe ensuite les extensions pour PHP. Certaines ne sont pas incluses dans la documentation officielle, venant par défaut avec l'installation de PHP dans la plupart des distributions GNU/Linux (php5-mysql et php5-mysqli ne sont pas nécessaires si vous souhaitez utiliser Sqlite pour la base de données) :

  • databases/php5-sqlite
  • devel/php5-json
  • graphics/php5-gd
  • audio/mp3info
  • ftp/php5-curl
  • archivers/php5-zip
  • databases/php5-mysql
  • databases/php5-mysqli
  • textproc/php5-simplexml
  • textproc/php5-xml
  • textproc/php5-dom
  • security/php5-hashphp5-hash
  • converters/php5-mbstring

Pour certaines, si vous les oubliez, OwnCloud vous indiquera qu'elles manquent lors que vous l'installerez. Lors de l'installation des extensions, le fichier /usr/local/etc/php/extensions.ini sera modifié pour que ces dernières se chargent automatiquement.

Pour qu'Apache et Mysql soient automatiquement lancés lors du démarrage de la machine, il faut ajouter les lignes suivantes à /etc/rc.conf :

apache22_enable="YES"
mysql_enable="YES"

Configuration d'Apache

Le fichier de configuration d'apache est par défaut /usr/local/etc/apache22/httpd.conf. Pour activer PHP, il faut y ajouter :

LoadModule php5_module  libexec/apache22/libphp5.so

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

J'ai choisi d'accéder à OwnCloud par un virtual host, j'ai donc dé-commenté la ligne suivante dans httpd.conf :

Include etc/apache22/extra/httpd-vhosts.conf

et ajouté dans mon fichier Include etc/apache22/extra/httpd-vhosts.conf, mutatis mutandis :

<VirtualHost mondomaine.com>
   DocumentRoot "/usr/local/www/owncloud"
   ServerName mondomaine.com
   ServerAdmin votre.adresse@mail.com
</VirtualHost>

Configuration de Mysql

Lors d'une première installation de Mysql, visitez cette documentation pour la création des premiers droits. J'ai choisi d'avoir un utilisateur owncloud qui possèdera sa propre base éponyme sur laquelle il aura tous les droits :

$ mysql -u root -p
mysql > CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'mot_de_passe';
mysql > CREATE DATABASE owncloud;
mysql > GRANT ALL on owncloud.* TO 'owncloud'@'localhost';

Installation et configuration d'OwnCloud

On télécharge OwnCloud sur le site officiel, on le décompresse, et on copie son contenu dans /usr/local/www :

$ wget http://owncloud.org/go/owncloud-download
$ tar xvzf owncloud-download
$ cp -r owncloud /usr/local/www

Ensuite, on règle les droits utilisateurs afin qu'Apache puisse accéder aux fichiers. Par défaut, les dossiers data et config possédaient les bonnes permissions, mais vérifiez que l'utilisateur www accès à ces dossiers.

$ cd /usr/local/www
$ chown -R www:www owncloud

Il suffit ensuite de finaliser l'installation. Ouvrez votre navigateur web favori pour accéder à OwnCloud.

Créez l'utilisateur que vous utiliserez pour administrer OwnCloud, puis cliquez sur "Avancé" pour choisir le SGBD Mysql, et entrez le nom de l'utilisateur Mysql choisi, son mot de passe, le nom de la base (owncloud dans notre cas), et l'adresse du serveur (localhost si le serveur Mysql est hébergé sur la même machine).

Par défaut, vous ne pourrez certainement uploader que des petits fichiers. Pour changer la limite de taille, il faut éditer le fichier de configuration de PHP /usr/local/etc/php.ini tel que :

file_uploads = On
upload_max_filesize = 512M

Et tout devrait marcher :) .