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.