On ne présente plus Owncloud, qui est une alternative a dropbox, google drive et microsoft onedrive. Voici un peu résumé de l’installation de cette outil sur votre raspberry-pi, vps ou dédié tournant sous Debian avec le serveur Nginx, PHP5-FPM et Mariadb.
Petite nouveauté, vous pouvez retrouver un sondage en bas de page, si vous avez 30 secondes a perdre n’hésitez pas !
Installation
Les pré-requis
- Avoir une machine linux avec Debian ou Raspbian,
- avoir mis en place un serveur web avec PHP,
- une base de données,
- un certificat ssl
Avoir installer les paquets suivants:
sudo apt-get update sudo apt-get install php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick
Récupérer les sources
Je ne parlerai pas de l’installation depuis un paquet Debian car il nous aurait fallut un serveur web apache et non Nginx, je vous laisse faire une recherche sur Google pour trouver la procédure.
Première possibilité
Le tout automatique, oui c’est possible !! mais il faut avoir configurer le virtualhost et la base de données. je l’explique un peu plus bas.
se placer dans le répertoire /var/www/ et lancer la seule et unique commande:
wget -N "https://download.owncloud.com/download/community/setup-owncloud.php"
Il vous est possible de créer un répertoire au préalable, mais ce n’est pas obligé car le setup vous proposera si vous le souhaitez car celui-ci le fera à votre place.
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]
Seconde possibilité
Le faire à la main, mais si c’est facile tout est plutôt bien expliqué la documentation.
L’url pour télécharger se trouve sur cette page.
sudo wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2
Nous avons donc une archive qu’il va falloir extraire:
sudo tar -xjf owncloud-7.0.2.tar.bz2
Voila rien de plus pour le moment.
Troisième possibilité
Nous allons utiliser Git ce qui permet de mettre à jour les sources plus régulièrement. Avez vous Git ?
Non alors un simple:
sudo apt-get update sudo apt-get install git
et utiliser ces commandes pour obtenir le même résultat que l’archive ci-dessus:
sudo git clone -b stable7 https://github.com/owncloud/core.git owncloud sudo git clone -b stable7 https://github.com/owncloud/3rdparty.git owncloud/3rdparty sudo git clone -b stable7 https://github.com/owncloud/documents.git owncloud/apps/documents sudo git clone -b stable7 https://github.com/owncloud/contacts.git owncloud/apps/contacts sudo git clone -b stable7 https://github.com/owncloud/bookmarks.git owncloud/apps/bookmarks sudo git clone -b stable7 https://github.com/owncloud/calendar.git owncloud/apps/calendar sudo git clone -b stable7 https://github.com/owncloud/gallery.git owncloud/apps/gallery sudo git clone -b stable7 https://github.com/owncloud/updater.git owncloud/apps/updater sudo git clone -b stable7 https://github.com/owncloud/apps.git owncloud/apps2 sudo git clone https://github.com/owncloud/news.git owncloud/apps2/news sudo git clone https://github.com/owncloud/maps.git owncloud/apps2/maps sudo git clone https://github.com/owncloud/mozilla_sync.git owncloud/apps2/mozilla_sync sudo git clone https://github.com/owncloud/notes.git owncloud/apps2/notes
nous avons donc les sources de Owncloud dans le répertoire /var/www/ , si vous suivez cette solution ou la se seconde solution il ne reste plus qu’a:
- Créer un répertoire qui contiendra toute les données,
- donner les droits 770 au répertoire data,
- donner les droits d’écriture au groupe,
- changer le user et le groupe de chaque fichier et dossier de Owncloud.
sudo mkdir owncloud/data sudo chmod 770 owncloud/data sudo chmod g+w owncloud/config sudo chown -R www-data:www-data ./
[poll id= »2″]
Mise en place de owncloud sur le serveur
Cette étape est valable pour les 3 solutions décrites ci-dessus.
Virtualhost de Nginx
Toujours sur la même page d’instruction d’installation l’équipe de Owncloud nous mets à disposition la configuration d’un virtualhost pour Nginx:
upstream php-handler { server 127.0.0.1:9000; #server unix:/var/run/php5-fpm.sock; } server { listen 80; server_name cloud.example.com; return 301 https://$server_name$request_uri; # enforce https } server { listen 443 ssl; server_name cloud.example.com; ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key; # Path to the root of your installation root /var/www/; client_max_body_size 10G; # set max upload size 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; } }
On pense au lien symbolique:
sudo ln -s /etc/nginx/sites-available/cloud.example.com /etc/nginx/sites-enabled/cloud.example.com
PHP
Nous allons faire une petite du php.ini pour autoriser l’upload de gros gros fichiers sur notre cloud.
Les paramètres à modifier sont:
allow_url_fopen = on allow_url_include = on memory_limit = 2048M post_max_size = 20000M upload_max_filesize = 20000M max_input_time = -1 max_execution_time = 0
La base de données
nous allons créer une base, un utilisateur, lui affecter tous les droits sur cette base et recharger les privilèges.
CREATE DATABASE example_cloud; CREATE USER 'user_examplecloud'@'localhost' IDENTIFIED BY 'fdsfedserez54r4ezr7ez'; GRANT ALL PRIVILEGES ON example_cloud.* TO 'user_examplecloud'@'localhost'; FLUSH PRIVILEGES;
La fin de l’installation
Cette partie est commune a toutes les solutions présentées ci-dessus.
Bienvenue sur votre nuage
Configuration
Le cron
un petit :
sudo crontab -e
# minute heure jour mois jour de la semaine # +---------minute (0-59) # | +-------heure (0-23) # | | +-----jour du mois (1-31) # | | | +---mois (1-12) # | | | | +-jour de la semaine (0-7) sunday=0 or 7 # | | | | | # - - - - - # m h d m d # */5 * * * * /usr/bin/php /var/www/owncloud/cron.php
Les mails
J’ai eu ce message d’erreur lorsque j’ai essayé de m’envoyer un mail pour vérifier que tout fonctionne:
Could not instantiate mail function.
Deux jours pour trouver la solution !!! Et ça vient d’une petite bêtise.
En effet lors de l’install de Nginx avec PHP-FPM je n’avais pas renseigné dans le php.ini le smtp, du coup j’ai tenté les différentes possibilités dans Owncloud pour l’envoie de mail (mail fonction PHP, Sendmail et SMTP).
Le truc c’est qu’Owncloud a gardé dans le config.php des valeurs !! Donc même après avoir le php.ini j’avais l’erreur. la solution a été de virer tout ce qui touchait à la config du mail dans le fichier config/config.php.
Voila voila, il ne reste plus qu’a vous amusez, ne vous inquiétez pas d’ici peu il y aura de nouveaux articles sur Owncloud.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]
merci et sympa comme tuto car pas commun. j’avais essayé entre iphone et owncloud sur xpenology mais j’ai super galéré et suis alors parti vers synobox/dropbox dommage car owncloud me paraissait plus sécurisé et directement chez moi.
aujourdhui sous android, je devrais peut etre retenter mais synobox est tellement facile d’accès … ^^
Je ferais un tuto prochainement pas avec un syno avec une distrib tu verras …
J ai hate. Merci
merci et sympa comme tuto car pas commun. j’avais essayé entre iphone et owncloud sur xpenology mais j’ai super galéré et suis alors parti vers synobox/dropbox dommage car owncloud me paraissait plus sécurisé et directement chez moi.
aujourdhui sous android, je devrais peut etre retenter mais synobox est tellement facile d’accès … ^^
Je ferais un tuto prochainement pas avec un syno avec une distrib tu verras …
J ai hate. Merci
Merci pour cet excellent tutoriel cependant une question car je ne trouve pas la solution….
Je suis sous Nginx et comment résoudre :
Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l’extérieur de la racine du serveur web.
Cordialement,
Merci, je ne suis pas sur d’avoir tout compris.
sur Nginx il n’y a pas de .htaccess, ce fichier est destiné au serveur Apache.
Et en gros si j’essaie de traduire, je pense qu’ils veulent que tu déplaces le répertoire data hors de l’environnement web.
Bonjour,
vu que rien n’est expliqué, difficile de savoir ce qu’il faut faire….
Cependant, une joli page blanche au réveil…..
Yo !
Si tu as bien la définition de ce bloc « location » dans la config d’nginx normalement ça craint rien (il est inclut dans la conf nginx proposée par owncloud) :
location ~ ^/(data|config|.ht|db_structure.xml|README) {
deny all;
}
Avec apache je suppose que c’est un .htaccess généré par owncloud qui empêche l’accès a /data, le problème c’est que pour nginx il faut le définir dans la conf du vhost or owncloud n’a aucun contrôle dessus. Du coup ils te préviennent que tu exposes potentiellement ton dossier data/ (en sachant que si tu utilises leur config pour nginx ça craint rien). Le mieux ça reste tout de même de suivre leur conseil et celui de Djo en le déplaçant hors du webroot.
Exactement, Jul, mais je ne sais pas si c’est que Owned cherche comme réponse.
Ce qui est sur c’est que dans la config Nginx que j’ai mis dans l’article le répertoire data est inaccessible.
Yo, sauf que la documentation est HS ayant eu un support de leur pars lol
J’ai du refait le vhost…
Tout fonctionne bien, j’ai déplacé le répertoire data pour finir.
Juste les applications qui bugs, celles qu’on veut activer, aucune ne fonctionne à partir du pannel chez moi…. J’ai refait 5 fois l’installation et toujours pareil donc ? 😡
Merci pour cet excellent tutoriel cependant une question car je ne trouve pas la solution….
Je suis sous Nginx et comment résoudre :
Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l’extérieur de la racine du serveur web.
Cordialement,
Merci, je ne suis pas sur d’avoir tout compris.
sur Nginx il n’y a pas de .htaccess, ce fichier est destiné au serveur Apache.
Et en gros si j’essaie de traduire, je pense qu’ils veulent que tu déplaces le répertoire data hors de l’environnement web.
Bonjour,
vu que rien n’est expliqué, difficile de savoir ce qu’il faut faire….
Cependant, une joli page blanche au réveil…..
Yo !
Si tu as bien la définition de ce bloc « location » dans la config d’nginx normalement ça craint rien (il est inclut dans la conf nginx proposée par owncloud) :
location ~ ^/(data|config|.ht|db_structure.xml|README) {
deny all;
}
Avec apache je suppose que c’est un .htaccess généré par owncloud qui empêche l’accès a /data, le problème c’est que pour nginx il faut le définir dans la conf du vhost or owncloud n’a aucun contrôle dessus. Du coup ils te préviennent que tu exposes potentiellement ton dossier data/ (en sachant que si tu utilises leur config pour nginx ça craint rien). Le mieux ça reste tout de même de suivre leur conseil et celui de Djo en le déplaçant hors du webroot.
Exactement, Jul, mais je ne sais pas si c’est que Owned cherche comme réponse.
Ce qui est sur c’est que dans la config Nginx que j’ai mis dans l’article le répertoire data est inaccessible.
Yo, sauf que la documentation est HS ayant eu un support de leur pars lol
J’ai du refait le vhost…
Tout fonctionne bien, j’ai déplacé le répertoire data pour finir.
Juste les applications qui bugs, celles qu’on veut activer, aucune ne fonctionne à partir du pannel chez moi…. J’ai refait 5 fois l’installation et toujours pareil donc ? 😡