User Tools

Site Tools


serveurs:serveurs_start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
serveurs:serveurs_start [2019/12/14 15:42]
julien [YUNOHOST SERVER]
serveurs:serveurs_start [2020/07/30 00:13]
julien [INSTALL & CONFIRGURATION DE NEXTCLOUD SUR SME 9.2 (KOOZALI)]
Line 1: Line 1:
  
-====== UBUNTU DESKTOP 18.04 (SERVER) + OWNCLOUD ​======+====== INSTALL & CONFIRGURATION DE NEXTCLOUD SUR SME 9.2 (KOOZALI) ====== 
 + 
 +suivre le tuto par ici : https://​wiki.contribs.org/​Nextcloud 
 + 
 +installer des paquets officiel 
 + 
 +<​code>​ 
 +yum install smeserver-extrarepositories-remi-safe smeserver-extrarepositories-fws smeserver-extrarepositories-epel 
 +signal-event yum-modify 
 +yum install smeserver-nextcloud --enablerepo=smecontribs,​epel,​fws 
 +signal-event webapps-update 
 +service php-fpm start 
 +service php71-php-fpm start 
 +signal-event nextcloud-update 
 +</​code>​ 
 + 
 +<​code>​ 
 +signal-event post-upgrade  
 +signal-event reboot 
 +</​code>​ 
 + 
 +toute la config de votre nextcloud se situe dans ce répertoire : /​usr/​share/​nextcloud/​config 
 +les data des users : /​home/​e-smith/​files/​nextcloud/​data 
 + 
 +Dans l'​administration de votre nextcloud vous pourrez organiser un ensemble de chose pour l'​accès de vos utilisateurs et les apps à disposition 
 +Mais pour rendre tout cela public : 
 + 
 +<​code>​ 
 +config show nextcloud 
 +</​code>​ 
 +cela donne quelque chose comme cela (selon votre config de nextcloud) 
 +nextcloud=service 
 +    AdminPassword=#####​ 
 +    AdminUser=nextcloudadmin 
 +    DbName=nextcloud 
 +    DbPassword=#######​ 
 +    DbUser=nextcloud 
 +    TrustedDomains= 
 +    access=private 
 +    status=enabled 
 + 
 +*note - access=private 
 + 
 +pour le rendre public, rien de plus simple! 
 + 
 +<​code>​ 
 +config setprop nextcloud access public 
 +signal-event nextcloud-update 
 +</​code>​ 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +====== SME 9.2 Koozali - MIGRATION ENTRE 2 SERVEURS ====== 
 + 
 +A la suite d'un problème sur une serveur SME 9.2 (Koozali) lié à des soucis de version de php et de wordpress, nous avons décidé de mettre en route une installation toute fraîche d'un [[https://​wiki.contribs.org/​SME_Server:​9.2|SME 9.2 (Koozali)]] 
 + 
 +===== étape 1 - sauvegarde du server ===== 
 + 
 +Avant toute chose il faut faire une sauvegarde votre server et cela en passe par plusieurs types de sauvegarde (qui ne semble toujours être évident dans les forums, back up your server... blablabla). 
 +Il existe dans SME 9.2, un système de backup automatique,​ à tester une prochaine fois 
 +Nous allons utiliser la commande ssh et scp dans toutes nos opérations. 
 + 
 +==== a) sauvegarde vos dokuwiki ==== 
 + 
 + 
 +-se loger en ssh dans votre serveur SME et aller dans le répertoire de votre dokuwiki 
 + 
 +<​code>​ 
 +cd /​home/​e-smith/​files/​ibays/​votredokuwiki/​html 
 +</​code>​ 
 + 
 +-compresser votre site pour la sauvegarde 
 + 
 +<​code>​ 
 +tar cvfz CopyDokuwiki.tar.gz * 
 +</​code>​ 
 + 
 +Vous utiliserez ce tar dans votre migration sur un autre serveur 
 + 
 +==== b) sauvegarde de votre wordpress ==== 
 + 
 +ça se complique car à l'​instar de dokuwiki il y a aussi une base donnée à sauvegarder. Pour la 1ére partie même méthode que pour dokuwiki 
 + 
 +-se loger en ssh dans votre serveur SME et aller dans le répertoire de votre dokuwiki 
 + 
 +<​code>​ 
 +cd /​home/​e-smith/​files/​ibays/​votrewordpress/​html 
 +</​code>​ 
 + 
 +-compresser votre site pour la sauvegarde 
 + 
 +<​code>​ 
 +tar cvfz Copyvotrewordpress.tar.gz * 
 +</​code>​ 
 + 
 +Il faut absolument utiliser phpmyadmin pour simplifier la démarche d'​exportation et d'​importation des bases de données. Nous prendrons la version la plus simple avec phpmyadmin. 
 + 
 +-ouvrir votre phpmyadmin - http://​votreserveur/​phpmyadmin (attention à bien choisir un utilisateur ayant tous les privilèges sur la base données) 
 + 
 +{{:​serveurs:​exportmysql.png?​800|}} 
 + 
 +-exécuter la sauvegarde dans le repertoire proposé : /​var/​lib/​phpMyAdmin/​save/​ 
 + 
 +A ce stage vous avez sauvegarder l'​essentiel de vos site web pour bien opérer votre changement de serveur ou si vous expérimentez une update sur le site. 
 + 
 + 
 +==== c) sauvegarde de vos emails ==== 
 + 
 +tout vas bien si vous n'avez pas beaucoup d'​email mais si vous avez plusieurs années de courrier électroniques cela peut-être un vrai cauchemar mais pas tellement si vous connaissez la méthode : 
 + 
 +-allez dans le répertoire de vos emails sur SME 
 + 
 +<​code>​ 
 +cd /​home/​e-smith/​files/​users/​votreuser/​Maildir 
 +</​code>​ 
 + 
 +<​code>​ 
 +tar cvfz Copiervosdossiers.tar.gz * 
 +</​code>​ 
 + 
 +le soucis que nous avons rencontré c'est que la copie ne semble pas avoir pris en compte les fichiers cachés, nous avons dû les découvrir de leur point cachés pour pouvoir les intégrer dans le tar. 
 + 
 +===== étape 2 - réinstaller vos site web et emails dans le nouveau serveur ===== 
 + 
 + 
 +a) copier votre dokuwiki sur le nouveau serveur 
 + 
 +-créer une nouvelle ibay dans le server-manager de votre serveur SME (même nom que celle de l'​ancien serveur pour éviter les problèmes de chemin) 
 + 
 +-de votre ancien serveur copiez le tar de votre doku 
 + 
 +<​code>​ 
 +scp CopyDokuwiki.tar.gz root@votrenouveauserveurip:/​home/​e-smith/​files/​ibays/​votredokuwiki/​html 
 +</​code>​ 
 + 
 +-puis allez dans votre nouveau serveur dans l'ibay de votre dokuwiki pour décompressé votre dokuwiki 
 + 
 +<​code>​ 
 +tar xvfz CopyDokuwiki.tar.gz 
 +</​code>​ 
 + 
 +bien vérifié la version de php, en fonction de la version de votre dowiki vous devrez faire attention, si vous avez un problème veuillez installer PHP-SCL (Contrib des PHP Software Collections) 
 + 
 + 
 +a) copier votre wordpress sur le nouveau serveur 
 + 
 +Pour wordpress même démarche avec l'​importation de votre base de donnée en plus  
 + 
 + 
 +-créer une nouvelle ibay dans le server-manager de votre serveur SME (même nom que celle de l'​ancien serveur pour éviter les problèmes de chemin) 
 + 
 +-de votre ancien serveur copiez le tar de votre wordpress 
 + 
 +<​code>​ 
 +scp Copyvotrewordpress.tar.gz root@votrenouveauserveurip:/​home/​e-smith/​files/​ibays/​votrewordpress/​html 
 +</​code>​ 
 + 
 +-puis allez dans votre nouveau serveur dans l'ibay de votre wordpress pour décompressé votre dokuwiki 
 + 
 +<​code>​ 
 +tar xvfz Copyvotrewordpress.tar.gz 
 +</​code>​ 
 + 
 + 
 +Pour la base de donnée de wordpress il faut aussi la copier sur votre nouveau serveur : 
 + 
 +à partir de votre ancien serveur 
 +<​code>​ 
 +cd /​var/​lib/​phpMyAdmin/​save/​ 
 +</​code>​ 
 + 
 +<​code>​ 
 +scp votrebasedonneewordpress.sql root@votrenouveauserveurip:/​var/​lib/​phpMyAdmin/​upload 
 +</​code>​ 
 + 
 +-ouvrir votre phpmyadmin - http://​votreserveur/​phpmyadmin (attention à bien choisir un utilisateur ayant tous les privilèges sur la base donnée)  
 + 
 +-créer une nouvelle base de donnée vide au nom de celle que vous avez utilisé dans le wordpress de votre ancien serveur!! 
 + 
 +{{:​serveurs:​importmysql.png?​800|}} 
 + 
 +-Choisissez depuis le répertoire de téléchargement du serveur web /​var/​lib/​phpMyAdmin/​upload/​ (dans ce repertoire vous devriez trouver votrebasedonneewordpress.sql) 
 + 
 +-exécuter l'​importation 
 + 
 +Bien vérifier que le nom de la base donnée, votre user et le mot de passe corresponde bien à l'​utilisateur/​basedonnée/​mtpass que vous utilisez sur votre nouveau serveur. Le nom de la base de donnée doit être la même 
 + 
 +Enfin pour les emails il faut utiliser la même méthode que pour wordpress avec la base donnée - exporter/​importer la base de donnée horde 
 + 
 + 
 + 
 +====== UBUNTU DESKTOP 18.04 (SERVER) + NEXTCLOUD ====== 
 + 
 +===== Partie Serveur ===== 
 + 
 + 
 +Après plusieurs essais difficile avec Ubuntu server 18.04 et installation Owncloud 
 +nous testons une installation classique Ubuntu 18.04 LTS Avec LEMP et une autre avec LAMP 
 + 
 +1-installer le système Ubuntu Desktop 18.04 - https://​ubuntu.com/​download/​desktop/​thank-you?​country=FR&​version=18.04.3&​architecture=amd64 
 + 
 + 
 +==== installation de LEMP (interface graphique pour ubuntu serveur, basé sur NGINX) ==== 
 +Nous allons tester cette méthode : https://​www.digitalocean.com/​community/​tutorials/​how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04 
 + 
 +1er étape : mettre à jour le système et installer nginx 
 +<​code>​ 
 +apt-get update 
 +apt list --upgradable 
 +apt install ssh 
 +apt install nginx 
 +</​code>​ 
 + 
 +2eme étape : ouvrir le pare-feu nginx en établissant des régles 
 + 
 +<​code>​ 
 +ufw enable 
 +ufw allow 'nginx full' #http, https, ssh 
 +ufw status #ça devrait être actif 
 +</​code>​ 
 + 
 +tester votre adresse IP local et extérieur (hors box/​connection perso) 
 +<​code>​ 
 +ip addr show wlp2s0 | grep inet | awk '{ print $2; }' | sed '​s/​\/​.*$//'​ #correspond à bon vieux ifconfig ;-p 
 +curl -4 icanhazip.com 
 +</​code>​ 
 + 
 +ouvrir un navigateur http://​localhost ou http://​127.0.0.1 ou http://​votreadresseiplocal 
 +si l'​installation a bien été faite vous aurez une page de nginx pour vous dire que tout est bien. 
 + 
 + 
 +3eme étape : installer et configurer la base de données mysql 
 + 
 +<​code>​ 
 +apt install mysql-server 
 +mysql_secure_installation #​installation sécurisé de votre serveur / choix du votre mot de base et accès extérieur 
 +</​code>​ 
 + 
 +config dans mysql directement 
 + 
 +<​code>​ 
 +mysql 
 +mysql> SELECT user,​authentication_string,​plugin,​host FROM mysql.user; #​authentifier votre utilisateur 
 +</​code>​ 
 + 
 +Output 
 ++------------------+-------------------------------------------+-----------------------+-----------+ 
 +| user             | authentication_string ​                    | plugin ​               | host      | 
 ++------------------+-------------------------------------------+-----------------------+-----------+ 
 +| root             ​| ​                                          | auth_socket ​          | localhost | 
 +| mysql.session ​   | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | 
 +| mysql.sys ​       | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | 
 +| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost | 
 ++------------------+-------------------------------------------+-----------------------+-----------+ 
 +4 rows in set (0.00 sec) 
 + 
 +<​code>​ 
 +mysql> ALTER USER '​root'​@'​localhost'​ IDENTIFIED WITH mysql_native_password BY '​password';​ 
 +mysql> FLUSH PRIVILEGES;​ 
 +mysql> SELECT user,​authentication_string,​plugin,​host FROM mysql.user;​ 
 +</​code>​ 
 + 
 +Output 
 ++------------------+-------------------------------------------+-----------------------+-----------+ 
 +| user             | authentication_string ​                    | plugin ​               | host      | 
 ++------------------+-------------------------------------------+-----------------------+-----------+ 
 +| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost | 
 +| mysql.session ​   | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | 
 +| mysql.sys ​       | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | 
 +| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost | 
 ++------------------+-------------------------------------------+-----------------------+-----------+ 
 +4 rows in set (0.00 sec) 
 + 
 +<​code>​ 
 +mysql> exit 
 +</​code>​ 
 + 
 +une fois cette démarche réalisé vous devrez utiliser cette commande pour vous loger dans mysql 
 + 
 +<​code>​ 
 +mysql -u root -p 
 +</​code>​ 
 + 
 +la base de données est prête à être utilisé! 
 + 
 +4eme étape : installer et configurer PHP (ce n'est pas inclus directement dans l'​installation de nginx) 
 + 
 +<​code>​ 
 +apt install php-fpm php-mysql 
 +</​code>​ 
 + 
 +Dans la logique de Nginx il va vous falloir configurer la possibilité d'​attacher plusieurs espace sur votre serveur pour différents site web et différents DNS 
 +Sous Nginx cela s'​appelle Blocs Serveur (un peu laborieux tout ça mais à long terme ça sera mieux) 
 +nous allons suivre cette méthode : https://​www.digitalocean.com/​community/​tutorials/​comment-installer-nginx-sur-ubuntu-18-04-fr 
 + 
 +<​code>​ 
 +sudo mkdir -p /​var/​www/​example.com/​html 
 +chown -R $USER:$USER /​var/​www/​example.com/​html #droits d'​accès utilisateur 
 +chmod -R 755 /​var/​www/​example.com #pour être sûr! 
 +</​code>​ 
 + 
 +créer une page html pour tester : 
 + 
 +<​code>​ 
 +nano /​var/​www/​example.com/​html/​index.html 
 +</​code>​ 
 +et on y met : 
 +<​code>​ 
 + <​html>​  
 +<​head>​  
 +<​title>​Welcome to Example.com!</​title>​  
 +</​head>​  
 +<​body>​  
 +<​h1>​Success! The example.com server block is working!</​h1>​  
 +</​body>​  
 +</​html>​  
 +</​code>​ 
 + 
 +créer un nouveau block comme site-available 
 +<​code>​ 
 +nano /​etc/​nginx/​sites-available/​example.com  
 +</​code>​ 
 + 
 +et y mettre : 
 + 
 +<​code>​ 
 + ​server {  
 +listen 80;  
 +listen [::]:80;  
 +root /​var/​www/​example.com/​html;​  
 +index index.html index.htm index.nginx-debian.html;​  
 +server_name example.com www.example.com;​  
 +location / {  
 +try_files $uri $uri/ =404;  
 +}  
 +}  
 +</​code>​ 
 + 
 +et pour qu'il soit pris en compte au démarrage 
 + 
 +<​code>​ 
 +ln -s /​etc/​nginx/​sites-available/​example.com /​etc/​nginx/​sites-enabled/​  
 +</​code>​ 
 + 
 +-example.com:​ Répondra aux requêtes pour example.com et www.example.com. 
 + 
 +-default: Répondra à n’importe quelle sur le port 80 qui ne correspond pas aux deux autres blocs. Pour éviter un problème avec la mémoire de hachage qui pourrait survenir lors de l’ajout de nom de serveur additionnels,​ il est nécessaire d’ajuster une seule valeur dans le fichier /​etc/​nginx/​nginx.conf . Ouvrez le fichier : command sudo nano /​etc/​nginx/​nginx.conf Trouvez la directive server_names_hash_bucket_size et enlevez le symbole # pour décommenter la ligne 
 + 
 + 
 +Ensuite, faite la vérification pour pour vous assurer qu’il n’y a pas d’erreurs de syntaxe dans vos fichiers Nginx : command sudo nginx -t Enregistrez et fermez le fichier lorsque vous avez terminé. S’il n’y a pas de problèmes, redémarrez Nginx pour activer vos changements : command sudo systemctl restart nginx Nginx devrait maintenant desservir votre nom de domaine. Vous pouvez vérifier ceci en naviguant à http://​example.com,​ ou vous verrez quelque chose comme ceci : Nginx first server block 
 + 
 +**Success! The example.com server block is working!** 
 + 
 + 
 + 
 +cette histoire de block peut-être croisé par ici (anglais) : https://​www.digitalocean.com/​community/​tutorials/​understanding-nginx-server-and-location-block-selection-algorithms 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +===== Installation de LAMP (interface graphique pour Ubuntu serveur, basé sur Apache2) ===== 
 + - https://​doc.ubuntu-fr.org/​lamp 
 + 
 +Installer Apache, MariaDB, PHP et modules 
 +<​code>​ 
 +sudo apt install apache2 mariadb-server php-mysql libapache2-mod-php php-gd php-json php-curl php-mbstring php-intl php-imagick php-xml php-zip 
 +</​code>​ 
 + 
 +Ouvrez un navigateur pour tester si le serveur marche: 
 +http://​localhost//​ 
 +http://​127.0.0.1/​ 
 + 
 +Installer PhpMyAdmin  
 +<​code>​ 
 +sudo apt install phpmyadmin 
 +</​code>​ 
 + 
 +source/​détail:​ https://​doc.ubuntu-fr.org/​lamp 
 + 
 +===== Installation NextCloud ===== 
 + 
 +:!: **La configuration d'une entrée A dans votre registre DNS n'est pas requise pour que Nextcloud fonctionne, mais nécessaire si vous voulez sécuriser le tout avec https :** :!: 
 + 
 +Exemple de config DNS 
 +<​code>​ 
 +cloud 10800 IN A 123.45.67.89 
 +  |     ​| ​            | 
 +sous-dom| ​            IP 
 +       TTL 
 +</​code>​ 
 + 
 +__Installation et configuration du server__ 
 + 
 +-- On copie la config par default d'un site apache pour créer une config pour nextcloud 
 +<​code>​cp /​etc/​apache2/​sites-available/​000-default.conf /​etc/​apache2/​sites-available/​nextcloud.conf</​code>​ 
 + 
 +-- Puis on l'​édite 
 +<​code>​nano /​etc/​apache2/​sites-available/​nextcloud.conf</​code>​ 
 + 
 +-- Rentrez les lignes correspondantes afin que votre fichier de configuration ressemble à cette exemple ('​cloud'​ étant le sous-domaine que vous désirez attribuer à Nextcloud) 
 +<​code>​ 
 +<​VirtualHost *:80> 
 +        ServerName cloud.monpetit.domaine 
 + 
 +        ServerAdmin webmaster@localhost 
 +        DocumentRoot /​var/​www/​nextcloud 
 +         
 +        ErrorLog ${APACHE_LOG_DIR}/​error.log 
 +        CustomLog ${APACHE_LOG_DIR}/​access.log combined 
 +</​VirtualHost>​ 
 +</​code>​ 
 + 
 +-- Activez l'host virtuel que l'on vient de créer, et recharger apache 
 +<​code>​a2ensite nextcloud 
 +systemctl reload apache2</​code>​ 
 + 
 + 
 +__Certification pour https__ (//Ici on utilisera certbot, qui nous obtiendra un certificat gratuit chez '​Let'​s Encrypt'​. Vous êtes libre d'​obtenir un certificat autre part//) 
 +<​code>​apt install certbot python-certbot-apache 
 +certbot --apache</​code>​ 
 +**Selectionnez votre site** 
 + 
 +//Si il y aura une erreur à ce moment là, votre entrée dans la base du DNS est mal configurée//​ 
 + 
 +**Selectionnez '​2',​ afin de rediriger toutes rêquettes http vers https** 
 + 
 + 
 +-- Créez un dossier pour Nextcloud, puis le télécharger et le placer 
 +<​code>​mkdir /​var/​www/​nextcloud</​code>​ 
 +-- Téléchargez Nextcloud à [[https://​nextcloud.com/​install/#​instructions-server]] (pour cet exemple nous prendrons le .tar) 
 +<​code>​wget https://​coller.le/​link.ici</​code>​ 
 +-- Extraction du fichier 
 +<​code>​tar xvf nextcloud-XXX.tar.bz 
 +rm nextcloud-XXX.tar.bz 
 +mv ./​nextcloud/​* . 
 +mv ./​nextcloud/​.* . 
 +rmdir nextcloud</​code>​ 
 +--  Rendez le server web propriétaire du dossier '​nextcloud'​ 
 +<​code>​chown -R www-data:​www-data /​var/​www/​nextcloud</​code>​ 
 + 
 +-- Configuration de la base de données 
 +<​code>​mysql_secure_installation 
 +Appuyer sur Entrer 
 +Changer le pass root? Y 
 +Rentrer le mot de passe de votre choix pour root 
 +Retirer utilisateurs anonymes? Y 
 +Interdire la connection au root à distance? Y 
 +Supprimer la db de test? Y 
 +Recharger la table de privilèges?​ Y</​code>​ 
 + 
 +-- Créez un compte pour nextcloud sur la bd 
 +<​code>​mariadb 
 +> CREATE DATABASE nextcloud;​ 
 +> CREATE USER '​nextcloud'​@'​localhost'​ IDENTIFIED BY '​votrepassici';​ 
 +> GRANT ALL PRIVILEGES ON nextcloud . * TO '​nextcloud'​@'​localhost';​ 
 +> quit</​code>​ 
 + 
 +-- __Installer Nextcloud__ ​  ​(//​enfin !//) 
 + 
 +###insert capture of example install page?### 
 + 
 +Remplissez les champs avec vos logins et pass, et bravo ! Vous avez installé Nextcloud ! 
 +A ce moment précis, il est fort possible que votre Nextcloud ne soit pas totalement configuré. Il est donc conseillé de régler ces problèes avant tout. 
 + 
 +Accèdez à l'​**Overview** en cliquant sur l'​engrenage en haut à droite, puis dans la colonne de gauche dans la catégorie '​Administration'​ 
 + 
 +//les instructions suivantes couvriront les erreurs reportées par Nextcloud pendant la création de ce tuto. Si les votres ne sont pas incluses, bonne chance, et n'​oubliez pas de noter vos solutions ici !// 
 + 
 +Bien sûr, n'​oubliez pas de recharger apache après chaque fix avec <​code>​systemctl restart apache2</​code>​ 
 + 
 +**Augmenter la limite de mémoire pour PHP** 
 +<​code>​nano /​etc/​php/​7.3/​apache2/​php.ini</​code>​ 
 +Cherchez la ligne avec "​memory_limit=",​ et changez la valeur par "​**512M**"​. 
 + 
 +**Activer HSTS** 
 +<​code>​nano /​etc/​apache2/​sites-available/​nextcloud-le-ssl.conf</​code>​ 
 +Ajoutez le header HSTS dans le tag <​VirtualHost...>​ 
 +<​code><​IfModule mod_headers.c>​ 
 + ​Header always set Strict-Transport-Security "​max-age=15552000;​ includeSubDomains;​ preload"​ 
 +</​IfModule>​ 
 + 
 +<​Directory /​var/​www/​nextcloud/>​ 
 + ​AllowOverride All 
 +</​Directory></​code>​ 
 +Activez les modules correspondants 
 +<​code>​a2enmod headers 
 +a2enmod rewrite 
 +systemctl restart apache2</​code>​ 
 + 
 +**Installer APCu pour avoir un cache mémoire** 
 +<​code>​apt install php-apcu</​code>​ 
 +Configurez Nextcloud afin d'​utiliser APCu 
 +<​code>​nano /​var/​www/​nextcloud/​config/​config.php</​code>​ 
 +Ajoutez la ligne : 
 +<​code>'​memcache.local'​ => '​\OC\Memcache\APCu',</​code>​ 
 + 
 +**Augmenter le temps de timeout** 
 +<​code>​nano /​var/​www/​nextcloud/​lib/​private/​App/​AppStore/​Fetcher/​Fetcher.php</​code>​ 
 +Chercher la ligne contenant '​timeout',​ et changer sa valeur 
 + 
 + 
 + 
 + 
 + 
 + 
 +===== Installation de Collabora avec apache2 ===== 
 + 
 +On va installer Collabora en utilisant Docker (maleureusement,​ c'est la façon la plus simple et pratique) 
 + 
 +**Installation de Docker** 
 + 
 +Docker n'est que rarement mis à jour sur les repos officiels d'​Ubuntu,​ donc on va tricher et aller se servir directement à la source. 
 + 
 +Les instructions utilisées sont celles présentées ici [[https://​docs.docker.com/​install/​linux/​docker-ce/​ubuntu]] 
 + 
 +Mais pour cela, il nous faut faire quelques ajouts 
 +<​code>​apt install apt-transport-https ca-certificates curl software-properties-common 
 + 
 +curl -fsSL https://​download.docker.com/​linux/​ubuntu/​gpg | sudo apt-key add -</​code>​ 
 +Ajoutez le repo de Docker à votre liste (prenez le repo correspondant à votre architecture 
 +<​code>​ 
 +add-apt-repository \ 
 +   "​deb [arch=amd64] https://​download.docker.com/​linux/​ubuntu \ 
 +   ​$(lsb_release -cs) \ 
 +   ​stable"​ 
 +</​code>​ 
 +Et installez Docker 
 +<​code>​apt update 
 +apt install docker-ce</​code>​ 
 + 
 +Vérifiez que docker tourne correctement 
 +<​code>​systemctl status docker</​code>​ 
 + 
 +**Installation et parametrage de Collabora** 
 + 
 +Commencez par créer un sous-domaine chez votre fournisseur DNS, redirigant sur votre server. Le nom du sous-domaine n'a pas d'​importance,​ car il ne sera utiliser qu'à la configuration de Collabora. 
 + 
 +Installez ensuite l'​application '​Collabora Online'​ dans Nextcloud. 
 +Dans le menu '​Applications'​ -> '​Office & texte' -> et téléchargez l'​app. 
 + 
 +Récupérez le conteneur de Collabora avec Docker 
 +<​code>​docker pull collabora/​code</​code>​ 
 +('//​code//'​ étant le nom de code pour la version dev de Collabora) 
 + 
 +<​code>​docker run -t -d -p 127.0.0.1:​9980:​9980 -e '​domain=cloud\\.apo33\\.info'​ --restart always --cap-add MKNOD collabora/​code</​code>​ 
 + 
 +Vous pouvez ensuite utiliser <​code>​docker ps</​code>​ pour vérifier que Collabora tourne  
 + 
 +On suivera les instructions officielles de Nextcloud sur leur site [[https://​nextcloud.com/​collaboraonline]] 
 +<​code>​ 
 +a2enmod proxy 
 +a2enmod proxy_wstunnel 
 +a2enmod proxy_http 
 +a2enmod ssl 
 +</​code>​ 
 + 
 +Puis créez un fichier de config dans apache pour Collabora 
 +<​code>​nano /​etc/​apache2/​sites-availables/​collabora.conf</​code>​ 
 + 
 +Et coller la config donné sur le site de Nextcloud, sans oublier de remplacer le '//​ServerName//'​ par le sous-domaine créé pour Collabora 
 +<file collabora.conf>​ 
 +<​VirtualHost *:443> 
 +ServerName office.nextcloud.com:​443 
 + 
 +# SSL configuration,​ you may want to take the easy route instead and use Lets Encrypt! 
 +SSLEngine on 
 +SSLCertificateFile /​path/​to/​signed_certificate 
 +SSLCertificateChainFile /​path/​to/​intermediate_certificate 
 +SSLCertificateKeyFile /​path/​to/​private/​key 
 +SSLProtocol ​            all -SSLv2 -SSLv3 
 +SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:​ECDHE-RSA-CHACHA20-POLY1305:​ECDHE-ECDSA-AES128-GCM-SHA256:​ECDHE-RSA-AES128-GCM-SHA256:​ECDHE-ECDSA-AES256-GCM-SHA384:​ECDHE-RSA-AES256-GCM-SHA384:​DHE-RSA-AES128-GCM-SHA256:​DHE-RSA-AES256-GCM-SHA384:​ECDHE-ECDSA-AES128-SHA256:​ECDHE-RSA-AES128-SHA256:​ECDHE-ECDSA-AES128-SHA:​ECDHE-RSA-AES256-SHA384:​ECDHE-RSA-AES128-SHA:​ECDHE-ECDSA-AES256-SHA384:​ECDHE-ECDSA-AES256-SHA:​ECDHE-RSA-AES256-SHA:​DHE-RSA-AES128-SHA256:​DHE-RSA-AES128-SHA:​DHE-RSA-AES256-SHA256:​DHE-RSA-AES256-SHA:​ECDHE-ECDSA-DES-CBC3-SHA:​ECDHE-RSA-DES-CBC3-SHA:​EDH-RSA-DES-CBC3-SHA:​AES128-GCM-SHA256:​AES256-GCM-SHA384:​AES128-SHA256:​AES256-SHA256:​AES128-SHA:​AES256-SHA:​DES-CBC3-SHA:​!DSS 
 +SSLHonorCipherOrder ​    on 
 + 
 +# Encoded slashes need to be allowed 
 +AllowEncodedSlashes NoDecode 
 + 
 +# Container uses a unique non-signed certificate 
 +SSLProxyEngine On 
 +SSLProxyVerify None 
 +SSLProxyCheckPeerCN Off 
 +SSLProxyCheckPeerName Off 
 + 
 +# keep the host 
 +ProxyPreserveHost On 
 + 
 +# static html, js, images, etc. served from loolwsd 
 +# loleaflet is the client part of LibreOffice Online 
 +ProxyPass ​          /​loleaflet https://​127.0.0.1:​9980/​loleaflet retry=0 
 +ProxyPassReverse ​   /loleaflet https://​127.0.0.1:​9980/​loleaflet 
 + 
 +# WOPI discovery URL 
 +ProxyPass ​          /​hosting/​discovery https://​127.0.0.1:​9980/​hosting/​discovery retry=0 
 +ProxyPassReverse ​   /​hosting/​discovery https://​127.0.0.1:​9980/​hosting/​discovery 
 + 
 +# Main websocket 
 +ProxyPassMatch "/​lool/​(.*)/​ws$"​ wss://​127.0.0.1:​9980/​lool/​$1/​ws nocanon 
 + 
 +# Admin Console websocket 
 +ProxyPass ​  /​lool/​adminws wss://​127.0.0.1:​9980/​lool/​adminws 
 + 
 +# Download as, Fullscreen presentation and Image upload operations 
 +ProxyPass ​          /lool https://​127.0.0.1:​9980/​lool 
 +ProxyPassReverse ​   /lool https://​127.0.0.1:​9980/​lool 
 + 
 +# Endpoint with information about availability of various features 
 +ProxyPass ​          /​hosting/​capabilities https://​127.0.0.1:​9980/​hosting/​capabilities retry=0 
 +ProxyPassReverse ​   /​hosting/​capabilities https://​127.0.0.1:​9980/​hosting/​capabilities 
 +</​VirtualHost>​ 
 +</​file>​ 
 + 
 +Il faut ensuite récupérer un certificat pour ce sous-domaine,​ et rendre les chemins vers ces fichiers manuellement. Courage, c'est presque fini ! 
 + 
 +On retourne voir certbot, mais cette fois-çi avec une commande un peu différente. En effet, on ne va lui demander que le certificat. N'​oubliez pas d'​entrer votre domaine. 
 +<​code>​certbot certonly -d votrecollabora.monpetit.domaine</​code>​ 
 +Selectionner '​1',​ pour l'​authentification avec Apache 
 + 
 +**Résultat :** 
 +<​code>​ 
 + - Congratulations! Your certificate and chain have been saved at: 
 +   /​etc/​letsencrypt/​live/​votrecollabora.monpetit.domaine/​fullchain.pem 
 +   Your key file has been saved at: 
 +   /​etc/​letsencrypt/​live/​votrecollabora.monpetit.domaine/​privkey.pem 
 +</​code>​ 
 + 
 +Prenez bien note de ce passage, car il contient les chemins vers les fichiers que l'ont veut rentrer dans notre fichier de config apache ! 
 + 
 +Si on va voir ce qu'y se trouve au bout de ce chemin 
 +<​code>​ls -al /​etc/​letsencrypt/​live/​votrecollabora.monpetit.domaine/</​code>​ 
 +On peut voir 4 fichiers, notez également leur noms. 
 + 
 +Retournez dans le fichier de config apache de Collabora 
 +<​code>​nano /​etc/​apache2/​sites-availables/​collabora.conf</​code>​ 
 +Et éditez les 3 lignes suivantes avec les chemins que vous venez de noter 
 +<​code>​ 
 +SSLCertificateFile /​etc/​letsencrypt/​live/​collabora.apo33.info/​cert.pem 
 +SSLCertificateChainFile /​etc/​letsencrypt/​live/​collabora.apo33.info/​fullchain.pem 
 +SSLCertificateKeyFile /​etc/​letsencrypt/​live/​collabora.apo33.info/​privkey.pem 
 +</​code>​ 
 + 
 +Activez la config 
 +<​code>​sudo a2ensite collabora.conf 
 +Rechargez apache 
 +<​code>​systemctl restart apache2</​code>​ 
 +? //Si apache ne redémarre pas, c'est que vous chemins sont incorrects//​ ? 
 + 
 + 
 +**Si vos nouveaux fichiers créés avec Nextcloud sont en Allemand** 
 + 
 +Ce problème vient du fait que Nextcloud vient d'​Allemagne,​ et donc que les fichiers templates ont été créés en Allemand. 
 +Il faut donc modifier la langue de ces fichiers 
 + 
 + 
 +====Installation de Collabora avec nginx ===== 
 + 
 + 
 + 
 + 
  
  
Line 93: Line 765:
 <​code>​ <​code>​
  
-cd /path to directory+cd /home/​e-smith/​files/​ibays/​tonrepertoire
  
 vi backup.sh vi backup.sh
Line 102: Line 774:
  
 :x :x
 +
 +#pour lancer le scrit réguliérement
  
 cd /​etc/​e-smith/​templates/​etc/​crontab cd /​etc/​e-smith/​templates/​etc/​crontab
Line 112: Line 786:
  
 :x :x
 +
 +#lancer le cron
 +
 +expand-template /​etc/​crontab
 +
 +service crond restart
 +
 +
 +</​code>​
 +
 +
 +===== sécurité : script pour check les virus/​spam/​rootkit sur le serveur =====
 +
 +Pour éviter les surprises mal placés, un peu de routine en terme de sécurité ne fera pas de mal à votre serveur!
 +
 +<​code>​
 +
 +cd /​home/​e-smith/​files/​ibays/​tonrepertoire
 +
 +mkdir scan.tmp
 +
 +vi checkvirus.sh
 +
 +#copier ce script
 +
 +#!/bin/bash
 +
 +freshclam
 +rm -f scan.tmp
 +path=$1
 +clamscan -r --bell -i $path >> scan.tmp
 +result=$(grep "​Infected files: 0" scan.tmp)
 +return_result=$?​
 +
 +if [ $return_result -eq 0 ]
 +
 + ​then ​ mail -s "​Rapport Virus Scan : Ras" -a scan.tmp tonloginemail <<<​ 'Rien à signaler !'
 + ​else ​ mail -s "​Rapport Virus Scan : Pblm detected !" -a scan.tmp tonloginemail <<<​ 'Il se peut q un virus soit entré ! (vérifiez piece jointe)'​
 +
 +fi
 +
 +rm -f scan.tmp
 +
 +
 +:x (pour valider)
 +
 +
 +#pour lancer le script
 +
 +cd /​etc/​e-smith/​templates-custom/​etc/​
 +
 +vi crontab
 +
 +# Run custom script with cron
 +10 7 * *  * root cd /​home/​e-smith/​files/​ibays/​tonrepertoire/;​ ./​checkvirus.sh /
 +
 +:x
 +
 +#lancer le cron
  
 expand-template /​etc/​crontab expand-template /​etc/​crontab
serveurs/serveurs_start.txt · Last modified: 2020/07/30 00:13 by julien