===== Configuration de seafile avec apache ====== {{:stockage:seafile:seafile_logo.png?nolink90 |}} une des choses qui peut vous ennuyez avec Seafile, ce sont les ports, en effet entre le port 8000 pour le serveur web (Seahub) et le port 8082 pour le serveur de fichier cela peut-être assez facile de se tromper entre les ports. \\ Ce que je vous propose aujourd'hui, est d'utiliser Apache, peut-être le serveur web le plus utilisé aujourd'hui (cela va déplaire à ceux qui utilise nginx ;-)), donc nous allons activer les FastCGI d'Apache et pour le serveur de fichier nous allons mettre en place un proxy inversé, comme cela fini avec l'embrouille des ports 8000 et 8082 seul le port 80 (voir 443) sera utilisé. ~~READMORE~~ A ce niveau de l'article, je suppose que vous avez Apache et seafile d'installé, dans cette article je suis sur un serveur type Debian \\ [[stockage:seafile:installation_d_un_service_de_stockage_en_ligne|Si, Seafile n'est pas installé]] ==== Avant de commencer ==== Bon votre serveur Apache est installé vous devrez installer le module fastCGI et un package python pour implémenter l'interface de passerelle du serveur Web Python, voici les packages dont vous aurez besoin : \\ Toujours sur Debian ou équivalent : apt-get install libapache2-mod-fastcgi python-flup Cela installé, vous pouvez activer les modules Apache a2enmod rewrite a2enmod proxy_fcgi a2enmod proxy_http a2enmod fastcgi ==== Seafile en HTTP ==== Il vous faudra créer votre hôte virtuel, pour cela nous allons éditer un fichier de configuration dans le répertoire ''/etc/apache2/sites-available'', je l'appel ''seafile.conf'' ServerName www.mydomain.com DocumentRoot /var/www/html Alias /media /opt/seafile/seafile-server-latest/seahub/media Require all granted RewriteEngine On FastCGIExternalServer /var/www/html/seahub.fcgi -host 127.0.0.1:8000 FastCGIExternalServer /Var/www/html/seafdav.fcgi -host 127.0.0.1:8082 # # seafile fileserver # ProxyPass /seafhttp http://127.0.0.1:8082 ProxyPassReverse /seafhttp http://127.0.0.1:8082 RewriteRule ^/seafhttp - [QSA,L] # # Sync webdav # RewriteConf %{HTTP:Authorization} (.+) RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L,e=HTTP_AUTHORIZATION:%1] RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L] # # Seahub # RewriteRule ^/(media.*)$ /$1 [QSA,L,PT] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*/\.well-known/acme-challenge/.*) RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] ErrorLog ${APACHE_LOG_DIR}/seafile-error.log CustomLog ${APACHE_LOG_DIR}/seafile-access.log combined Activez votre hôte virtuel : a2ensite seafile.conf Rechargez votre configuration d'Apache : /etc/init.d/apache2 reload ==== Seafile en HTTPS ==== Avant de commencer, il faudra installer le package ''openssl'' : apt-get install openssl Je donne l'étape de création d'un certificat auto-signé, mais vous pouvez utiliser aussi let's encrypt : openssl genrsa -out privkey.pem 2048 openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 Il faudra activer le module SSL d'apache : a2enmod ssl Il faudra créer un nouvel hôte virtuel dans ''/etc/apache2/sites-available'', je l'appel ''seafile-ssl.conf'' ServerName www.mydomain.com DocumentRoot /var/www/html Alias /media /opt/seafile/seafile-server-latest/seahub/media Require all granted RewriteEngine On # # seafile fileserver # ProxyPass /seafhttp http://127.0.0.1:8082 ProxyPassReverse /seafhttp http://127.0.0.1:8082 RewriteRule ^/seafhttp - [QSA,L] # # Sync webdav # RewriteConf %{HTTP:Authorization} (.+) RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L,e=HTTP_AUTHORIZATION:%1] RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L] # # Seahub # RewriteRule ^/(media.*)$ /$1 [QSA,L,PT] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*/\.well-known/acme-challenge/.*) RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] SSLEngine on SSLCertificateFile /chemin/vers/votre/cacert.pem SSLCertificateKeyFile /chemin/vers/votre/privkey.pem ErrorLog ${APACHE_LOG_DIR}/seafile-error.log CustomLog ${APACHE_LOG_DIR}/seafile-access.log combined Activez votre hôte virtuel : a2ensite seafile.conf Rechargez votre configuration d'Apache : /etc/init.d/apache2 reload Voici, 2 lignes pour rediriger proprement vos utilisateurs vers la version ssl de seafile, ces lignes doivent être intégrés dans le fichier de configuration de votre hôte virtuel qui n'a pas ssl d'activer, dans mon cas c'est ''seafile.conf'': RewriteCond %{HTTPS} off RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=301]