nextcloud

Mise en place d’un serveur Nextcloud sur Debian 9.

Nextcloud logo


I - Installation


# apache + bdd sql + module PHP pour apache
$ apt install apache2 mariadb-server libapache2-mod-php7.0

# extensions PHP 
$ apt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl
$ apt install php7.0-mbstring php7.0-intl php7.0-mcrypt
$ apt install php-imagick php7.0-xml php7.0-zip

# récupérer dernière version de Nextcloud Server
$ wget https://download.nextcloud.com/server/releases/nextcloud-13.0.2.zip
$ mv nextcloud-13.0.2.zip nextcloud.zip

# décompresser
$ unzip nextcloud.zip

II - Configuration


# déplacer le dossier dans la racine du serveur apache
$ mv nextcloud/ /var/www/

# donner le repertoire à l'utilisateur et groupe du serveur apache
$ chown -R www-data:www-data /var/www/nextcloud
# créer nouveau site apache
$ vim /etc/apache2/sites-available/nextcloud.conf
<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

    Satisfy Any
</Directory>
# activer les modules suivants
$ a2enmod rewrite
$ a2enmod headers
$ a2enmod env
$ a2enmod dir
$ a2enmod mime
# créer utilisateur dans la base de données
$ mariadb
mysql> CREATE DATABASE db_nextcloud;

mysql> CREATE USER 'user_nextcloud'@'localhost' IDENTIFIED BY 'mot_de_passe';

mysql> GRANT ALL PRIVILEGES ON db_nextcloud.* TO 'user_nextcloud'@'localhost';

mysql> FLUSH PRIVILEGES;

mysql> exit
# activer le site nextcloud
$ a2ensite owncloud

# relancer serveur apache
$ systemctl restart apache2

# créer le répertoire qui va stocker les données
$ mkdir /home/nextcloud-data/ # ceci est un exemple
$ chown -R www-data:www-data /home/nextcloud-data

# se rendre sur la page du serveur
$ firefox http://localhost/nextcloud &

Pour terminer

  • créer un utilisateur sur la page web
  • donner le repertoire /home/nextcloud-data/ pour stocker les données
  • faire la connexion avec la base de données mariadb (user + user password + database name + database password)