Aller au contenu

Serveur Web⚓︎

Mise en place d'un serveur web sur Raspberry Pi.



Configuration de l'environnement (LAMP)⚓︎

L'environnement LAMP est l'environnement que j'ai sélectionné pour le serveur car c'est généralement celui que vous retrouverez sur les serveurs Web (tel que proposé par OVH par exemple).

LAMP signifie Linux (le système d'exploitation), Apache (serveur HTTP le plus populaire devant Nginx), MySQL (pour la base de données) et PHP (Langage pour créer des pages web dynamiques).

Premièrement, mettez à jour votre système (Cf. mises à jour)

Installation d'Apache⚓︎

sudo apt install apache2

Changez les droit d'acces :

sudo chown -R $USER:www-data /var/www/html/
sudo chmod -R 770 /var/www/html/

Installation de PHP⚓︎

sudo apt install php php-mbstring

Installation de MySQL⚓︎

sudo apt install mariadb-server php-mysql

Configurez MySQL en changeant l'utilisateur root (renforce la sécurité)

  • Se connecter à la base :
sudo mysql --user=root
  • Configuration :
1
2
3
DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY '[votreMotDePasse]';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
  • Maintenant pour se connecter à la base :
sudo mysql -u root -p

Installation de PHPMyAdmin⚓︎

1
2
3
4
5
6
7
sudo apt install phpmyadmin
# choix : "apache" puis "non".

sudo phpenmod mysqli
sudo systemctl reload apache2

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Ajout du site en HTTPS⚓︎

Configuration requise⚓︎

Configuration Linux⚓︎

Lignes de commandes pour ajouter un site et faire une redirection en https avec un certificat SSL certifié (avec certbot)

cd /etc/apache2/sites-available/  # Repertoire de configuration apache.

Créez et ouvrez le fichier de configuration Apache du site (Exemple de fichier ici)

sudo nano nomSite.conf

Activation du site et application des modifications apache :

sudo a2ensite nomSite # Active le site.
sudo systemctl reload apache2 # Relance apache.

Mettre en place la redirection (https) et le certificat SSL avec certbot :

sudo certbot --apache # Crée la redirection et le certificat SSL

attention

Si vous devez la configuration OVH faites la avant la mise en place de la redirection de certbot !

Note

Lorsque vous lancez la commande cela va vous lister tous vos sites, et cela vous demandera quel site choisir donc sélectionner le ou tous les sites si vous le souhaitez.

Note

Ensuite, cela vous demandera de mettre la redirection (ajout automatique des lignes dans votre fichier nomSite.conf) donc si vous le souhaitez, acceptez (normalement la réponse 2).

Configuration OVH⚓︎

La configuration OVH (ou de votre propre hébergeur) sert à avoir un sous-domaine nous permettant d'acceder à notre NAS sans utiliser l'adresse IP en brut (et puis sinon c'est pas beau !).

Sur ovh.com :

  • Web Cloud > Domaines
  • Sélectionner votre nom de domaine
  • DynHost
  • Ajouter un DynHost
  • Remplir le nom du sous-domaine et l'adresse IP
  • Enregistrer

Note

Si vous utilisez un sous-domaine pour rediriger sur votre NAS maison, mettez l'adresse IP de votre box.

Note

Noubliez pas d'activer les ports de votre box (cf. la section configuration de votre box et si vous avez un parefeu, ceux de votre raspberry (cf. la section sécurité).

Note

Si vous utilisez un autre hébergeur, vous devrez chercher la section DynHost de votre nom de domaine (si votre fournisseur le propose).

Configuration raspi pour dynhost ovh⚓︎

attention

Mise à jour de la documentation avec le dynhost-update ici.

1
2
3
4
sudo wget https://raw.githubusercontent.com/RaspbianFrance/dyndnsovh/master/dyndns.sh -O /usr/local/sbin/dyndns.sh
sudo chmod 700 /usr/local/sbin/dyndns.sh

sudo nano /usr/local/sbin/dyndns.sh
1
2
3
DYNHOST_ID='[votrenomdedomaine.fr-XXXX]'
DYNHOST_PASSWORD='[motdepasse]'
DOMAIN_NAME='[*.sousdomaine.fr]'

Site raspberry-pi.fr sur les noms de domaine

Certbot⚓︎

Installation⚓︎

Installer snapd

sudo apt update
sudo apt install snapd

Vérification installation et mise à jour

sudo snap install core
sudo snap refresh core

Installer Certbot

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Utilisation⚓︎

Installation d'un certificat (avec la liste des domaines) :

sudo certbot --apache

Supprimer un certificat :

1
2
3
certbot delete --cert-name example.com
# or to choose from a list:
certbot delete

Configuration de la box⚓︎

Exemple de configuration de votre box (Ici avec une box orange) afin d'accéder depuis l'exterieur à votre nas.

Annexes⚓︎

Retrouvez toutes les annexes de la documentation.

Exemple fichier de configuration Apache⚓︎

Tips

Vous pouvez très bien modifier "nomSite.nom-domaine.fr" en "nom-domaine.fr" ou "nom-domaine.fr/nomSite".

<VirtualHost *:80>
    ServerName nomSite.nom-domaine.fr
    DocumentRoot /votre/path/www/nomSite/

    <Directory /votre/path/www/nomSite>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </Directory>

    CustomLog /var/log/apache2/nomSite.access.log "combined"
    ErrorLog /var/log/apache2/nomSite.error.log
</VirtualHost>