[Tuto] ownCloud 9 / 9.1 / NextCloud 10 sur un mutualisé OVH

owncloud 20 avr. 2016

ownCloud 9 est sorti depuis quelques temps, la v9.0.1 est dispo à la date à laquelle je rédige… Tout va bien dans le meilleur des mondes. Ou pas.

Concrètement, la stack web des mutualisés OVH est toujours aussi daubée, sinon davantage. J’ai fait remonter un certain nombre de soucis, par vagues, entre il y a 1 an et demie et il y a 2-3 mois, la réponse étant toujours la même : « ça arrive ». J’en suis à ma 14e semelle usée à taper du pied devant mes logs d’erreurs.

 

Bref, voyons ce qu’on peut faire cette nouvelle mouture d’ownCloud !

 

 

Pré-requis

On ne va pas refaire le monde, je vous conseille évidemment d’utiliser au moins PHP 5.6, voire la version 7. Pour ça, passez par le fichier .ovhconfig ou, plus simple, par votre Manager OVH. Attention, passer « comme ça » à PHP7 risque de « casser » quelques-unes de vos applications (par exemple, mon Pydio n’a pas apprécié la blague). Mais en 5.6, tout va bien pour le moment !

Je vous conseille également d’utiliser MySQL et pas SQLite, si vous avez pas mal de fichiers et/ou de comptes, sinon, bonjour les dégâts et la base corrompue à mort (testé et désapprouvé).

Oh, et de mon côté, après de multiples tentatives de mise à jour depuis la 8.2.3 (et autant d’échecs), je me suis résigné à faire une installation propre. À vous de voir, mais faites une sauvegarde avant de tenter ! 😉

 

As usual, il vous faut donc simplement un client FTP et l’archive d’installation officielle. Vous pouvez aussi utiliser le script d’installation pour mutualisés, mais en essayant j’ai eu plusieurs erreurs bizarres, donc je préfère faire sans, même si c’est un poil plus long…

 

Capture du 2016-04-20 11:04:21

 

Étape 1 : installation

Dorénavant, plus de modifications de .htaccess pour pouvoir installer quoi que ce soit : téléversez l’archive extraite via FileZilla (par exemple), pointez votre navigateur web vers la page d’installation, et suivez les instructions. C’est tout bon ! Vous pouvez vous y connecter et activer d’autres applications fournies (Agenda, Contacts, Documents…), tout ça tout ça.

Sauf que… vous accédez probablement à ownCloud via HTTP. C’est mal. Et que si vous allez dans la partie Administration… C’est blindé d’erreurs de partout. Ah ça oui c’est utilisable, mais crade. Encore une fois, parce que le serveur web OVH est mal configuré et ne supporte pas les instructions demandées par ownCloud.

 

Étape 2 : se débarrasser des erreurs

Étape 2a : les headers

Pour cela, ouvrez le fichier .htaccess et repérez le pavé qui cause des headers.

Modifiez chaque ligne commençant par Header set en Header always set, et ajoutez la ligne au bloc en question :

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

 

Étape 2b : forcer HTTPS

Toujours dans le .htaccess, dans le bloc qui parle des RewriteRules, ajoutez :

RewriteCond %{HTTPS} off et RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Ces lignes indiquent que si on accède au sous-domaine concerné via HTTP seulement, alors on renvoie un code 301 (redirection) et on redirige sur la même URL, mais avec un HTTPS devant. Voilà. Erreur de certificat invalide comme depuis toujours, mais on vit avec…

 

Étape 2c : activer le cache

Modifiez le fichier config/config.php et ajoutez la ligne :

'memcache.local' => '\\OC\\Memcache\\ArrayCache',

Puis rechargez la page d’administration, et c’est tout bon.

 

Étape 2e : la vérification de code

Puisque nous avons modifié des fichiers propres à ownCloud, et que depuis quelques temps maintenant un mécanisme vérifie que l’empreinte du fichier en place correspond bien à l’empreinte du fichier fourni par ownCloud, il paraît logique que ce mécanisme puisse détecter nos modifications et nous en avertir (c’est le but, à la base). Deux options : vivre avec ce bandeau jaune (visible seulement par les administrateurs), ou désactiver la vérification (pas super recommandé, mais ça dépanne).

Dans ce 2e cas, il vous faut ouvrir le fichier config/config.php et ajouter : 'integrity.check.disabled' => true puis relancer la vérification d’intégrité. Le message va disparaître.

 

Étapes restantes…

Restent 2 « soucis » : une erreur concernant la configuration de php-fpm, côté serveur donc, pour laquelle je ne sais pas s’il est possible de faire quelque chose sans passer par OVH. Enfin, l’espace disponible n’est pas renvoyé, même avec ma manip’ « habituelle » : il faut creuser là-dessus ! Rien de bloquant pour le moment, sauf certaines extensions comme celle pour les « gros fichiers » de Thunderbird qui vérifient l’espace disponible… et illimité ne lui convient pas 😛

Si vous avez des idées, je prends ! Au passage, merci aux lecteurs qui ont filé un coup de main pour dépatouiller ça depuis quelques mois, via les commentaires de l’article pour ownCloud 7/8 <3

 

 

 

Étape 3 : installer le client sans péter sa synchro

Ça parait couillon dit comme ça, hein. Et pourtant…

Techniquement, l’équipe de développement d’ownCloud a décidé que les gros fichiers devaient être découpés en morceaux de 10Mo. Ça se défend, je ne le remet pas en cause. Simplement, sur nos connexion ADSL classiques, ça prend un peu de temps à envoyer, des bouts de 10Mo. Conséquence : le serveur MySQL d’OVH, qui attend les infos sur le fichier tout au long du process, finit par se lasser et fermer la connexion… entraînant l’arrêt de la synchronisation dudit fichier, et une erreur type « MySQL has gone away ». Encore une fois, « on y travaille »… ou pas ? J’ai ces erreurs depuis (au moins) l’été dernier.

J’ai donc décidé, pour régler le problème côté client, de découper mes « gros » fichiers en morceaux de 1Mo. Plus petit, donc plus rapide à envoyer, donc de multiples connexions à MySQL mais d’une durée plus courte. Et ça passe.

 

Pour ça, sous Linux, c’est simple, ajoutez à vos variables d’environnement la suivante : export OWNCLOUD_CHUNK_SIZE=1000000 . Concrètement, vous pouvez soit l’ajouter à votre propre fichier .profile (situé à la racine de votre dossier personnel, ce qui n’affectera que votre utilisateur), soit la propager à tout le système en l’ajoutant au fichier /etc/profile (il vous faudra les droits superutilisateur, dans ce cas).

 

Redémarrez, installez le client en suivant les instructions officielles, connectez votre compte et laissez la magie faire son boulot ! 😀

Mots clés