Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

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
materiel:raspi:start-new [2019/06/08 15:31]
admin
materiel:raspi:start-new [2019/06/18 19:37] (Version actuelle)
admin
Ligne 8: Ligne 8:
  
  
-==== - Serveur DNS : unbound ==== 
  
-voir la page [[logiciel:​internet:​serveur:​dns:​unbound:​unbound_linux]] [[logiciel:​internet:​serveur:​logiciels:​internet:​serveur:​dns:​unbound-new|]] 
  
-=== - Configuration de dnsmasq (serveur DNS local) === 
- 
-Le paquet a été installé sur le RPI. Il reste à le configurer. 
- 
-Se placer sur le RPI, directement,​ via ssh ou vnc. 
- 
-__Objectif__ : schéma du réseau 
- 
-<​ditaa>​ 
-        +----------+ 
-        |          | 
-        | Internet | 
-        | {o}      | 
-        +----------+ 
-              ^  
-              | 
-      +-------+---------+ ​                 
-      |    Freebox ​     |                 ​+---------------+ 
-      |-----------------| ​                ​| ​   chateau ​   | 
-      | o 192.168.0.254 +---------------->​|---------------| 
-      | o DHCP          |                 | o 192.168.2.1 | 
-      +-------+---------+ ​                ​+---------------+ 
-              ^ 
-              : 
-        Wi-Fi | 
-              v 
-    +------------------------+ 
-    |    framboise (RPI)     | 
-    |------------------------| 
-    | o serveur DNS / DHCP   | 
-    | o wlan0:​192.168.0.31 ​  | 
-    | o serveur HTTP         | 
-    +------------------------+ 
-</​ditaa>​ 
- 
-Voir la page [[logiciel:​internet:​serveur:​dns:​dnsmasq:​dnsmasq#​Configuration]] 
- 
-==== - Serveur LAMP ==== 
- 
-Voir la page [[tutoriel:​internet:​lamp:​start|]] 
- 
-**Lighttpd** ("​**lighty**"​) et SQLite sont beaucoup moins gourmands en ressources que Apache et MySQL. 
- 
-Voir la page [[logiciel:​internet:​serveur:​http:​lighty:​llsp]] en choisissant les paragraphes concernant le RPI. 
- 
-=== - Configuration === 
- 
-La définition d'un hôte virtuel permet de redéfinir les valeurs par défaut du fichier principal. 
- 
-  ? public_html 
-  : Lors de la création d'un compte utilisateur,​ les droits par défaut interdisent à lighttpd de traverser le dossier. Pour utiliser les sites personnels (dossier public_html),​ il faut donc donner aux "​autres"​ (et donc à l'​utilisateur lighttpd) le droit de traverser le répertoire d'​accueil. Chaque utilisateur fera :<​code>​chmod o+x $HOME</​code>​ 
- 
-L'​ajout d'​hôte supplémentaire est très simple et permet de varier les options de configuration. 
- 
-Ajout du nom du site dans le DNS ou, pour test, dans le fichier **/​etc/​hosts** 
- 
-  127.0.0.1 ​      ​nommachine site1 site2 site3  localhost.localdomain localhost 
- 
-Exemple de définition d'un hôte dans notre fichier de configuration (messites.conf) : 
- 
-<file - messites.conf>​ 
-server.modules += ( "​mod_dirlisting"​ ) 
- 
-$HTTP["​host"​] == "​site1"​ { # hote du site http://​site1/​ 
-    server.document-root = "/​var/​www/​lighttpd/​site1"​ 
-    dir-listing.activate = "​enable"​ # affiche la liste des fichiers d'un répertoire 
-    dir-listing.hide-dotfiles = "​enable"​ #bloque l'​accès aux fichier cachés 
-    accesslog.filename = "/​var/​log/​lighttpd/​site1/​access_log"​ #un fichier de log dédié 
-} 
-</​file>​ 
- 
-Il est possible d'​utiliser les expressions régulières dans les nom d'​hôtes en utilisant =~ au lieu de == : $HTTP["​host"​] =~ "​(www.|)site1"​. Remarque: server.modules = assigne le contenu à server.modules,​ server.modules += ajoute le contenu en conservant l'​existant à server.modules. 
- 
-En l'​état actuel, seules les pages statiques fonctionnent. Pour du PHP, il est nécessaire d'​installer l'​extension **fast-cgi** et **php-cli** ([[http://​doc.fedora-fr.org/​wiki/​Installation_et_configuration_de_PHP|Installation_et_configuration_de_PHP]]). 
- 
-=== - Extensions === 
- 
-Il existe un grand nombre d'​extensions dont la liste est ici : [[http://​redmine.lighttpd.net/​projects/​lighttpd/​wiki/​Docs]] (en). 
- 
-=== - Déplacement de la racine du site (Apache) === 
- 
-Apache est démarré à son installation. On peut le vérifier depuis un pc du réseau en ouvrant [[http://​framboise.home]] dans un navigateur. Il s'​affiche : 
- 
-**It works!** -> le serveur fonctionne. 
- 
-Sauvegarder l'​original du fichier **/​etc/​apache2/​sites-available/​default** : 
- 
-  * <​code>​sudo cp /​etc/​apache2/​sites-available/​default /​etc/​apache2/​sites-available/​default.original</​code>​ 
- 
-[[tutoriel:​ficedit#​Modifier un fichier avec les droits d'​administration|Ouvrir avec les droits d'​administration]] le fichier **/​etc/​apache2/​sites-available/​default** et y remplacer les occurences de **/​var/​www** par **/​le/​chemin/​voulu** (par exemple **/​media/​Reservoirs/​www** : 
- 
-^remplacer^par^ 
-|<​code> ​   DocumentRoot /​var/​www</​code>​|<​code> ​   DocumentRoot /​media/​Reservoirs/​www</​code>​| 
-|<​code> ​   <​Directory /​var/​www/></​code>​|<​code> ​   <​Directory /​media/​Reservoirs/​www/></​code>​| 
- 
-Redémarrer le serveur apache par : 
- 
-  * <​code>​sudo service apache2 restart</​code>​ 
- 
-Désormais, en tapant l'​adresse [[http://​framboise]],​ on aboutit dans le répertoire /​media/​Reservoirs/​www. 
- 
-=== - Création de sous-domaines automatisés === 
- 
-Il faut d'​abord installer le module vhost_alias : 
- 
-  * <​code>​a2enmod vhost_alias 
-/​etc/​init.d/​apache2 reload</​code>​ 
- 
-Tout se passe dans le répertoire **/​etc/​apache2/​sites-available/​**. Ce répertoire contient un fichier de configuration par serveur. Le serveur par défaut est défini par le fichier **default**. 
- 
-Nous prendrons comme exemple le sous-domaine **doc.framboise.home** qui correspond à un dokuwiki de racine **/​media/​Reservoirs/​www/​doc**. 
- 
-Les sous-domaines sont déduits de l'​appel : 
- 
-  * sous-répertoires de domaine : 
-    * **xxx**.domaine.tld -> répertoire www/​domaine/​**xxx** 
-    * **yyy**.domaine.tld -> répertoire www/​domaine/​**yyy** 
-  * mais on peut aussi faire des répertoires plus élaborés : 
-    * **aaa**.domaine.tld -> répertoire www/​domaine/​**aaa**/​un_répertoire 
-    * **bbb**.domaine.tld -> répertoire www/​domaine/​**bbb**/​un_répertoire 
- 
-Créer une copie de **/​etc/​apache2/​sites-available/​default** -> **/​etc/​apache2/​sites-available/​framboise.home** 
- 
-Ajouter une directive VirtualDocumentRoot et ServerAlias dans la configuration de votre VirtualHost comme dans l’ex suivant : 
- 
-<code - framboise.home>​ 
-# obtenir le nom du serveur à partir de l'​entête "​Host:"​ 
-UseCanonicalName Off 
- 
-<​VirtualHost *:80> 
-    DocumentRoot /​media/​Reservoirs/​www 
-    ServerName framboise.home 
-    ServerAlias *.framboise.home 
-    VirtualDocumentRoot /​media/​Reservoirs/​%-3 
-    # format de journal avec l'​appel 
-    LogFormat "%V %h %l %u %t \"​%r\"​ %s %b" vcommon 
-    CustomLog access.log vcommon 
-</​VirtualHost>​ 
- 
-# réglages pour les répertoires du dokuwiki 
-<​Directory /​media/​Reservoirs/​www/​doc>​ 
-    Order deny,allow 
-    allow from all 
-</​Directory>​ 
- 
-<​LocationMatch "/​doc/​(data|conf|bin|inc)/">​ 
-    Order allow,deny 
-    Deny from all 
-    Satisfy All 
-</​LocationMatch>​ 
-</​code>​ 
- 
-  * variable %0 = le sous-domaine déduit de l'​adresse appelée. (xxx.domaine.com) 
-  * variable %1 = premier élément de l'​adresse appelée. (xxx) 
-  * variable %2 = 2e élément de l'​adresse appelée. (domaine) 
-  * variable %-1 = dernier élément de l'​adresse appelée. (com) 
-  * variable %-2 = avant-dernier élément de l'​adresse appelée. (domaine) 
-  * variable %-3 = avant-avant-dernier élément de l'​adresse appelée. (xxx, yyy, ...) 
- 
-Ici, %-3 permet d'​éviter les problèmes dûs à www. 
- 
-Enregistrer le fichier framboise.home et relancer apache : 
- 
-  * <​code>​sudo a2ensite framboise.home 
-sudo service apache2 restart</​code>​ 
- 
-=== - Methode simple pour un domaine === 
- 
-Pour créer un sous-domaine (par ex. doc.framboise),​ nous allons créer un fichier doc.framboise dans ce répertoire. Chaque sous-domaine doit être répertorié dans le dns ou dans le fichier hosts. 
- 
-Éditer le fichier ''/​etc/​hosts''​ et relancer Apache : 
- 
-  sh fredit.sh /etc hosts \ 
-  && ssh framboise "sudo /​etc/​init.d/​apache2 restart"​ 
-  ​ 
-Ajouter au fichier ''/​etc/​hosts''​ la ligne : 
- 
-  192.168.0.100 ​ doc.framboise 
- 
-Enregistrer : apache se relance. 
- 
-Copier le fichier /​etc/​apache2/​sites-available/​default -> doc.framboise : 
- 
-  scp framboise:/​etc/​apache2/​sites-available/​default /​etc/​apache2/​sites-available/​doc.framboise 
- 
-, l'​éditer,​ enregistrer le site et relancer apache : 
- 
-  sh fredit.sh /​etc/​apache2/​sites-available default \ 
-  && ssh framboise "sudo a2ensite doc.framboise;​ \ 
-  sudo /​etc/​init.d/​apache2 restart"​ 
- 
-et y ajouter les lignes : 
- 
-<file - doc.framboise>​ 
-NameVirtualHost doc.framboise 
- 
-<​VirtualHost doc.framboise>​ 
-    ServerAdmin webmaster@domaine.fr 
-    ServerName www.doc.framboise 
-    ServerAlias doc.framboise 
-    DocumentRoot /​media/​Reservoirs/​www/​dokuwiki 
- 
-    # réglages pour le répertoire 
-    <​Directory /​media/​Reservoirs/​www/​dokuwiki>​ 
-        Order deny,allow 
-        allow from all 
-    </​Directory>​ 
-  
-    <​LocationMatch "/​dokuwiki/​(data|conf|bin|inc)/">​ 
-        Order allow,deny 
-        Deny from all 
-        Satisfy All 
-    </​LocationMatch>​ 
-</​VirtualHost>​ 
-</​file>​ 
- 
-Pour pouvoir accéder depuis deux adresses (par exemple une en local et une sur internet) : 
- 
-<note important>​Les adresses doc.framboise et 1.2.3.4 doivent exister dans le DNS ou le hosts</​note>​ 
- 
-<file - doc.framboise>​ 
-NameVirtualHost doc.framboise 
-NameVirtualHost 1.2.3.4 
- 
-<​VirtualHost 1.2.3.4 doc.framboise>​ 
-    ServerAdmin webmaster@domaine.fr 
-    ServerName www.doc.framboise 
-    ServerAlias doc.framboise 
-    DocumentRoot /​media/​Reservoirs/​www/​dokuwiki 
- 
-    # réglages pour le répertoire 
-    <​Directory /​media/​Reservoirs/​www/​dokuwiki>​ 
-        Order deny,allow 
-        allow from all 
-    </​Directory>​ 
-    ​ 
-    <​LocationMatch "/​dokuwiki/​(data|conf|bin|inc)/">​ 
-        Order allow,deny 
-        Deny from all 
-        Satisfy All 
-    </​LocationMatch>​ 
-</​VirtualHost>​ 
-</​file>​ 
- 
-=== - Autres exemples de sous-domaines === 
- 
-fichier de configuration apache /​etc/​apache2/​sites-available/​domaine.com (http://​forum.ubuntu-fr.org/​viewtopic.php?​id=361680):​ 
- 
-__domaine.com__ : 
- 
-<​file>​ 
-NameVirtualHost *:80 
- 
-<​VirtualHost *:80> 
- 
-    ServerAdmin admin@domaine.com 
-    ServerName ​  ​www.domaine.com 
-    ServerAlias domaine.com 
- 
-    UseCanonicalName Off 
- 
-    DocumentRoot /​websites/​www.domaine.com 
-        <​Directory /​websites/​www.domaine.com>​ 
-            Options Indexes FollowSymlinks 
-            AllowOverride none 
-            Order deny,allow 
-            Allow from all 
-        </​Directory>​ 
- 
-    ErrorLog /​var/​log/​apache2/​www_error.log 
-    LogLevel warn 
-    CustomLog /​var/​log/​apache2/​www_access.log combined 
-    ServerSignature On 
- 
-</​VirtualHost>​ 
-</​file>​ 
- 
-UseCanonicalName Off -> le nom du serveur est déduit du contenu de l'​entête Host: de la requête0. 
- 
-__sql.domaine.com__ : 
- 
-<​file>​ 
-<​VirtualHost *:80> 
-    ServerName sql.domaine.com 
-    ServerAdmin "​admin@domaine.com"​ 
- 
-    DocumentRoot /​websites/​sql.domaine.com 
-        <​Directory /​websites/​sql.domaine.com>​ 
-            Options Indexes FollowSymlinks 
-            AllowOverride none 
-            Order deny,allow 
-            Allow from all 
-        </​Directory>​ 
-    ErrorLog /​var/​log/​apache2/​sql_error.log 
-    LogLevel warn 
-    CustomLog /​var/​log/​apache2/​sql_access.log combined 
-</​VirtualHost>​ 
-</​file>​ 
- 
-__dev.domaine.com__ : 
- 
-<​file>​ 
-<​VirtualHost *:80> 
-        ServerName dev.domaine.com 
-        ServerAdmin "​admin@domaine.com"​ 
- 
-        DocumentRoot /​websites/​dev.domaine.com 
-        <​Directory /​websites/​dev.domaine.com>​ 
-            Options Indexes FollowSymlinks 
-            AllowOverride none 
-            Order deny,allow 
-            Allow from all 
-        </​Directory>​ 
- 
- 
-        ErrorLog /​var/​log/​apache2/​dev_error.log 
-        LogLevel warn 
-        CustomLog /​var/​log/​apache2/​dev_access.log combined 
-</​VirtualHost>​ 
-</​file>​ 
- 
-__phpmyadmin.domaine.com__ : 
- 
-<​file>​ 
-<​VirtualHost *:80> 
-        ServerName phpmyadmin.domaine.com 
-        ServerAdmin "​admin@domaine.com"​ 
- 
-        DocumentRoot /​websites/​phpmyadmin.domaine.com 
-        <​Directory /​websites/​phpmyadmin.domaine.com>​ 
-            Options Indexes FollowSymlinks 
-            AllowOverride none 
-            Order deny,allow 
-            Allow from all 
-        </​Directory>​ 
-        ErrorLog /​var/​log/​apache2/​phpmyadmin_error.log 
-        LogLevel warn 
-        CustomLog /​var/​log/​apache2/​phpmyadmin_access.log combined 
-</​VirtualHost>​ 
-</​file>​ 
- 
-__blog.domaine.com__ : 
- 
-<​file>​ 
-<​VirtualHost *:80> 
-        ServerName blog.domaine.com 
-       ​ServerAdmin "​admin@domaine.com"​ 
- 
-        DocumentRoot /​websites/​blog.domaine.com 
-        <​Directory /​websites/​blog.domaine.com>​ 
-            Options Indexes FollowSymlinks 
-            AllowOverride none 
-            Order deny,allow 
-            Allow from all 
-        </​Directory>​ 
-        ErrorLog /​var/​log/​apache2/​blog_error.log 
-        LogLevel warn 
-        CustomLog /​var/​log/​apache2/​blog_access.log combined 
-</​VirtualHost>​ 
-</​file>​ 
- 
-=== - Rendre le serveur disponible sur Internet === 
- 
-Nous allons configurer le routeur pour autoriser les connexions ssh et des trafics Web grâce à son pare-feu au RPI.  
- 
-Par sécurité, le mot de passe de l'​utilisateur pi doit avoir été changé et éventuellement un nouvel utilisateur mis en place. ​ 
- 
-Il faut rediriger les adresses parvenant sur le routeur (la freebox) vers le RPI. 
-  
-Les ports à rediriger en TCP sont : 
-  * le port 80 (pour http) 
-  * le port 22 (pour ssh) 
-  * le port 1723 (pour vpn) 
- 
-{{:​materiel:​raspi:​rpi-ssh1-freebox-NAT-1.png|}} 
- 
-{{:​materiel:​raspi:​rpi-ssh1-freebox-NAT-2.png|}} 
- 
- 
-=== - Optimisation du Raspberry Pi pour Lighttpd Owncloud, WordPress et plus === 
- 
-source : [[http://​c-mobberley.com/​wordpress/​index.php/​2013/​05/​18/​raspberry-pi-lighttpd-optimisation-for-wordpress-owncloud-and-more/​]] 
- 
-Lighttpd, sont installés. Nous allons optimiser **lighttpd** pour le Raspberry Pi en installant PHP APC, en activant fast cgi et en mettant en place la compression avec gzip. 
- 
-Tout d'​abord,​ [[tutoriel:​ficedit#​Modifier un fichier avec les droits d'​administration|Ouvrir avec les droits d'​administration]] le fichier **/​etc/​lighttpd/​lighttpd.conf** et remplir la section server.modules avec les modules suivants : 
- 
-<​code>​ 
-server.modules = ( 
-    #"​mod_rewrite",​ 
-    "​mod_redirect",​ 
-    "​mod_alias",​ 
-    "​mod_access",​ 
-    #"​mod_auth",​ 
-    #"​mod_status",​ 
-    #"​mod_simple_vhost",​ 
-    #"​mod_evhost",​ 
-    #"​mod_userdir",​ 
-    #"​mod_secdownload",​ 
-    #"​mod_fastcgi",​ 
-    #"​mod_proxy",​ 
-    #"​mod_cgi",​ 
-    #"​mod_ssi",​ 
-    #"​mod_compress",​ 
-    #"​mod_usertrack",​ 
-    #"​mod_expire",​ 
-    #"​mod_rrdtool",​ 
-    #"​mod_accesslog"​ 
-) 
-</​code>​ 
- 
-=== - PostgreSQL === 
- 
-Voir la page [[sql:​postgresql#​PostgreSQL sur un RPI]] 
- 
-==== - Création d'un serveur FTP ==== 
- 
-Voir la page [[logiciel:​internet:​serveur:​ftp:​vsftpd:​vsftpd0]] 
- 
-Modifier le fichier /​etc/​vsftpd.conf : 
- 
-  sh fredit.sh /etc vsftpd.conf 
- 
-  * changer **anonymous_enable=YES** -> **anonymous_enable=NO** 
-  * Dé-commenter **local_enable=YES** et **write_enable=YES** 
-  * Ajouter à la fin du fichier **force_dot_files=YES** 
- 
-Sauvegarder et quitter le fichier. Redémarrer vsftpd : 
- 
-  ssh framboise 'sudo service vsftpd restart'​ 
- 
-Désormais, framboise est accessible par ftp depuis un PC (par exemple avec FileZilla) avec : 
-  * identifiant : **pi** 
-  * mot de passe de pi 
  
 ==== - Accéder au NAS depuis un autre PC ==== ==== - Accéder au NAS depuis un autre PC ====
- 
-=== - Depuis un PC sous Windows === 
- 
-Un clic droit sur le poste de travail, ajouter un lecteur réseau. 
- 
-Renseigner : 
-  * la lettre à utiliser pour ce disque 
-  * le répertoire,​ de la forme : **%%\\framboise.local\reservoirs%%** ou **%%\\192.168.0.31\reservoirs%%** 
-<WRAP center round tip 60%> 
-  * pour un utilisateur enregistré : son nom 
-  * pour la zone publique, son répertoire 
-</​WRAP>​ 
-  * cocher "​reconnecter au démarrage"​ 
- 
-Il est demandé un nom et un mot de passe 
-  * Fournir ceux d'un utilisateur enregistré sur samba du RPI (en général, **pi**). 
-  * Pour la zone publique, n'​importe quel nom convient. 
  
 === - Depuis un PC sous Linux === === - Depuis un PC sous Linux ===
- 
-Installez le paquet **[[apt>​cifs-utils]]** 
-ou en ligne de commande : 
-  * <​code>​sudo aptitude -y install cifs-utils</​code>​ 
- 
-== - en ligne de commande == 
- 
-Tapez : 
-  * <code >sudo mount -t cifs -o username=pi,​password=PASSWD //​framboise.local/​reservoirs /​disk/​RReservoirs</​code>​ 
- 
-en complétant le mot de passe. Normalement,​ le montage se fait et le disque apparaît dans Nautilus. 
- 
-== - Graphiquement == 
- 
-Ouvrez Nautilus. 
- 
-Tapez <​key>​Ctrl-L</​key>​ et entrez : 
-  * <​code>​smb://<​serveur>/<​partage></​code>​ 
- 
-  ? <​serveur>​ 
-  : adresse IP ou nom d'​hôte du RPI 
-  ? <​partage>​ 
-  : répertoire auquel se connecter. 
- 
-Renseignez : 
-  * l'​utilisateur (pi) 
-  * le mot de passe (raspberry) 
-  * cochez retenir toujours si vous voulez 
- 
-{{ :​materiel:​raspi:​nas-connexion-linux.png |}} 
- 
-On peut aussi entrer <​key>​Ctrl+L</​key>​ puis : 
-  * <​code>​smb://<​serveur></​code>​ 
- 
-et naviguer dans les partages. 
  
 == - Pour monter le NAS en permanence == == - Pour monter le NAS en permanence ==

Navigation