Configurer un serveur NextCloud
Yo ! Si tu as envie d’accéder a tes données à distance, d’avoir une jolie interface toute belle compatible avec l’application IOS/Android ? This is the good place !
Le tutoriel ayant été mis à jours, il sera disponible pour Debian 8 / Nextcloud 13 et pour Debian 9 / Nextcloud 16
Debian 8 - Nextcloud13
Installation
Installer les paquets
apt-get update ; apt-get install apache2 mysql-server libapache2-mod-php5 unzip
Installer les modules PHP
apt-get install php5 php5-curl php5-gd php5-tidy php5-mysql php5-intl php5-mcrypt php5-imagick php-xml-parser
Configurer la base MySQL pour Nextcloud
mysql -u root -p #Connexion a mysql
create database nextcloud; #Création de la base de donnée nextcloud
create user "nextcloud"@"localhost" identified by 'votremotdepasse'; #Création de l’utilisateur pour la base nextcloud
grant all on nextcloud.* to "nextcloud"@"localhost"; #Attribution des droits sur la base nextcloud pour l’utilisateur nextcloud
exit
Télécharger les fichiers nextcloud
wget -P /tmp/ https://download.nextcloud.com/server/releases/nextcloud-13.zip
unzip /tmp/nextcloud-13.zip -d /var/www/
Donnez les droits à apache sur nextcloud
chown -R www-data.www-data /var/www/nextcloud
Configuration d’Apache
Créer le vhost nextcloud
$vi /etc/apache2/site-available/nextcloud.conf
<VirtualHost *:80>
ServerName Votreserveur.domain
DocumentRoot /var/www/nextcloud/
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
Activer votre site nextcloud
a2ensite nextcloud
systemctl restart apache2
Connectez vous à votre serveur via https
https://votreserveur.domain/nextcloud
Remplissez la configuration en suivant la configuration de MySQL faite précédemment
Le compte administrateur concerne celui de l’interface web. Nommez le à votre guise !
Et voilà un joli cloud tout beau tout neuf !
Debian 9 - Nextcloud 16
Installation
Installer les paquets LAMP
apt-get update && apt-get install apache2 mariadb-server
Installer les modules PHP 7.3 (Ou 7.2)
apt-get install libapache2-mod-php7.3 php7.3 php7.3-gd php7.3-json php7.3-mysql php7.3-curl php7.3-mbstring php7.3-intl php-imagick php7.3-xml php7.3-zip wget unzip
Configurer mariadb
mysql_secure_installation
#Supprimez l'utilisateur anonyme
#Supprimez le login root a distance
#Supprimez la BDD test
#Recharger la table de privileges
mysql -u root -p
create database nextcloud;
create user "nextcloud"@"localhost" identified by 'votremotdepasse';
grant all on nextcloud.* to "nextcloud"@"localhost";
flush privileges;
Téléchargez Nextcloud
wget -P /tmp/ https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
unzip /tmp/nextcloud-16.0.1.zip -d /var/www/
Donner les droits à apache sur l'application
chown -R www-data.www-data /var/www/nextcloud
Configuration d'apache
$vi /etc/apache2/site-available/nextcloud.conf
<VirtualHost *:80>
ServerName Votreserveur.domain
DocumentRoot /var/www/nextcloud/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud.log combined
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
Activer les modules apaches
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Redémarrer apache
systemctl restart apache2
Nextcloud est désormais dispo sur l'URL configuré dans apache
Configurer apache en SSL
Certificat avec Letsencrypt
https://certbot.eff.org/lets-encrypt/debianstretch-apache
Ajouter le repo & installer letsencrypt
echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
apt-get update && apt-get install certbot python-certbot-apache -t stretch-backports
Obtenir le certificat
certbot --apache -w /var/www/nextcloud -d domaine.fr
Certificat auto signé
Créer le VHOST nextcloud-ssl.conf
$vi /etc/apache2/site-available/nextcloud-ssl.conf
<VirtualHost *:443>
ServerName Votreserveur.domain
DocumentRoot /var/www/nextcloud/
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
Créer votre clef privée
openssl genrsa -out /usr/share/apache2/votreserveur.key
Créer une requête pour votre certificat
openssl req -new -key /usr/share/apache2/votreserveur.key -out /usr/share/apache2/votreserveur.csr
Créer le certificat via la requête et la clef
openssl x509 -req -days 1000 -in /usr/share/apache2/votreserveur.csr -signkey /usr/share/apache2/votreserveur.key -out /usr/share/apache2/votreserveur.crt
Activer les modules apache
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod ssl
a2ensite default-ssl.conf
Modifier le vhost
#Dans /etc/apache2/site-available/nextcloud-ssl.conf (Entre la balise <virtualHost>)
</Directory>
SSLCertificateFile /usr/share/apache2/Votreserveur.crt
SSLCertificateKeyFile /usr/share/apache2/Votreserveur.key
</VirtualHost>
Activer votre site nextcloud
a2ensite nextcloud-ssl.conf
Redémarrer apache
service apache2 restart