floss:server_lamp_install

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
floss:server_lamp_install [2015/05/20 13:36] villersdfloss:server_lamp_install [2022/07/21 18:43] (Version actuelle) – [Installation sous Windows] villersd
Ligne 1: Ligne 1:
 ====== Installation d'un serveur LAMP ====== ====== Installation d'un serveur LAMP ======
-Le serveur sera installé dans une machine virtuelle (invitée) sous VirtualBox, avec la configuration de deux CMS Wordpress et Dokuwiki.+Le serveur sera installé dans une machine virtuelle (invitée) sous VirtualBox, avec la configuration de deux CMS (Wordpress et Dokuwiki) et d'outils pour la gestion de groupes de personnes ayant différents rôles : 
 +  * [[http://www.openldap.org/|OpenLDAP]] 
 +  * [[https://www.fusiondirectory.org/|FusionDirectory]] 
 +  * [[http://radicale.org/|radicale]] (système d'agenda)
  
 Pour les "novices" ou peu habitués de la ligne de commande, le serveur fonctionne uniquement dans ce mode, soit Pour les "novices" ou peu habitués de la ligne de commande, le serveur fonctionne uniquement dans ce mode, soit
 dans sa console, soit via ssh qui ouvre un terminal à partir d'un poste distant (sur la machine hôte par exemple). Les copier-coller fonctionne, mais avec la touche "shift" en plus : shift-ctrl-c pour copier, shift-ctrl-v pour coller. dans sa console, soit via ssh qui ouvre un terminal à partir d'un poste distant (sur la machine hôte par exemple). Les copier-coller fonctionne, mais avec la touche "shift" en plus : shift-ctrl-c pour copier, shift-ctrl-v pour coller.
  
-Suggestion : une fois le serveur installé, n'utilisez la console dans la machine invitée que pour vous authentifier, exécuter la commande 'ip a' pour connaître l'IP et arrêter la machine. OpenSSH étant installé, il vous sera beaucoup plus facile de la coontrôler à distance, tout comme vous le feriez pour un serveur dédié dans un datacenter payant.+Suggestion : une fois le serveur installé, n'utilisez la console dans la machine invitée que pour vous authentifier, exécuter la commande 'ip a' pour connaître l'IP et arrêter la machine. OpenSSH étant installé, il vous sera beaucoup plus facile de la contrôler à distance, tout comme vous le feriez pour un serveur dédié dans un datacenter payant.
  
 <note warning>Pour les noms d'utilisateurs et mots de passe utilisés sur vos serveurs, évitez l'utilisation de noms d'utilisateur et mots de passe personnels.</note> <note warning>Pour les noms d'utilisateurs et mots de passe utilisés sur vos serveurs, évitez l'utilisation de noms d'utilisateur et mots de passe personnels.</note>
  
 ===== Installation de VirtualBox ===== ===== Installation de VirtualBox =====
-====Installation via ppa====+====Installation via ppa sous Linux (Ubuntu) ====
 Pour installer la version la plus récente, suivre les instructions de la page [[https://www.skyminds.net/linux-installer-virtualbox-via-le-ppa-doracle/]] : Pour installer la version la plus récente, suivre les instructions de la page [[https://www.skyminds.net/linux-installer-virtualbox-via-le-ppa-doracle/]] :
 <code>sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r`</code> <code>sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r`</code>
-<code>echo "deb http://download.virtualbox.org/virtualbox/debian `lsb_release -sc` contrib" | sudo tee -a /etc/apt/sources.list.d/virtualbox.list && wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install virtualbox-4.3</code>+<code>echo "deb http://download.virtualbox.org/virtualbox/debian `lsb_release -sc` contrib" | sudo tee -a /etc/apt/sources.list.d/virtualbox.list && wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install virtualbox-5.1</code> 
 +(remplacer 5.2 par une nouvelle version si existante sur [[https://www.virtualbox.org/|virtualbox.org]])
 <code>sudo usermod -G vboxusers -a $USER</code> <code>sudo usermod -G vboxusers -a $USER</code>
 (remplacez la dernière variable par votre nom d'utilisateur Linux). (remplacez la dernière variable par votre nom d'utilisateur Linux).
 <code>version=$(VBoxManage --version|cut -dr -f1|cut -d'_' -f1) && wget -c http://download.virtualbox.org/virtualbox/$version/Oracle_VM_VirtualBox_Extension_Pack-$version.vbox-extpack && VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$version.vbox-extpack --replace && rm *.vbox-extpack</code> <code>version=$(VBoxManage --version|cut -dr -f1|cut -d'_' -f1) && wget -c http://download.virtualbox.org/virtualbox/$version/Oracle_VM_VirtualBox_Extension_Pack-$version.vbox-extpack && VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$version.vbox-extpack --replace && rm *.vbox-extpack</code>
  
 +====Installation sous Windows ====
 +Suivre les instructions sur [[https://www.virtualbox.org/|virtualbox.org]] !
 +
 +Voir aussi :
 +  * [[https://lecrabeinfo.net/tag/virtualbox]]
 +    * [[https://lecrabeinfo.net/virtualbox-installer-les-additions-invite-guest-additions.html|VirtualBox : installer les additions invité – Le Crabe Info]]
 +    * [[https://lecrabeinfo.net/virtualbox-installer-windows-linux-dans-une-machine-virtuelle.html?highlight=virtualbox|VirtualBox : installer Windows ou Linux dans une machine virtuelle – Le Crabe Info]]
 +    * [[https://lecrabeinfo.net/virtualbox-creer-dossier-partage-entre-hote-et-invite-windows-linux.html|VirtualBox : créer un dossier partagé entre l’hôte et l’invité (Windows, Linux) – Le Crabe Info]]
 +      * [[https://unix.stackexchange.com/questions/52667/file-permission-issues-with-shared-folders-under-virtual-box-ubuntu-guest-wind|File permission issues with shared folders under Virtual Box (Ubuntu Guest, Windows Host)]] (StackExchange Unix & Linux)
 +
 +
 +
 +==== Désinstallation d'une version précédente ====
 +Adapter le numéro de version
 +<code>sudo dpkg -l | grep virtualbox</code>
 +<code>sudo apt-get purge virtualbox-5.1</code>
 ===== Génération de clés SSH ===== ===== Génération de clés SSH =====
 L'[[http://doc.ubuntu-fr.org/ssh#authentification_par_un_systeme_de_cles_publiqueprivee|authentification par un système de clés publique/privée]] vous sera très utile pour gérer vos serveurs. Générez ces clés avec la commande suivante : L'[[http://doc.ubuntu-fr.org/ssh#authentification_par_un_systeme_de_cles_publiqueprivee|authentification par un système de clés publique/privée]] vous sera très utile pour gérer vos serveurs. Générez ces clés avec la commande suivante :
 <code>ssh-keygen -t rsa</code> <code>ssh-keygen -t rsa</code>
-Les clés publiques et privées sont stockées dans votre répertoire ~/.ssh. Les répertoires cachés (hidden) peuvent être visualisés dans votre gestionnaire de fichier (Nautilus) en tapant ctrl-h. La clés privées ne doit JAMAIS être communiquée. Votre clé publique doit être placée dans le fichier ~/.ssh/authorized_keys des serveurs auxquels vous souhaitez accéder.+Les clés publiques et privées sont stockées dans votre répertoire ~/.ssh. Les répertoires cachés (hidden) peuvent être visualisés dans votre gestionnaire de fichier (Nautilus) en tapant ctrl-h. La clés privées ne doit JAMAIS être communiquée. Votre clé publique devra être placée dans le fichier ~/.ssh/authorized_keys des serveurs auxquels vous souhaitez accéder (voir plus loin) 
 + 
 +<note tip>Sous Windows, utiliser : 
 +  * [[http://www.putty.org/|PuTTY]] pour communiquer en ligne de commande (client SSH), 
 +  * [[https://winscp.net/eng/docs/introduction|WinSCP]] ou [[https://filezilla-project.org/|Filezilla]] pour accéder aux fichiers (clients SFTP); 
 +  * [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|PuTTYgen]] pour générer les clés SSH
  
 +Références :
 +  * [[http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter3.html#3.1.1]] (copier-coller sous PuTTY)
 +  * [[https://support.rackspace.com/how-to/generating-rsa-keys-with-ssh-puttygen/]]
 +</note>
 ===== Installation du serveur ===== ===== Installation du serveur =====
 Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server
   * [[http://www.ubuntu.com/download/server|téléchargement de Ubuntu server]]   * [[http://www.ubuntu.com/download/server|téléchargement de Ubuntu server]]
   * Lancement de VirtuaBox et création d'une nouvelle machine virtuelle (VM). Par exemple :   * Lancement de VirtuaBox et création d'une nouvelle machine virtuelle (VM). Par exemple :
-    * Ubuntu-14.04.2_server +    * Ubuntu-18.04.1_server (type Linux et version 64 bit) 
-    * 1024 Mo +    * 2048 Mo 
-    * Disque dur virtuel (.vdi) Go (dynamiquement alloué) +    * Disque dur virtuel (.vdi) 10 Go (dynamiquement alloué) 
-  * Ajustement (configuration) de quelques paramètres de la VM :+  * Ajustement (menu configuration) de quelques paramètres de la VM :
     * stockage : renseigner le fichier iso dans le lecteur CD/DVD virtuel     * stockage : renseigner le fichier iso dans le lecteur CD/DVD virtuel
-    * réseau : accès par pont +    * réseau : accès par pont (si problème avec wlan0, tester eth0) 
-  * Démarrer la VM. Le live-CD virtuel de Ubuntu propose le choix de la langue (prendre français) et la touche F3 permet de choisir le clavier (par exemple belge). Sélectionner "installation du serveur".+  * Démarrer la VM. Le live-CD virtuel de Ubuntu propose le choix de la langue (prendre français) et la touche F3 permet de choisir le clavier (par exemple belge). Sélectionner "Installer Ubuntu Server". 
 +    * Select a langage (choisir French) 
 +    * Choix de votre situation géographique (Belgique, ou ailleurs...) 
 +    * Configurer le clavier (disposition belge ou autre...) et variante éventuelle
   * Renseigner des paramètres :   * Renseigner des paramètres :
     * nom de la machine (ex : vmix)     * nom de la machine (ex : vmix)
Ligne 41: Ligne 73:
     * choisir de chiffrer ou non, renseigner la timezone     * choisir de chiffrer ou non, renseigner la timezone
     * partitionnement : choisir "assisté, utiliser un disque entier"     * partitionnement : choisir "assisté, utiliser un disque entier"
-    * appliquer les changements+    * appliquer les changements sur les disques (virtuels)
     * renseigner si nécessaire un serveur mandataire (proxy)     * renseigner si nécessaire un serveur mandataire (proxy)
-    * Sélection de logiciels à installer+    * choisir "Installer les mises à jour de sécurité automatiquement" 
 +    * Sélection de logiciels à installer (utiliser la barre d'espacement pour sélectionner et les flèches haut-bas pour se déplacer)
       * openSSH server       * openSSH server
-      * LAMP server+      * LAMP server (à moins d'installer séparément après)
     * Définir un mot de passe superutilisateur de MySQL (ex : vmmysqladmin)     * Définir un mot de passe superutilisateur de MySQL (ex : vmmysqladmin)
     * installer GRUB sur le secteur d'amorçage     * installer GRUB sur le secteur d'amorçage
Ligne 53: Ligne 86:
       * sudo apt-get update       * sudo apt-get update
     * redémarrage :  sudo reboot     * redémarrage :  sudo reboot
 +
 +<note tip>Problème réseau : pour forcer le dhcp, utiliser les commandes "sudo ip link set dev eth0 down" et "sudo dhclient eth0" //cf.// [[https://help.ubuntu.com/community/NetworkConfigurationCommandLine/Automatic|ici]]. Cette action doit être refaite chaque fois que l'IP n'est pas attribuée.</note>
  
 ==== Vérification du fonctionnement et configuration complémentaire ==== ==== Vérification du fonctionnement et configuration complémentaire ====
Ligne 58: Ligne 93:
   * création d'un utilisateur administrateur "de secours" : sudo adduser rescueadmin suivi de sudo usermod -a -G sudo rescueadmin   * création d'un utilisateur administrateur "de secours" : sudo adduser rescueadmin suivi de sudo usermod -a -G sudo rescueadmin
   * à partir d'une autre machine sous Linux, ajout de la clé publique SSH : "ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<ipaddress>"   * à partir d'une autre machine sous Linux, ajout de la clé publique SSH : "ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<ipaddress>"
 +    * ajout de la clé publique sous Windows : FIXME
   * test du serveur web (apache) : tapez "http://ip/" dans un navigateur   * test du serveur web (apache) : tapez "http://ip/" dans un navigateur
-  * fichier de configuration de php dans /etc/php5/apache2/php.ini 
  
-===php === +=== php === 
-Installation complémentaire (utilité incertaine par rapport à l'installation standard) : +
-<code>sudo apt-get install php5 php5-mysql php-pear php5-gd  php5-mcrypt php5-curl</code>+
   * test de php : sudo nano /var/www/html/phpinfo.php et  ajouter <?php phpinfo(); ?> comme seule ligne à ce fichier. Sauver et test dans un navigateur : http://ip/phpinfo.php   * test de php : sudo nano /var/www/html/phpinfo.php et  ajouter <?php phpinfo(); ?> comme seule ligne à ce fichier. Sauver et test dans un navigateur : http://ip/phpinfo.php
 +  * fichier de configuration de php dans /etc/php5/apache2/php.ini FIXME
 +  * Installation complémentaire (utilité incertaine par rapport à l'installation standard) <code>sudo apt-get install php libapache2-mod-php php-pear php-gd php-mcrypt php-curl php-dev php-zip php-mysql php-xml</code> 
 +  * Ensuite : sudo service apache2 restart
 +
 +FIXME (//cf// ref comme [[https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04|ceci]]) ou[[https://thishosting.rocks/install-php-on-ubuntu/|cela]]
 +
  
 === Groupe www-data === === Groupe www-data ===
Ligne 76: Ligne 116:
 <code>sudo dpkg-reconfigure phpmyadmin</code> <code>sudo dpkg-reconfigure phpmyadmin</code>
 (choisir le serveur web à reconfigurer : apache2) (choisir le serveur web à reconfigurer : apache2)
-  * le mot de passe superutilisateur de MySQL sera demandé+  * le mot de passe superutilisateur de MySQL sera demandé (vmmysqladmin par exemple)
   * user : phpmyadmin   * user : phpmyadmin
   * mot de passe de connexion : vmuser_phpmyadmin_mdp   * mot de passe de connexion : vmuser_phpmyadmin_mdp
Ligne 85: Ligne 125:
     * sudo service apache2 restart     * sudo service apache2 restart
   * accéder à http://ip/phpmyadmin   * accéder à http://ip/phpmyadmin
 +
 +===== Installation de OpenLDAP et FusionDirectory =====
 +Référence utilisée : [[https://documentation.fusiondirectory.org/en/documentation/admin_installation/all_in_one|Documentation officielle de FusionDirectory, admin_installation]]
 +
 +cf aussi (?) [[https://www.morot.fr/installation-de-fusiondirectory-depuis-les-sources-sous-ubuntu-14-04/]]
 +
 +  * [[https://documentation.fusiondirectory.org/en/documentation/admin_installation/openldap_install|Installation du serveur OpenLdap]] :
 +    * Vérification du [[https://fr.wikipedia.org/wiki/Fully_qualified_domain_name|FQDN]]
 +      * "cat /etc/hostname" pour vérifier le hostname (vmix)
 +      * "cat /etc/hosts" pour vérifier le FQDN. Pour modifier, éditer le fichier (//cf// [[https://www.digitalocean.com/community/questions/how-to-set-fqdn-properly-in-etc-hosts|ref]]) pour que les premières lignes soient par exemple :
 +<code>127.0.0.1 localhost.localdomain localhost
 +127.0.1.1 vm.be vmix
 +</code> 
 +    * sudo apt-get install slapd (mot de passe de l'administrateur ldap : adminopenldap)
 +    * sudo apt-get install ldap-utils
 +    * sudo dpkg-reconfigure slapd
 +      * omettre la configuration... --> No
 +      * base DN : vm.be
 +      * nom de l'organisation : vm
 +      * mdp = adminvmbe
 +      * module HDB
 +      * Faut-il supprimer la base de données à la purge du paquet ? --> No
 +      * déplacer l'ancienne base de données ? --> yes
 +      * Faut-il autoriser le protocole LDAPv2 ?  --> No
 +    * sudo /etc/init.d/slapd status →  slapd is running
 +      * sinon : "sudo /etc/init.d/slapd start"
 +  * [[https://documentation.fusiondirectory.org/en/documentation/admin_installation/schema_installation|Installation du schema FusionDirectory]]
 +    * Ubuntu 14.04 : il manque un paquet en dépôt. Télécharger [[http://ftp.ubuntu.com/ubuntu/pool/universe/s/smarty-gettext/smarty-gettext_1.1.0-1_all.deb]] sur le serveur, et installer via "sudo dpkg -i smarty-gettext_1.1.0-1_all.deb"
 +    * pour y arriver, il faut éventuellement faire ceci :
 +      * sudo apt install smarty3 gettext
 +      * sudo apt-get -f install
 +    * Ubuntu 14.04 : il est nécessaire d'installer le paquet php5-imap : "sudo apt-get install php5-imap"
 +    * activer avec "sudo php5enmod imap"
 +    * relancer apache : "sudo /etc/init.d/apache2 restart"
 +
 +    * Ubuntu 14.04 : ajouter des dépôts via "sudo nano /etc/apt/sources.list"
 +<code>
 +# fusiondirectory repository
 +deb http://repos.fusiondirectory.org/debian-jessie jessie main
 +# fusiondirectory debian-extra repository
 +deb http://repos.fusiondirectory.org/debian-extra stable main
 +</code>
 +    * sudo apt update
 +    * apt-cache search fusiondirectory | more
 +    * gpg --keyserver keys.gnupg.net --recv-key 62B4981F
 +    * gpg --export -a "Fusiondirectory Archive Manager <contact@fusiondirectory.org>" > FD-archive-key
 +    * sudo apt-key add FD-archive-key  (par rapport à la doc : !!! ajouter sudo !!!)
 +    * sudo apt-get install fusiondirectory-schema schema2ldif
 +    * sudo fusiondirectory-insert-schema
 +    * sudo fusiondirectory-insert-schema -l
 +  * [[https://documentation.fusiondirectory.org/en/documentation/admin_installation/schema_installation#integration-of-optional-schemas|schémas optionnels]]
 +    * aptitude search fusiondirectory-plugin
 +    * sudo aptitude install fusiondirectory-plugin-systems fusiondirectory-plugin-systems-schema
 +    * sudo fusiondirectory-insert-schema -i /etc/ldap/schema/fusiondirectory/systems-fd.schema /etc/ldap/schema/fusiondirectory/systems-fd-conf.schema
 +  * [[https://documentation.fusiondirectory.org/en/documentation/admin_installation/core_installation|Installation de FusionDirectory]]
 +    * sudo apt-get install fusiondirectory
 +    * [[http://ip/fusiondirectory]]
 +    * suivre les instructions de la page web pour installer un fichier : "echo -n rohnfpdec99himh1d2osf2gsr6 > /var/cache/fusiondirectory/fusiondirectory.auth"
 +    * next
 +    * Sélectionner le langage  (french)
 +    * Vérification de php
 +      * ajout : sudo apt install php-mdb2
 +    * next
 +    * Paramètres de connexion :
 +      * DN : cn=admin pwd = adminvmbe
 +
 +<note tip>En cas de problème, pensez à redémarrer la machine virtuelle !</note>
 +
 +    * Step 5 : Schema checking of LDAP directory
 +
 +<note tip>
 +Si erreur "Schema check failed", l'insertion de schéma peut être à refaire via "sudo fusiondirectory-insert-schema"</note>
 +
 +    * Step 6 : Generic settings
 +    * Step 7 : Customization of special parameters (timezone à changer)
 +    * Step 8 : Tweaking of some core behaviour
 +    * LDAP inspection
 +      * migrate
 +      * admin avec pwd : fd-admin  fd-admin_mdp
 +      * migrate
 +      * refaire "check again"
 +    * Finish - write the configuration file
 +      * télécharger fusiondirectory.conf et le placer dans /etc/fusiondirectory/ Pour cela, on peut le placer temporairement dans /home/vmuser  ensuite "sudo cp fusiondirectory.conf /etc/fusiondirectory/"
 +      * sudo fusiondirectory-setup --check-config
 +      * Checking FusionDirectory's config file
 +      * /etc/fusiondirectory/fusiondirectory.conf exists…
 +      * /etc/fusiondirectory/fusiondirectory.conf is not set properly, do you want to fix it ?:  [Yes/No]?
 +      * yes
 +      * sudo fusiondirectory-setup --check-config
 +      * Rights on /etc/fusiondirectory/fusiondirectory.conf are correct :
 +        * -rw-r----- 1 root www-data 1170 Jun 25 08:09 fusiondirectory.conf
 +    * Ecran de logon avec fd-admin !!
 +
 +sudo fusiondirectory-setup --check-config → Checking FusionDirectory's config file
 +
  
 ===== Installation de wordpress ===== ===== Installation de wordpress =====
  • floss/server_lamp_install.1432121769.txt.gz
  • Dernière modification : 2015/05/20 13:36
  • de villersd