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/16 20:25]
julien [installation de LEMP (interface graphique pour ubuntu serveur, basé sur NGINX)]
serveurs:serveurs_start [2020/01/24 14:42] (current)
raven14 [Installation de LAMP (interface graphique pour Ubuntu serveur, basé sur Apache2)]
Line 179: Line 179:
  
  
-==== installation ​de LAMP (interface graphique pour ubuntu ​serveur, basé sur Apache2) ====+===== Installation ​de LAMP (interface graphique pour Ubuntu ​serveur, basé sur Apache2) ​=====
  - https://​doc.ubuntu-fr.org/​lamp  - https://​doc.ubuntu-fr.org/​lamp
  
 +Installer Apache, MariaDB, PHP et modules
 <​code>​ <​code>​
-sudo apt install apache2 php libapache2-mod-php ​mysql-server ​php-mysql +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>​ +
- +
-<​code>​ +
-sudo apt install ​php-curl php-gd php-intl php-json php-mbstring ​php-xml php-zip+
 </​code>​ </​code>​
  
Line 196: Line 193:
 Installer PhpMyAdmin ​ Installer PhpMyAdmin ​
 <​code>​ <​code>​
-sudo apt-get install phpmyadmin+sudo apt install phpmyadmin
 </​code>​ </​code>​
  
Line 203: Line 200:
 ===== Installation NextCloud ===== ===== Installation NextCloud =====
  
-suivre ce tuto : https://​doc.ubuntu-fr.org/​nextcloud-serveur+:!: **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 :** :!:
  
-télécharger nextcloud : https://​nextcloud.com/​install/#​instructions-server +Exemple de config DNS
-unzip it! +
-http://​localhost/​+
 <​code>​ <​code>​
-sudo chown www-data:​www-data -R nextcloud/ ​+cloud 10800 IN A 123.45.67.89 
 +  |     ​| ​            | 
 +sous-dom|             IP 
 +       TTL
 </​code>​ </​code>​
  
-Créer les bases de données / utiliser mysql +__Installation et configuration du server__ 
-ouvrir ​un terminal+ 
 +-- 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>​ <​code>​
-sudo mysql +<​VirtualHost *:80> 
-CREATE DATABASE nextcloud;​ +        ​ServerName cloud.monpetit.domaine 
-GRANT ALL ON nextcloud.* TO youruser@localhost ​IDENTIFIED BY '​yourpassword';​+ 
 +        ServerAdmin webmaster@localhost 
 +        DocumentRoot /​var/​www/​nextcloud 
 +         
 +        ErrorLog ${APACHE_LOG_DIR}/​error.log 
 +        CustomLog ${APACHE_LOG_DIR}/​access.log combined 
 +</​VirtualHost>​
 </​code>​ </​code>​
  
-configuration ​de votre nextcloud +-- Activez l'host virtuel que l'on vient de créer, et recharger apache 
-login +<​code>​a2ensite nextcloud 
-passwd +systemctl reload apache2</​code>​ 
-database user + 
-database passwd + 
-database name+__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 
 + 
 + 
  
-Configure! et voilà! you are on! 
  
  
 ===== Installation de Collabora avec apache2 ===== ===== Installation de Collabora avec apache2 =====
  
-surtout surtout ne pas être pressé! En effet Nextcloud ​n'installe ​que le client ​(en 2 click il est installé) mais le serveur est une autre histoirel'installation mélange ​la configuration ​en local et l'utilisation à l'extérieur ​de votre réseau internetce qui tendance à compliquer toute l'installation ​car il vous faut avoir un nom de domaine ​obligatoirement.+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 DNSredirigant 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 Nextcloudsans 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 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//​ ? 
  
-Il y a plusieurs tuto sur le sujet mais celui qui reprend l'​ensemble de la chaine (du nextcloud/​hosts jusqu'​au détail de collabora) : http://​debian-facile.org/​doc:​reseau:​nextcloud+**Si vos nouveaux fichiers créés avec Nextcloud sont en Allemand**
  
--ce tuto : https://​www.dadall.info/​index.php?​article597/​installer-collaboraonline-avec-nextcloud renvoie à celui du dessus si l'on utilise apache2... nginx à l'air plus simple (à tester)+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
  
  
serveurs/serveurs_start.1576524337.txt.gz · Last modified: 2019/12/16 20:25 by julien