Voici un petit tuto pour l’installation et la configuration de NextCloud sur Ubuntu 16.04.

1- Dans un premier temps nous allons installer un LAMP (Linux Apache MySQL PHP) :

sudo apt-get install lamp-server^

ou bien

sudo apt install apache2 php mysql-server libapache2-mod-php php-mysql

Lors de l’installation du LAMP vous allez devoir renseigner le mot de passe du SuperUtilisateur du serveur MySQL.

2- Ajout des modules PHP indispensables pour NextCloud :

sudo apt-get install libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring

3- Activation du mode « rewrite » et relancer le serveur Apache:

a2enmod rewrite

sudo service apache2 reload

4- Installation du serveur MariaDb :

D’après le site de NextCloud MariaDb est plus performant que MySQL…

sudo apt-get install mariadb-server

5- Récupération de la dernière version de NextCloud :

wget https://download.nextcloud.com/server/releases/nextcloud-xx.x.x.tar.bz2

tar -vxjf nextcloud-12.0.1.tar.bz2

6- Déplacement des binaires dans le répertoire www du serveur Apache :

sudo mv nextcloud /var/www

7- Gestion des droits pour NextCloud :

Un script est mis à disposition pour gérer les droits, nous allons donc le reprendre :

nano nextcloud_permissions.sh

Le script a copier dans le fichier :

#!/bin/bash
ocpath=’/var/www/nextcloud’
htuser=’www-data’
htgroup=’www-data’
rootuser=’root’

printf « Creating possible missing Directories\n »
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater

printf « chmod Files and Directories\n »
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chmod 755 ${ocpath}

printf « chown Directories\n »
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf « chmod/chown .htaccess\n »
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

Ajout des droits d’exécution pour le script :

sudo chmod +x nextcloud_permissions.sh

Lancement du script :

sudo ./nextcloud_permissions.sh

8- Configuration de l’alias pour le serveur Apache :

Création d’un fichier Nextcloud.conf

nano /etc/apache2/sites-available/nextcloud.conf

Contenu du fichier conf 

Alias /nextcloud « /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>

Création d’un lien symbolique

ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

9- Installation des modules Apache :

sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
a2enmod ssl
a2ensite default-ssl

Puis relancer le service Apache

sudo service apache2 reload

10- Installation de la base de données :

sudo mysql -u root -p

Création de la base, de l’utilisateur et des droits

CREATE DATABASE nextcloud;
CREATE USER ‘nextclouduser’@’localhost’ IDENTIFIED BY ‘xxxxxxxx’;
GRANT ALL PRIVILEGES ON nextcloud.* TO nextclouduser@localhost;
EXIT

11- Finalisation de l’installation :

Connectez vous sur votre site web NextCloud

https://xxxx.fr/nextcloud/

Renseignez les informations concernant la base de données