Prérequis

Debian 9.5 fraichement installé

Configuration TCP/IP opérationnelle

 

Etape :

 1) Installation docker

 2) Installation docker-compose

 3) Installation portainer

4) Installation php 7.3

5) Installation Apache

6) Installation mariadb via portainer

7) Installation Nextcloud

8) Installation OnlyOffice avec Docker

9) Activation  OnlyOffice dans Nextcloud

10) Authentification Ldap de Nextcloud

11) Activation https pour Nextcloud

12) Configuration d'envoie de mail "SMTP"

 

Informations sur les serveurs

Portainer :

https://192.168.1.86:8443/

Onlyoffice :

http://192.168.1.86.30:8080/

Nextcloud :

http://192.168.1.86/index.php/

Ldap :

ptu-ldap 192.168.1.80

FusionDirectory :

http://192.168.1.61/fusiondirectory/

 

Configuration TCP/IP.

Obtenir le nom de l’interface réseau sur debian 9.7

# ip a

2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether

inet 192.168.1.102/24 brd 192.168.1.255 scope global ens18

 

Configurer l’adresse ip statique

# vi /etc/network/interfaces

auto lo

iface lo inet loopback

allow-hotplug ens18

iface ens18 inet static

address 192.168.1.86

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

gateway 192.168.1.1

dns-nameservers 192.168.1.1

 

Configurer la résolution du nom du serveur en local

# vi /etc/hosts

127.0.0.1 localhost

127.0.1.1 home-nextcloud1.alcd.fr home-nextcloud1

192.168.1.86 home-nextcloud1.alcd.fr home-nextcloud1

 

Configurer le nom du serveur en local

# vi /etc/hostname

home-nextcloud1

 

Mise à jour sistème

# apt-get update

# apt-get upgrade

# apt-get dist-update

 

Configuration de fuseau horaire

# dpkg-reconfigure tzdata

 

Passer en locale UTF-8 sous Debian

# dpkg-reconfigure locales

 

Installer agent QEMU

# apt-get install qemu-guest-agent

 

Installer les autres dépendances

# apt-get install build-essential

# apt-get install unzip

 

 Désinstaller les anciennes versions de Docker

# apt-get -y remove docker docker-engine docker.io

 

Installation de docker

# apt-get install -y apt-transport-https ca-certificates wget software-properties-common

# wget https://download.docker.com/linux/debian/gpg

# apt-key add gpg

# echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list.d/docker.list

# apt-get update

# apt-cache policy docker-ce

# apt-get -y install docker-ce

 

Démarrer le service Docker

# systemctl start docker

 

Controler l’état du service Docker

# systemctl status docker

 

Activer le démarrage automatique du service Docker à chaque redémarrage du système

# systemctl enable docker

 

Tester l’arrêt du service Docker

# systemctl stop docker

 

Tester le démarrage du service Docker

# systemctl restart docker

 

Vérifier le status du service Docker

# docker ps

 

Autoriser à l’utisateur ausmane de démarrer le service Docker

# usermod -aG docker ausmane

 

2) Installation de docker-composer

# apt-get install curl

# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# chmod +x /usr/local/bin/docker-compose

# docker-compose --version

 

3) Installation de portainer ssl

# docker pull portainer/portainer

# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

portainer/portainer latest 00ead811e8ae 4 weeks ago 58.7MB

# mkdir /etc/ssl/portainer && cd /etc/ssl/portainer

# openssl genrsa -out portainer.key 1024

# sudo openssl x509 -req -days 999 -in portainer.csr -signkey portainer.key -out portainer.crt

# mkdir ~/portainer && sudo cp /etc/ssl/portainer/* ~/portainer

# docker run --name portainer_with_SSL -d -p 443:9000 -v ~/portainer:/certs -v "/var/run/docker.sock:/var/run/docker.sock" portainer/portainer --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key

 

Configuration de portainer

RM : Lors de la première connexion, il vous sera demandé de créer le mot de passe de l'utilisateur admin

1) https://192.168.1.86:8443/ -> OK

Login : admin

passwd :

1) Connexion local

3) Manage the local Docker environnement

4) Cliquer sur Dashboard

5) Modifier la langue

6) Créer le container mariadb via portainer

Name : mariadb_ptu

root password :

nifty_booth

Restart : Always

Idem pour portainer -> Restart : Always

 

Installation de PHP 7.3

# apt-get install apt-transport-https lsb-release ca-certificates

# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" >> /etc/apt/sources.list.d/php.list

# apt-get update

 

Installation de Apache

# apt-get install apache2 -y

# apt-get install libapache2-mod-php7.3 -y

 

 

Démarrer le serveur Apache

# systemctl start apache2

# systemctl enable apache2

 

Tester le serveur Apache

# http://192.168.1.86/ -> ok

 

Installation de PHP 7.3

# apt-get install php7.3 php7.3-cli php7.3-intl php7.3-mysql php7.3-curl php7.3-gd php7.3-soap php7.3-xml php7.3-zip php7.3-readline php7.3-opcache php7.3-json php7.3-gd -y

# apt-get install php7.3-mbstring

 

Configurer php.ini

vi /etc/php/7.3/apache2/php.ini

 

Make the following changes:

memory_limit = 256M

upload_max_filesize = 32M

post_max_size = 32M

; http://php.net/date.timezone

;date.timezone =

 

Démarrer le serveur Apache

# /etc/init.d/apache2 restart

 

Activer https sur apache

# a2enmod ssl

a2ensite default-ssl

# service apache2 reload

 

Tester le serveur Apache en https

# https://192.168.1.86/ -> ok

 

 

Installation de Mariadb

# apt -y install mariadb-server

 

Noter le mot de passe root de Mariadb

# Enter current password for root (enter for none): alcd

 

Démarrer le serveur Mariadb

# systemctl enable mariadb

# systemctl start mariadb

 

Sécuriser mariadb

# mysql_secure_installation

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

 

Créer un utilisateur ausmane dans mariadb avec le droit root

# mysql -u root -p

MariaDB [(none)]> grant all privileges on *.* to ausmane@"%"; identified by 'alcd' with grant option;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit

 

Créer la base de données nextcloud et l’utilisateur nextcloud_user

mysql -u root -p

 

MariaDB [(none)]> CREATE DATABASE nextcloud CHARACTER SET utf8;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'alcd';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> exit;

 

Installation de Nextcloud 15.0.2

Télécharger Nextcloud : https://download.nextcloud.com/server/releases/

# cd /usr/local/src/

# unzip nextcloud-15.0.2.zip -d /var/www/html/

# chown -R www-data:www-data /var/www/html/nextcloud/

# find /var/www/html/nextcloud -type d -exec chmod 775 {} \;

# find /var/www/html/nextcloud -type f -exec chmod 664 {} \;

 

Configuration de Nexcloud

# # vi /etc/apache2/sites-available/nextcloud.conf

<VirtualHost 192.168.1.86:80>

ServerName home-nextcloud1

DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud>

options Indexes FollowSymLinks MultiViews

AllowOverride All

Require all granted

</Directory>

ServerSignature off

ErrorLog ${APACHE_LOG_DIR}error.log

CustomLog ${APACHE_LOG_DIR}access.log combined

</VirtualHost>

 

Activer et démarrer le service Nextcloud

# a2ensite nextcloud.conf

# apachectl configtest

# systemctl reload apache2

 

Vérifier que le serveur Apache est lancé

# ps -ef

 

Activer les modules zip gd curl

# phpenmod zip gd curl

 

Redémarrer le service Apache

# service apache2 restart

 

Installation et configuration de Nextcloud via l’interface Web

1) http://192.168.1.86/ -> OK

Login : admin

passwd : alcd

Utilisateur : nextcloud_user

passwordd :alcd

Répertoire des données : /var/www/html/nextcloud/data

Base de données : nextcloud

Serveur : localhost

 

nc web install 1

 

nc web install 2

 

nc web install 3

 

Installation du serveur OnlyOffice via Docker

# docker run -i -t -d -p 8080:80 onlyoffice/documentserver

 

Vérifier le status du service Docker

# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a1a74d364dac onlyoffice/documentserver "/bin/sh -c /app/onl…" 33 seconds ago Up 31 seconds 443/tcp, 0.0.0.0:8080->80/tcp jovial_jones

d1a1e68ff5a2 portainer/portainer "/portainer --ssl --…" 37 minutes ago Up 37 minutes 0.0.0.0:8443->9000/tcp portainer_with_SSL

root@home-nextcloud1:/usr/local/src#

 

Vérifier le status du service Portainer

 

Tester le serveur OnlyOffice

# http://192.168.1.86:8080/welcome/ -> ok

 

onlyoffice 1

 

Configuration de Nextcloud 15.0.2 et OnlyOffice(2.1.2) avec git

# # cd /var/www/html/nextcloud/apps/

git clone https://github.com/ONLYOFFICE/onlyoffice-nextcloud.git onlyoffice

# chown -R www-data:www-data /var/www/html/nextcloud/apps/onlyoffice

 

 

Ajouter les lignes suivantes dans le fichier de config

# vi /var/www/html/nextcloud/config/config.php

'onlyoffice' =>

array (

'verify_peer_off' => true,

),

'maintenance' => false,

);

 

Activer OnlyOffice dans Nextcloud
 

activer onlyoffice 1

 

activer onlyoffice 2 

 

activer onlyoffice 3 

 

Activer htpps pour Nextcloud

# vi /etc/apache2/sites-available/nextcloud.conf

<VirtualHost 192.168.1.86:80>

ServerName home-nextcloud1

Redirect permanent / https://192.168.1.86/nextcloud/

DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud>

options Indexes FollowSymLinks MultiViews

AllowOverride All

Require all granted

</Directory>

ServerSignature off

ErrorLog ${APACHE_LOG_DIR}error.log

CustomLog ${APACHE_LOG_DIR}access.log combined

</VirtualHost>

 

Redémarrer le service Apache

# service apache2 restart

 

Tester le serveur Nextcloud en https

# http://192.168.1.86/ redirige vers -> https://192.168.1.86/nextcloud/index.php