Raspberry Pi, Arch Linux, et Serveur Web

De Wiki LOGre
Aller à : navigation, rechercher


Lors de mes expérimentations avec mon Raspberry, j'y ai installé un serveur web (lighttpd) avec arch linux. Voilà comment j'ai procédé :

Installer Arch Linux

Arch Linux est intéréssant pour un serveur web car il vient avec le minimum nécessaire (pas d'interface graphique) et est plus léger que Raspbian. Il boot en 10 secondes. Il faut donc télécharger l'image sur raspberrypi.org, et ensuite la copier sur votre carte sd (http://elinux.org/RPi_Easy_SD_Card_Setup).

Démarrage sur Arch

SSH est activé de base sur l'image. Vous n'avez donc pas besoin de clavier. Insérez la carte sd, branchez le rapsberry sur le réseau est c'est bon. On trouve l'adresse ip du rapsberry et on se connecte en ssh, le mot de passe par défaut est 'root' :

 ssh root@192.168.x.x

On commence par changer le mot de passe :

 passwd root

Puis on met à jour les paquet, ça peut prendre un petit moment :

 pacman -Syu

Redimensionner la carte SD

Si votre carte SD fait plus que 2 Gb vous voudrez sûrement redimensionner la partition pour profiter de tout l'espace disponible.

On lance fdisk sur la carte sd :

 fdisk /dev/mmcblk0

On supprime la seconde partition /dev/mmcblk0p2 :

 d
 2

On créé un nouvelle partition en utilisant la taille par défaut proposé. Ca créera un partition qui remplira tout l'espace disponible sur la carte sd.

 n
 p
 2
 (enter)
 (enter)

On sauvegarde et on quitte fdisk :

 w

On redémarre :

 reboot

Une fois redémarré on lance resize2fs sur la partition :

 resize2fs /dev/mmcblk0p2

On peut vérifier que ça a marché avec :

 fdisk -l

Swap

Ajouter le swap :

 cd /var
 dd if=/dev/zero of=swapfile bs=1M count=128
 mkswap /var/swapfile
 swapon /var/swapfile

On ouvre le fichier fstab :

 nano /etc/fstab

On y ajoute cette ligne :

 /var/swapfile  none           swap    sw        0       0

On redémarre :

 reboot

On vérifie que ça a marché :

 top

Mode Turbo

Il existe un mode turbo sur la Rasberry Pi qui permet de l'overclocker facilement (http://www.raspberrypi.org/archives/2008) Pour l'ajouter on ouvre le fichier de config :

 nano /boot/config.txt

Et on ajuste les paramètres en fonction du mode souhaité :

None

   arm_freq=700
   core_freq=250
   sdram_freq=400
   over_voltage=0

Modest

   arm_freq=800
   core_freq=300
   sdram_freq=400
   over_voltage=0

Medium

   arm_freq=900
   core_freq=333
   sdram_freq=450
   over_voltage=2

High

   arm_freq=950
   core_freq=450
   sdram_freq=450
   over_voltage=6

Turbo

   arm_freq=1000
   core_freq=500
   sdram_freq=500
   over_voltage=6

Puis on redémarre :

reboot

Memoire GPU

Il est intéressant d'allouer le minimum de mémoire au GPU car dans le cas d'un serveur il ne sera pas utilisé.

On ouvre le fichier de config :

 nano /boot/config.txt

On ajoute cette ligne :

 gpu_mem=16

16mb étant le minimum.

Installation du serveur web lighttpd

J'ai choisis lighttpd car il est plus léger que d'autres apache, et que notre Raspberry n'est pas un foudre de guerre.

On lance l'installation

 pacman -S lighttpd

On indique le fichier de configuration

 lighttpd -t -f /etc/lighttpd/lighttpd.conf

On ajuste les droits :

 chown -R http /var/log/lighttpd

On ajoute un fichier index.html pour tester :

 echo 'Hello World !' >> /srv/http/index.html
 chmod 755 /srv/http/index.html

Pour lancer le serveur (c'est pas ce que j'ai trouvé dans les tutos, mais ça à l'air de marcher sur la raspberry) :

 /etc/rc.d/lighttpd start

Ensuite essayez sur votre navigateur de vous connecter à l’adresse ip de votre raspberry, et vous devriez voir un magnifique "hello world".

Php

On installe les paquets

 pacman -S fcgi php php-cgi

On créé le fichier de configuration

 mkdir /etc/lighttpd/conf.d
 nano /etc/lighttpd/conf.d/fastcgi.conf

On ajoute les lignes suivantes

 server.modules += ( "mod_fastcgi" )
 index-file.names += ( "index.php" )
 fastcgi.server = ( ".php" => ((
                    "bin-path" => "/usr/bin/php-cgi",
                    "socket" => "/tmp/php.socket",
                    "max-procs" => 2,
                    "bin-environment" => (
                      "PHP_FCGI_CHILDREN" => "16",
                      "PHP_FCGI_MAX_REQUESTS" => "10000"
                    ),
                    "bin-copy-environment" => (
                      "PATH", "SHELL", "USER"
                    ),
                    "broken-scriptfilename" => "enable"
                )))

On ouvre le fichier lighttpd.conf

 nano /etc/lighttpd/lighttpd.conf

On ajoute cette ligne

 include "conf.d/fastcgi.conf"

On ouvre le fichier php.ini

 nano /etc/php/php.ini

On modifie cette ligne

 open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/another/path:/second/path

Et on dé-commente celle là

 cgi.fix_pathinfo=1

On créé un ficher pour tester

 nano /srv/http/index.php

On y ajoute :

 <?php
 phpinfo();
 ?>

On modifie les droits

  chmod 755 /srv/http/index.php

On reboot

 reboot

On lance le serveur

 /etc/rc.d/lighttpd start

Après on se connecte à la page avec un navigateur et normalement ça a marché !

Base de donnée

A venir ...