Ceci est une ancienne révision du document !



Lighttpd : Un serveur web léger

Lighttpd est un serveur web (HTTP) qui, de par sa légèreté, se veut rapide. Il supporte un grand nombre de fonctionnalités comparables à celles d'Apache (comme les rewrite, fast-cgi, proxy, etc.) pour des performances aussi bonnes sinon meilleures dans les tests faits par Lighttpd.

Par rapport à Apache, il ne supporte pas les fichiers htaccess ou encore htpasswd. Ces 2 problèmes sont contournables si vous avez accès à la configuration de votre serveur.

Lighttpd se trouve dans le top 5 des serveurs les plus utilisés dans le monde. Cette page est là pour vous expliquer comment l'installer et comment l'utiliser de manière simple.

Tous les fichiers de configuration se trouvent dans /etc/lighttpd.

/etc/lighttpd

Voici ce que vous pouvez trouver dans ce répertoire.

lighttpd.conf conf-available conf-enabled
  • Le fichier lighttpd.conf est le fichier de configuration principal à partir duquel les directives principales sont chargées.
  • conf-available est un dossier qui contient les fichiers de configuration des différents modules.
  • conf-enabled est un dossier

Le fichier lighttpd.conf

Le plus important est de configurer la directive suivante qui définit la racine de Lighttpd.

server.document-root       = "/votre/chemin/"

Quelque soit la modification faite dans le fichier de configuration, il est possible de vérifier que la syntaxe est correcte avec la commande suivante:

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

/etc/lighttpd/lighttpd.conf pouvant, bien sur, être remplacé par l'adresse de votre fichier de configuration.

Les modules

La première partie du fichier consiste en l'activation des différents modules du serveur. Pour activer un module, il suffit de décommenter sa ligne ou utiliser la commande lighty-enable-mod que nous verrons un plus loin.

server.modules              = (
            "mod_access",
            "mod_alias",
...
#           "mod_flv_streaming",
#           "mod_evasive"
)

Il est possible de retrouver un documentation détaillée des différents modules sur le wiki officiel de Lighttpd: http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs#Modules

Une documentation plus exhaustive sur les différentes directives de configuration sont disponibles à l'adresse suivante: http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions

PHP et MySQL

Nous allons mettre en place le langage PHP5 et configurer Lighttpd pour qu'il puisse l'interpréter.

Installer le paquet php5-cgi et éventuellement php5-gd.

Exécutez la commande suivante pour activer le module fastcgi :

sudo lighty-enable-mod fastcgi

Puis rechargez la configuration de lighttpd:

sudo /etc/init.d/lighttpd force-reload

Enfin, on teste que le serveur prend bien en compte PHP:

sudo sh -c 'echo "<?PHP phpinfo(); ?>" > /var/www/test.php'
sudo chown -R www-data:www-data /var/www/test.php
w3m http://localhost/test.php
A noter que pour Ubuntu 10.10 (Maverick Meerkat), il faut activer le module fastcgi-php pour que cela fonctionne

MySql

Il suffit d'installer les paquets suivants : apt://mysql-client,mysql-server Et éventuellement PHPMyAdmin : phpmyadmin

Lors de l'installation, vous serez tout d'abord invité à indiquer à MySql qu'il fonctionnera avec Lighttpd. Puis vous serez amenés à choisir un mot de passe pour l'accès root à phpmyadmin.

Après l'installation de ces paquets, il faut saisir les commandes suivantes :

sudo lighty-enable-mod fastcgi userdir
sudo /etc/init.d/mysql start
sudo /etc/init.d/lighttpd restart

Si vous avez installé PHPMyAdmin, la base de données est alors accessible à l'adresse suivante : http://localhost/phpmyadmin

Redmine (application Ruby)

Il faut commencer par installer l'environnement Ruby :

sudo apt-get install ruby1.8 rubygems1.8 libmysql-ruby1.8 librmagick-ruby1.8 libfcgi-ruby1.8 libopenssl-ruby1.8 rake

On installe ensuite le framework Ruby on Rails :

sudo gem install --no-rdoc --no-ri -v=2.3.4 rails

L'étape suivante consiste à télécharger Redmine sur le site officiel : http://www.redmine.org/wiki/redmine/Download
Il faut ensuite décompresser l'archive dans un des répertoires du serveur, par exemple dans /var/www/redmine/.

Toute la procédure d'installation et de configuration de Redmine est disponible en français sur le wiki du projet.

Maintenant que Redmine est installé est fonctionnel, donc accessible sur http://localhost:3000/ lorsque WEBrick est lancé, on va maintenant passer à la configuration de Lighttpd.

Voici un fichier de configuration (qui ne fonctionne pas).

# /etc/lighttpd/conf-enabled/10-redmine.conf
## FastCGI programs have the same functionality as CGI programs,
## but are considerably faster through lower interpreter startup
## time and socketed communication
##
## Documentation: /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
##                http://www.lighttpd.net/documentation/fastcgi.html

## Start an FastCGI server for ruby (needs the libfcgi-ruby package)
$HTTP["url"] =~ "^/redmine" {

	alias.url = ( "/redmine" => "/var/www/redmine/public" )
	server.document-root = "/var/www/redmine/public/"
	server.indexfiles = ( "dispatch.fcgi" )

	fastcgi.server += ( ".fcgi" =>
		((
			"bin-path" => "/var/www/redmine/public/dispatch.fcgi",
			"socket" => "/tmp/rubyrails.socket",
			"max-procs" => 5,
			"idle-timeout" => 20,
			"bin-environment" => (
				"RAILS_ENV" => "production",
				"LANG" => "fr_FR.UTF-8"
		)
		))
	)
}

SSL

Pour utiliser un certificat SSL, il faut au préalable installer les paquets suivants :

sudo apt-get install openssl ssl-cert

Pour créer un certificat SSL auto-signé, il est possible d'utiliser la commande suivante :

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.pem

Une fois le certificat créé, il faut modifier la configuration du serveur pour qu'il accepte les connexions HTTPS sur le port 443.
Pour ce faire, il faut éditer le fichier /etc/lighttpd/lighttpd.conf avec les droits d'administration pour y ajouter les 4 lignes suivantes.

$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  ssl.pemfile = "/etc/ssl/private/localhost.pem"
}

Dernière étape, le redémarrage du serveur.

sudo service lighttpd restart

Ensuite rendez vous sur https://localhost/
Étant donné que le certificat SSL est auto-signé, une alerte de sécurité sera générée par le navigateur.

En cas de problème, ajouter ssl.use-sslv2 = "enable" en dessous de ssl.engine = "enable".
https://bugs.launchpad.net/ubuntu/+source/lighttpd/+bug/645002

Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.

  • lighttpd.1292174366.txt.gz
  • Dernière modification: Le 18/04/2011, 14:59
  • (modification externe)