Catégorie : Linux

  • Installation MariaBD sur un serveur Ubuntu

    1 – Mettre à jour les sources

    sudo apt update

    2 – Installation de mariadb

    sudo apt install mariadb-server

    y

    3 – Activation du démarrage automatique de MariaDB

    sudo systemctl enable mariadb
    sudo systemctl start mariadb

    On peux vérifier le bon démarrage

    sudo systemctl status mariadb

    4 – Exécution du script de sécurisation pour sécuriser au minimum l’installation de mariadb

    sudo mariadb-secure-installation
    • Le mot de passe que l’on veux pour le root de mariadb
    • N pour non
    • On peux mettre Y si on change changer le mot de passe du root, sinon N vu que l’on a déjà mis un mot de passe root à l’étape 1
    • Y pour supprimer les utilisateurs anonymes crées par défaut à l’installation
    • Y si on va se servir du root uniquement en local (plus que conseillé)
    • Y pour supprimer la base de test créée pendant l’installation de mariadb
    • Y pour recharger les privilèges mis au propre

    5 – Test de connexion

    On va tester de se connecter à mariadb pour voir si tout est correct

    sudo mariadb -u root -p
    show databases;

    On peux quitter mariadb avec

    exit;

    6 – Relance du service mariadb

    sudo systemctl restart mariadb

    7 – La suite

    On peux installer phpMyAdmin si on le souhaite

  • Utilisation SCP

    Pour envoyer ou télécharger des fichiers depuis/vers un linux on peux utiliser la commande scp

    Elle est directement intégré au terminal windows

    1 – Envoie de fichier sur un linux

    scp chemin+nomfichier utilisateur@serveur:chemindedestination

    2 – Téléchargement d’un fichier depuis linux

    scp utilisateur@serveur:chemin+nomfichier chemindestination

    3 – Bonus

    Il est possible de télécharger ou envoyer un dossier et non pas un seul fichier

    Pour se faire il faut rajouter l’option -r pour récursive

    Exemple de téléchargement d’un dossier

    scp -r utilisateur@serveur:chemin+nomdossier chemindestination

  • Installation de PHP sur Ubuntu

    Avant d’installer PHP sur Ubuntu il faut avoir installé Apache.

    Pour installer apache, le tuto se trouve ici

    1 – Vérifier la version disponible pour php

    sudo apt list php

    Dans mon exemple et à l’heure où j’écris, la dernière version disponible est la 8.4

    2 – Installation de php

    sudo apt install php8.4 libapache2-mod-php8.4 php-common php8.4-cli php8.4-common php8.4-opcache php8.4-readline

    Nb : il faut penser à changer le numéro de la version en fonction de la version disponible de l’on a

    Nb 2 : on peux rajouter php8.4-mysql dans la liste si on veux mettre un phpmyadmin par exemple par la suite

    3 – Activation du module PHP pour Apache et redemarage de Apache

    sudo a2enmod php8.4
    sudo systemctl restart apache2

    Nb : Attention au numéro

    4 – Test que tout fonctionne

    On crée un fichier phpinfo.php dans /var/www/html/phpinfo.php et on le rempli avec <?php phpinfo();?>

    sudo nano /var/www/html/phpinfo.php

    On lance la page sur notre navigateur

    5 – Activation de PHP FPM qui permet d’accélérer le serveur web. La documentation du PHP FPM se trouve ici

    5.1 – Désactiver le module de base

    sudo a2dismod php8.4

    (Toujours attention au numéro)

    5.2 – Activation du module PHP FPM

    sudo apt install php8.4-fpm

    (Toujours attention au numéro)

    5.3 – Activation des modules proxy_fcgi et setenvif

    sudo a2enmod proxy_fcgi setenvif

    5.4 – Activation du fichier de configuration FPM

    sudo a2enconf php8.4-fpm

    (Toujours attention au numéro)

    6 – Redémarrage du serveur apache et vérification

    sudo systemctl restart apache2

    Apache utilise désormais FPM

    7 – La suite

    On peux, si on veux, installer mariadb

  • Installation Apache 2 sur Ubuntu

    1 – Installation du serveur Apache

    sudo apt install -y apache2 apache2-utils

    2 – Normalement le serveur démarre seul

    2.1 – On peux vérifier en faisant

    sudo systemctl status apache2

    2.2 – Si pas démarré, on le démarre avec

    sudo systemctl start apache2

    3 – Activer apache2 pour un démarrage automatique

    sudo systemctl enable apache2

    4 – On peux tester la connexion

    4.1 – on récupére l’ip du serveur

    ip a

    4.2 – on se connecte sur le serveur avec un navigateur

    5 – Apache crée automatiquement un utilisateur www-data et un groupe www-data. On va nommer cet utilisateur propriétaire du répertoire /var/www/html qui est le répertoire des sites.

    sudo chown www-data:www-data /var/www/html/ -R

    6 – On teste la résolution de nom

    sudo apache2ctl -t

    Si la réponse est « Syntax OK » alors tout est bon, on a fini

    Si la réponse est « Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message » alors on passe à l’etape 7.

    Cette erreur signifie que le nom d’hôte du système ne peux être résolu via DNS, il faut donc forcer un nom d’hôte par apache

    7 – Forcer le nom d’hôte sur apache

    sudo nano /etc/apache2/conf-available/servername.conf

    7.1 – Ajouter la ligne

    ServerName localhost

    On peux bien entendu mettre le nom de son domaine à la place de localhost si on veux mettre apache sur son domaine

    7.2 – Activer ce fichier de configuration

    sudo a2enconf servername.conf

    Redémarrer Apache

    sudo systemctl reload apache2

    8 – La suite

    On peux, par la suite, installer PHP. Le tuto se trouve ici

  • Pouvoir se connecter en SSH sur une machine LXC Proxmox

    Toute petite astuce très rapide mais qui peux en sauver plus d’un. Lorsque l’on crée une machine LXC sur proxmox il nous demande le mot de passe root. on le mets et on peux facilement ce connecter en console sur proxmox, par contre impossible de se connecter en ssh

    Pour pallier à ce problème c’est relativement simple

    Sur la console proxmox on va ouvrir le fichier /etc/ssh/sshd_config

    nano /etc/ssh/sshd_config

    Décommenter puis modifier la ligne PermitRootLogin prohibit-password pour mettre PermitRootLogin yes

    Enregistrer le fichier avec CTRL+X puis y puis entrée

    On redémarre ssh

    systemctl restart ssh

    La connexion en ssh est possible

  • Créer service sur linux

    Pour créer un service sur linux

    On rend le fichier exécutable

    sudo chmod +x nomfichier.sh

    On crée le fichier de service

    sudo nano /etc/systemd/system/nomservice.service

    Le fichier de service dois ressembler à ça

    [Unit]
    Description=Description du service
    After=network.target
    
    [Service]
    WorkingDirectory=répertoire du fichier exécutable
    ExecStart=fichier exécutable avec son chemin complet
    Restart=always ==> always pour redémarrer en cas de soucis
    RestartSec=temps en seconde pour redémarrage en cas de soucis
    User=nom de l'utilisateur "qui doit lancer le service"
    Environment=DOTNET_ENVIRONMENT=Production
    
    [Install]
    WantedBy=multi-user.target
    Description=Description du service
    After=network.target

    Penser à remplacer les valeurs par les bonnes valeurs

    CTRL+X pour fermer puis y pour enregistrer puis entrée

    On active le service

    sudo systemctl enable nomservice.service

    On démarre le service pour pouvoir l’utiliser sans redémarrer le serveur (étape facultative, on peux juste redémarrer le serveur)

    sudo systemctl start nomservice.service
  • Monter un dossier réseau alors qu’il y a un espace dans le nom du partage réseau

    Pour monter un dossier réseau sur linux alors qu’il y a un espace dans le nom du partage réseau il faut

    • Créer le point de montage
    sudo mkdir /mnt/montage

    montage est le nom du point de montage que l’on veux

    • On installe cifs-utils
    sudo apt install cifs-utils
    • On monte le partage
    sudo mount -t cifs "//192.168.1.254/Disque 1/Echange_VMS" /mnt/montage \
      -o username=guest,password=,vers=3.0

    En admettant que 192.168.1.254 soit l’ip du serveur et le nom de l’utilisateur soit guest

    Si maintenant on veux qu’il soit monter automatiquement au démarrage de linux

    • Ouvrir fstab
    sudo nano /etc/fstab
    • Ajouter
    //192.168.1.254/Disque\0401/Echange_VMS /mnt/montage cifs username=guest,password=,vers=3.0,iocharset=utf8 0 0

    Toujours en admettant que 192.168.1.254 soit l’ip du serveur et guest soit le nom d’utilisateur

    • CTRL + x pour quitter puis y pour enregistrer et finalement entrée
    • On reloade le daemon systemctl
    sudo systemctl daemon-reload
    • On teste pour voir si tout est ok
    sudo mount -a
    ls /mnt/montage

    Toujours en admettant que l’on a monté le chemin réseau dans /mnt/montage

    Si on voit les fichiers, tout est correct

    Attention : par défaut ce type de montage monte en lecture seule. On ne peux pas créer de fichiers.

    touch test.txt
    touch: cannot touch 'test.txt': Permission denied

    Si on veux monter en lecture écriture il faut repartir dans fstab puis modifier la ligne

    //192.168.1.254/Disque\0401/Echange_VMS /mnt/montage cifs username=guest,password=,vers=3.0,iocharset=utf8 0 0

    Pour rajouter

    ,rw,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,nofail,x-systemd.automount

    Entre vers=3.0 et 0 0

    La ligne devrait donc ressembler à

    //192.168.1.254/Disque\0401/Echange_VMS /mnt/montage cifs username=guest,password=,vers=3.0,rw,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,nofail,x-systemd.automount,iocharset=utf8 0 0
    • on enregistre le fstab
    • on reload le daemon systemctl
    • on teste

    Si tout est correct, on peux redémarrer la machine

    Il peux y avoir une erreur sur l’uid non valide

    Si tel est le cas on fait

    id

    Le système va nous donner l’uid et le gid de l’utilisateur et on les reporte dans le fstab aux endroits uid= et gid=

    id
    uid=1000(nicolas) gid=1000(nicolas) groups=1000(nicolas),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd)