Serveur LAMP sur un Raspberry Pi (Modèle B+)

 

Le but est d'installer un petit serveur Web sur un Raspberry Pi. Je vais installer Apache, PHP en mode FPM et Mysql sur une distribution Raspbian.

Je partirais du postulat que Raspbian est installé et fonctionnel. Sinon consultez cet article.

Installation d'Apache et PHP

On installe les paquets nécessaires :

# apt-get install apache2-mpm-worker php5-fpm php-apc php5-gd php5-curl cronolog

Pour qu'Apache puisse communiquer avec l'interpréteur PHP il faut ajouter le module adéquat, cependant il n'est pas dispobinle directement dans les dépôts raspbian. Il faut donc l'installer à partir des sources qui doivent être activées dans le sources.list.

On commence par installer les dépendances nécessaires :

# apt-get install debhelper dpatch libtool cdbs libapr1-dev apache2-threaded-dev

Installation de libapache-mod-fastcgi à partir des sources :

# cd /usr/src
# apt-get -b source libapache-mod-fastcgi
# dpkg -i libapache2-mod-fastcgi_2.4.7~0910052141-1_armhf.deb

On active les modules nécessaires :

# a2enmod rewrite alias actions fastcgi headers

On configure le module php5-fpm /etc/apache2/conf.d/php5-fpm :

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>

<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Order Deny,Allow
Deny from all
</FilesMatch>

<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Order Deny,Allow
Deny from all
</FilesMatch>

Action application/x-httpd-php /fcgi-bin/php5-fpm virtual
Alias /fcgi-bin/php5-fpm /fcgi-bin-php5-fpm
<Location /fcgi-bin/php5-fpm>
# here we prevent direct access to this Location url,
# env=REDIRECT_STATUS will let us use this fcgi-bin url
# only after an internal redirect (by Action upper)
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</Location>

FastCgiExternalServer /fcgi-bin-php5-fpm -socket /var/run/php5-fpm.sock -pass-header Authorization

Après tout cela on peut redémarrer Apache et tester avec un petit fichier info.php par exemple.

 

Installation serveur de bases de données

Je vais ici installer mysql-server mais dans certains cas pour limiter l'utilisation des ressources, il pourrait être préférable d'installer sqlite.

# apt-get install mysql-client mysql-server php5-mysql

 

To continue

A partir de maintenant notre petit Raspberry fait office de serveur WEB on va passer à la mise en place d'une application dans l'article suivant.