-
-
-
-
-
-
-
-
janvier 2024 : The simplest way is to use the
Raspberry Pi Imager which enables you to select an Ubuntu image when flashing your SD card. If you are on Ubuntu, run:
sudo snap install rpi-imager
-
juin 2024 : sélectionner “other general-purpose
OS”, puis “Ubuntu”, puis “Ubuntu Server 22.04 LTS (64-bit)” (des tests avec la 24.04 amènent à des problèmes de connexion réseau
en cours… )
-
-
-
bien noter les identifiants, mdp,… utilisés
liens adaptés pour Ubuntu 22.04.3 :
Installation
démarrer le Raspberry Pi 3 avec la carte flashée préalablement
relever l'IP du serveur par la commande “ip a” (le clavier peut être qwerty)
Connexion à partir d'une autre machine : ssh ubuntu@ip_adress (remplacer ip_adress par la valeur relevée)
Clé SSH
générer sur le PC connecté une paire de clés privée/publique si non disponible (ex : ssh-keygen -o -b 4096 -t rsa)
copier la clé publique sur le serveur
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@ip_adress
alternativement, la clé peut être installée lors de la création de la carte µSD par RPi imager
tester la connexion qui doit fonctionner sans mdp : ssh ubuntu@ip_adress
mises à jour :
sudo apt-get update
sudo apt-get upgrade
redémarrage : sudo reboot
arrêt : sudo halt
Utiliser/configurer le wifi :
-
netplan : nouvel outil de configuration réseau utilisant des fichiers de description YAML
-
-
- 50-cloud-init.yaml
# /etc/netplan/50-cloud-init.yaml netplan configuration file
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
# wifi setup informations
wifis:
wlan0:
optional: true
access-points:
"SSID":
password: "*******"
dhcp4: no
addresses: [192.168.1.251/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 8.8.8.8]
À ce stade, le Raspberry Pi est connecté par wifi avec l'adresse IP 192.168.1.251
-
https://doc.ubuntu-fr.org/msmtp envoi d'emails par SMTP : solution idéale si vous avez besoin que votre serveur vous envoie les courriels de notifications sans avoir à mettre en place une solution lourde.
sudo apt install apache2
-
sudo apt install php libapache2-mod-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_adress/phpinfo.php
La configuration de PHP se fait via un fichier php.ini localisé sous Noble Numbat (Ubuntu 24.04) ici : /etc/php/8.3/apache2/php.ini
Paquets PHP souvent utiles (des modules additionnels pourront être installés en fonction des logiciels installés sur le serveur ainsi que leurs extensions/plugins) :
-
Compléments d'installation du serveur
-
sudo apt install msmtp msmtp-mta
Configuration pour l'envoi de courriels au niveau du système : sudo nano /etc/msmtprc
vérification (doc.ubuntu-fr) ls -la /usr/sbin/sendmail
test : echo 'message' | msmtp user@domain.com
Effacer le nom d'utilisateur et le mot de passe si le serveur est diffusé, et/ou rendre invalide le compte par défaut de msmtp pour éviter des envois erronés vers le serveur d'email !!
Ajustement de la timezone
Installation type sur un serveur LA(M)P : DokuWiki
-
Connexion et identification sur le serveur : ssh username@dns or username@ip_address (ou via les paramètres de PuTTY);
se placer dans le répertoire web : cd /var/www/html
créer un répertoire pour le wiki : sudo mkdir wiki00
s’y placer : cd wiki00
-
décompresser l’archive : sudo tar -xzvf dokuwiki-stable.tgz --strip-components=1
effacer l’archive : sudo rm dokuwiki-stable.tgz
-
sudo chown -R www-data:www-data /var/www/html/wiki00
cd /var/www/html/wiki00 (si on n'y était pas)
fichiers : sudo find . ! -type d -exec chmod 660 {} \;
répertoires : sudo find . -type d -exec chmod 770 {} \;
-
sudo rm install.php (effacement du script d'installation)
Variante avec réinstallation d'un backup :
copier le fichier de backup (exemple sitebackup_wiki_2024-04-03-042501.tar.gz) dans le répertoire utilisateur
cd /var/www/html
libérer/effacer/renommer le répertoire wiki
déplacer le backup : sudo mv /home/username/sitebackup_wiki_2024-04-03-042501.tar.gz sitebackup_wiki_2024-04-03-042501.tar.gz
sudo tar -xzvf sitebackup_wiki_2024-04-03-042501.tar.gz –strip-components=3
effacer le fichier de backup : sudo rm sitebackup_wiki_2024-04-03-042501.tar.gz
-
sudo chown -R www-data:www-data /var/www/html/wiki
cd /var/www/html/wiki (si on n'y était pas)
fichiers : sudo find . ! -type d -exec chmod 660 {} \;
répertoires : sudo find . -type d -exec chmod 770 {} \;
Vérifier la réinstallation
Le wiki est pré-configuré et (presque) opérationnel ! Réglages complémentaires de la configuration via le menu d’administration - “Paramètres de configuration” :
choisir la langue de l’interface language fr
-
mode de création des fichiers : choisir 0660 (au lieu de 0644)
Dans les paramètres d’authentification, rubrique “Actions à désactiver dans DokuWiki”, vérifier la désactivation (cocher) de l’action “s’enregistrer”, sauf si vous voulez permettre à n’importe quel quidam de s’inscrire et appartenir au groupe “user”
pour le délai avant indexation (paramètres anti-spam), vous pouvez vous contenter de 60*5 plutôt que 60*60*24*5, qui contraint à une attente de 24H après édition, avant que l’indexation par un robot de moteur de recherche ne redevienne possible
Si comme administrateur vous souhaitez être averti à chaque modification effectuée par un autre utilisateur, indiquez votre email derrière “Notifier les modifications à cette adresse de courriel” (paramètres d’édition)
ensuite, vous pouvez aussi activer l’abonnement aux pages, ce qui aura pour effet de générer un envoi par email notifiant la modification. Le délai peut être réglé par l’option suivante (“Délai après lequel les listes d’abonnement …”)
Mentionner dans ce dernier cas l’expéditeur des notifications par courriel du wiki (paramètres avancés)
Exploitation
Dispositif USB externe
-
-
une clé USB insérée dans un PC → ligne finale de /etc/mtab :
/dev/sdg1 /media/username/USB\040DISK vfat rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro 0 0
la commande “ls -l /dev/disk/by-uuid/” donne : lrwxrwxrwx 1 root root 10 mar 15 10:54 0133-98D2 → ../../sdg1
La même clé USB dans le Raspberry, permettant de détecter la chaîne “UUID” 0133-98D2 :
création du point de montage :
propriétaire et droits (ajuster l'utilisateur “pi” si utile) :
test du montage et démontage en mode manuel (ajuster l'utilisateur “pi” si utile) :
montage récurrent : ajouter une ligne à la fin du fichier /etc/fstab (ajuster l'utilisateur “pi” si utile) :
sudo nano /etc/fstab
UUID=0133-98D2 /media/usb vfat auto,nofail,noatime,users,rw,uid=pi,gid=pi 0 0
redémarrer : sudo reboot
Script de sauvegarde et automatisation via crontab
Script de sauvegarde
→ ajuster l'utilisateur “pi” si utile (ubuntu,…)
Backup sur l'utilisateur pi, (crontab -e) : 25 4 * * * /home/pi/backups/backup.sh
Le script bash backup.sh doit être exécutable. Après sa création, il faudra exécuter “chmod +x backup.sh”
doc :
Création d'un lien symbolique :
#!/bin/bash
THESITE="wiki01"
THEDB="dbname"
THEDBUSER="dbuser"
THEDBPW="dbpwd"
THEDATE=`date +%F-%T`
# backup de la base de données NON UTILISÉ
#mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > ~/${THESITE}backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gz
# backup des fichiers du site
#tar -czf ~/${THESITE}backups/files/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
tar -czf /media/usb/sauvegardes/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
# éliminer les fichier vieux de plus de 5 jours
find ~/backups/files/site* -mtime +5 -exec rm {} \;
find ~/backups/files/db* -mtime +5 -exec rm {} \;
Version après élimination d'erreurs, et sans effacement :
#!/bin/sh
THESITE="wiki01"
THEDATE=`date +%F-%H%M%S`
# backup des fichiers du site
tar -czf /media/usb/sauvegardes/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
Test du backup :
./backup.sh
Part of bash (version >=4.2) script to remove files in a given directory, older than 8 days, but leave files dated the first day of each month :
# Set the directory to clean up
DIR="~/backups/files/"
# Calculate the cutoff date
CUTOFF=$(date -d "8 days ago" +%s)
# Loop through the files in the directory
for FILE in "$DIR"/*
do
# Check if the file is older than 8 days
if [[ -f "$FILE" && $(date -r "$FILE" +%s) -lt $CUTOFF ]]
then
# Check if the file's date is the first day of the month
if [[ $(date -r "$FILE" +%d) -eq 01 ]]
then
echo "Skipping $FILE"
else
echo "Deleting $FILE"
rm "$FILE"
fi
fi
done
Here's how the script works:
Set the DIR variable to the directory you want to clean up.
Use the date command to calculate the cutoff date. This will be 8 days ago from today.
Loop through each file in the directory using a for loop.
Check if the file is a regular file (-f) and if its modification time is older than the cutoff date. If it is not, then skip to the next file.
If the file's modification time is older than the cutoff date, check if the file's date is the first day of the month. If it is, then skip to the next file.
If the file's date is not the first day of the month, then delete the file using the rm command.
Références sur les formats de date :
Références sur les scripts de backup
Configuration de base du DokuWiki