Owncloud : Différence entre versions
m (Ajout d'un troubleshooting) |
m (add troubleshooting) |
||
| Ligne 274 : | Ligne 274 : | ||
* https://dev.mysql.com/doc/refman/5.6/en/binary-log-setting.html | * https://dev.mysql.com/doc/refman/5.6/en/binary-log-setting.html | ||
* https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html#troubleshooting | * https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html#troubleshooting | ||
| + | |||
| + | === After update to 8.1 an error message appears, that not internet access is available. === | ||
| + | |||
| + | # copy "config/ca-bundle.crt" in the zip of the owncloud server download file | ||
| + | # put it in the "config/" directory of my owncloud instance (for me "/var/www/config" as absolute path) | ||
| + | |||
| + | that's all, afterwards the warning was gone. | ||
| + | |||
| + | Source : | ||
| + | * https://github.com/owncloud/core/issues/17448 | ||
== Procédures == | == Procédures == | ||
Version du 28 septembre 2015 à 09:46
Installation
Prérequis
Database
Owncloud se connecte à une base de donnée ( MySQL, PostgreSQL, SQLite). Dans notre exemple, nous allons utilisé MySQL.
Vous pouvez créer la base de donnée soit avec un outil graphique ou en ligne de commande :
CREATE SCHEMA `ownclouddb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
- ownclouddb : est le nom de la DB
- utf8 : est le type d'encodage de la DB
On crée également un utilisateur spécifique pour la connexion à la base de données.
Serveur Web
Pour installé Owncloud, le serveur qui va l'accueillir à besoin de plusieurs paquets installé apache2 et php5
Owncloud
Installation
On récupère la dernière version de owncloud que l'on va placer dans le répertoire du serveur web
[root@ordi ~]# sudo chown -R www-data:www-data owncloud
Une fois désarchivé, vous devriez avoir accès à owncloud soit via l'adresse IP du serveur http://IP/owncloud ou via le nom DNS que vous aurez configuré comme décrit ici
Configuration
Apache
Nous allons configurer 2 virtual hosts au point de vue apache afin de rediriger toutes les requêtes http vers la version https d'owncloud
cloud.conf
<VirtualHost *:80>
ServerName cloud.domain.be
RedirectMatch ^/$ https://cloud.domain.be/
</VirtualHost>
On active le vhosts :
Il est possible qu'il soit nécessaire d'activer le mode rewrite d'apache sudo a2enmod rewrite
cloud_ssl.conf
<VirtualHost *:443>
ServerName cloud.domain.be
DocumentRoot /var/www/owncloud
#RedirectMatch ^/$ https://cloud.domain.be/owncloud
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/cloud.domain.be.crt
SSLCertificateKeyFile /etc/apache2/ssl/cloud.domain.be.key
SSLCACertificateFile /etc/apache2/ssl/cacert.pem
<Directory /var/www/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
# add any possibly required additional directives here
# e.g. the Satisfy directive (see below for details):
Satisfy Any
</Directory>
ErrorLog /var/log/apache2/error-cloud.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-cloud.log combined
</VirtualHost>
La partie concernant la création des certificats ssl n'est pas vue dans cette documentation.
Reportez-vous à la documentation sur Postfix-tls
On active le vhosts :
PHP
On peut modifier certaines valeurs du fichier /etc/php5/apache2/php.ini afin d'accélerer la vitesse d'affichage de l'interface web :
- Le paramètre realpath_cache_size
; Determines the size of the realpath cache to be used by PHP. This value should ; be increased on systems where PHP opens many files to reflect the quantity of ; the file operations performed. ; http://php.net/realpath-cache-size ;realpath_cache_size = 16k realpath_cache_size = 512k
- Paramètre relatif aux téléchargement de fichiers
; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 1024 M ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20
Administrateur et base de donnée
Une fois arrivé sur la page pour la première fois, vous devez compléter les informations concernant l'utilisateur administrateur et les informations de connexion pour la base de données.
Authentification OpenLDAP
Pour mettre en place l'authentification LDAP, il faut ajouter une application. Pour ce faire, on se rend dans le panneau d'administration
Et on clique sur la croix permettant d’accéder aux applications disponibles.
On choisis LDAP user and group backend et on active l'application
Maintenant, si on retourne dans la panneau d'administration, on retrouve différents champs qui vont nous permettre de configurer l'authentification via LDAP.
On remplit d'abord les infos de connexion au serveur LDAP :
On sélectionne dans la fenêtre suivante, les classes d'objets pour les utilisateurs pouvant se connecter à Owncloud. Cela permet de restreindre éventuellement l'accès à Owncloud aux utilisateurs ne possédant pas ces différentes classes d'objets.
Dans la fenêtre suivante, on spécifie via quel attribut les utilisateurs vont pouvoir se connecter : nom d'utilisateur et/ou adresse email et les champs correspondant dans le LDAP
fail2ban
Pour mettre en place fail2ban pour owncloud, nous allons devoir modifier un peu le code source de Owncloud. Pas de panique, cela n'engendre aucun dysfonctionnement à Owncloud.
Tout d'abord, on va créé un fichier de log spécifique :
On va insérer un code dans la fonction checkPassword du fichier /var/www/owncloud/lib/private/user/database.php, juste avant le “return false”. Ce qui donne ceci :
else {
$today = new DateTime();
date_timezone_set($today, timezone_open('Europe/Paris'));
$IPClient= $_SERVER['REMOTE_ADDR'];
$logAuth = fopen('/var/log/owncloud-fail.log', 'a+');
fputs($logAuth, date_format($today, 'Y/m/d H:i:s') . " Password check failed for: \t" . $
fclose($logAuth);
return false;
}On passe à présent à la création de la prison Fail2ban dans /etc/fail2ban/filter.d/owncloud.conf
#Owncloud jail [Definition] failregex = <HOST>$
On test que la regex match bien. (Effectuez une erreur de login sur l’interface avant)
On ajoute cette prison à la configuration dans /etc/fail2ban/jail.conf
[owncloud] enabled = true port = http,https filter = owncloud logpath = /var/log/owncloud-fail.log maxretry = 3
On redémarre fail2ban pour prendre en compte les nouveaux changements
Il faut quand même garder en tête que les lignes dans le php seront à réécrire à chaque mise à jour de Owncloud.
Envoi de mail
S'il n'y a pas de serveur mail installé sur le même serveur que l'instance OwnCloud, il est nécessaire de préciser un serveur SMTP pour qu'OwnCloud puisse envoyer des emails.
Il nous faut éditer le fichier /var/www/owncloud/config/config.php et rajouter les paramètres suivants :
'mail_smtpmode' => 'smtp', 'mail_smtphost' => 'IP_server', 'mail_smtpport' => 25, 'mail_smtptimeout' => 30,
- mail_smtphost : l'IP ou le nom DNS du serveur SMTP
- mail_smtpport : le numéro de port du serveur SMTP
- mail_smtptimeout : si un scanner de malware ou SPAM tourne sur le serveur SMTP, il est nécessaire d'augmenter le timeout SMTP ( 30s ou 60s ont l'air d’être des valeurs corrects)
Troubleshooting
An unhandled exception has been thrown
Si après une tentative de mise à jour d'Owncloud, vous trouvez le message d'erreur suivant lors du processus : An unhandled exception has been thrown
exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1598 Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'' in /srv/www/owncloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:91
la procédure suivante pourrait résoudre le problème.
Il s'agirait d'une variable global de MySQL a modifié. On se connecte à son serveur MySQL et on rentre la command suivante :
mysql> SET GLOBAL binlog_format = 'MIXED';
Ensuite, sur le serveur Owncloud, dans le dossier owncloud, on rentre les commandes suivantes :
Cette commande, retire le mode maintenance du serveur
Cette commande réalise la mise à jour du serveur
Si tout se passe correctement, vous deviez avoir une sortie console comme ceci :
Turned on maintenance mode Checked database schema update Checked database schema update for apps Updated database Turned off maintenance mode Update successful
Sources :
- https://github.com/owncloud/core/issues/16008
- https://dev.mysql.com/doc/refman/5.5/en/binary-log-setting.html
- https://dev.mysql.com/doc/refman/5.6/en/binary-log-setting.html
- https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html#troubleshooting
After update to 8.1 an error message appears, that not internet access is available.
- copy "config/ca-bundle.crt" in the zip of the owncloud server download file
- put it in the "config/" directory of my owncloud instance (for me "/var/www/config" as absolute path)
that's all, afterwards the warning was gone.
Source :
Procédures
Mise à jour
On se rend dans le dossier du répertoire web
On réalise un backup du dossier
On réalise un backup de la base de donnée
Pour SQLite sqlite3 data/owncloud.db .dump > owncloud-sqlbkp_`date +"%Y%m%d"`.bak Pour PostgreSQL PGPASSWORD="password" pg_dump owncloud -h [server] -U [username] -f owncloud-sqlbkp_`date +"%Y%m%d"`.bak
On supprime tous les dossier sauf le dossier config et data
[root@ordi ~]# ll
[root@ordi ~]# sudo find . -mindepth 1 -maxdepth 1 ! -path ./data ! -path ./config -exec rm -rf {} \;
[root@ordi ~]# ll
On télécharge et désarchive la derniere version
[root@ordi ~]# sudo wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
[root@ordi ~]# sudo tar -xjf owncloud-latest.tar.bz2
[root@ordi ~]# ls owncloud
On remet les droits correct
