Mise en place d’un mini serveur Raspbian

Matériel

  • Raspberry 3B+
  • Carte SD 64Ko
  • Disque dur USB (option)
  • PC (Mac, Linux ou Win)

Cas d'un macOS

Installation de l’OS Raspbian sur la carte SD

  • Téléchager Raspbian depuis le site : xxxx
  • Téléchager le flasheur Balena Etcher
  • Placer la carte SD vierge dans une clé USB et connecter au PC
  • Graver l’image raspbian sur la carte SD
  • Sortir la clé USB, puis la rebrancher. Elle est maintenant visible dans l’explorer de fichier sous le nom de boot.
Il s'agit de créer un serveur, donc l'interface graphique ne sera pas exploitée. La communication avec le serveur sera faite via SSH. Pour cela il faut autoriser la communication SSH d'une par et parametrer la connection internet WiFi.
  • Laisser la carte SD connecter au PC pour la suite.
cd /Volume/boot
touch ssh
  • créer le fichier wpa_supplicant.conf dans votre répertoire *HOME (~/)
country=fr
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="MDV"
psk="nounours"
  • Puis placer wpa_supplicant.conf à le racine de la carte SD (boot)
vi wpa_supplicant.conf
cp wpa_supplicant.conf /Volumes/boot/
  • Retirer la carte SD de la clé USB et la placer sur la carte Raspberry.
  • Brancher l’alimentation 5V
  • Aller sur la Box Internet et chercher l’adresse IP attribuée à la Raspberry.
Par exemple : 192.168.0.12

Sur le Mac, dans la fenêtre Terminal :
$ ssh pi@192.168.0.11
The authenticity of host '192.168.0.11 (192.168.0.11)' can't be established.
ECDSA key fingerprint is SHA256:EVeBO4z2ywsuJd9DNFj3yFGEQPqiIfaa9Jb+NzqM2Xo.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.11' (ECDSA) to the list of known hosts.
pi@192.168.0.11's password: 
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jul 31 15:54:16 2019

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

pi@raspberrypi:~ $ 

Cas d’une connexion sans mot de de passe, via une clé RSA.

On suppose l’existence d’une paire de clé (publique et privé). La clé publique est à placer sur la Raspberry dans le fichier authorized_keys du répertoire .ssh dans le répertoire $HOME (~/).
$ mkdir –p .ssh
$ chmod 700 .ssh
$ cd .ssh
$ vi authorized_keys
Entrer sa clé publique. Exemple
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA ...-rsa-key
Sauver le fichier. Puis
$ chmod 700 authorized_keys
$ sudo reboot
$ ssh pi@192.168.0.11
Cela donne, sans demande de mot de passe.
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jul 31 16:13:44 2019

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

pi@raspberrypi:~ $ 

Installation de LAMP

Mise à jour de OS Raspbian
sudo apt-get update && sudo apt-get upgrade -y
Installons successivement : Apache2, PHP7.3 , MySQL (MariaDB).

Installation de Apache2

sudo apt-get install apache2 apache2-doc
On teste le bon fonctionnement d'Apache à l'aide d'un navigateur.
http://192.168.0.11


Oun aura besoin de redémarrer Apache avec la commande
sudo service apache2 restart

Installation de PHP

sudo apt-get install php
En Août 2019, la vesion de PHP sera
PHP 7.3
On teste PHP en ligne de commande.
$ php -v
PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies
pi@raspberrypi:~ $ 

Testons PHP via Apache.
cd /var/www/html
sudo nano index.php
Insérez dans index.php le code suivant:
<?php phpinfo(); ?>

http://192.168.0.11/index.php donne


Installation de MySQL/MariaDB

sudo apt-get install mariadb-server On teste le moteur MariaDB (Mysql)
$ sudo mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 49
Server version: 10.3.15-MariaDB-1 Raspbian testing-staging
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Installation de phpMyAdmim

sudo apt-get install phpmyadmin
On donne des droits "all privileges" au user phpmyadmin.
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;

Correctif sur phpmyadmin

Pour corriger un bug dans phpmyadmim, editer : /usr/share/phpmyadmin/libraries/sql.lib.php
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Voir ici :
A la ligne 613, remplacer
&& ((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr'] == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*')))
par
&& ((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr']) == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*'))
Redémarrer le service Apache
sudo service apache2 restart

Installation de Subversion

sudo apt-get install subversion

Installation de FTP Server

sudo apt-get -y install vsftpd openssl

Installation de FTP Client

sudo apt-get -y install ftp