Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
lighttpd [Le 01/09/2017, 22:02] fabux Retouche complète |
lighttpd [Le 11/09/2022, 11:35] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>serveur réseau}} | {{tag>serveur réseau}} | ||
------ | ------ | ||
+ | |||
+ | {{ light_logo_170px.png}} | ||
====== Lighttpd : Un serveur web léger ====== | ====== Lighttpd : Un serveur web léger ====== | ||
- | |||
- | {{ light_logo_170px.png}} | ||
**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'[[:apache2|Apache]] (comme les rewrite, fast-cgi, proxy, etc.) pour des performances aussi bonnes sinon meilleures dans les tests faits par Lighttpd. | **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'[[:apache2|Apache]] (comme les rewrite, fast-cgi, proxy, etc.) pour des performances aussi bonnes sinon meilleures dans les tests faits par Lighttpd. | ||
Ligne 19: | Ligne 19: | ||
===== Configuration ===== | ===== Configuration ===== | ||
Tous les fichiers de configuration se trouvent dans **/etc/lighttpd**. | Tous les fichiers de configuration se trouvent dans **/etc/lighttpd**. | ||
+ | |||
==== /etc/lighttpd ==== | ==== /etc/lighttpd ==== | ||
Voici ce que vous pouvez trouver dans ce répertoire. | Voici ce que vous pouvez trouver dans ce répertoire. | ||
Ligne 25: | Ligne 26: | ||
* Le fichier **lighttpd.conf** est le fichier de configuration principal à partir duquel les directives principales sont chargées. | * 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-available** est un dossier qui contient les fichiers de configuration des différents modules. | ||
- | * **conf-enabled** est un dossier | + | * **conf-enabled** est un dossier |
- | ===Le fichier lighttpd.conf=== | + | |
+ | === Le fichier lighttpd.conf === | ||
Le plus important est de configurer la directive suivante qui définit la racine de Lighttpd. | Le plus important est de configurer la directive suivante qui définit la racine de Lighttpd. | ||
<file> | <file> | ||
Ligne 48: | Ligne 50: | ||
) | ) | ||
</file> | </file> | ||
- | Il est possible de retrouver une [[http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs#Modules|documentation détaillée des différents modules]] sur le wiki officiel de Lighttpd: | + | Il est possible de retrouver une [[http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs#Modules|documentation détaillée des différents modules]] sur le wiki officiel de Lighttpd: |
Une documentation plus exhaustive sur les différentes directives de configuration sont disponibles [[http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions|ici]] | Une documentation plus exhaustive sur les différentes directives de configuration sont disponibles [[http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions|ici]] | ||
Ligne 68: | Ligne 70: | ||
sudo sh -c 'echo "<?PHP phpinfo(); ?>" > /var/www/test.php' | sudo sh -c 'echo "<?PHP phpinfo(); ?>" > /var/www/test.php' | ||
sudo chown -R www-data:www-data /var/www/test.php | sudo chown -R www-data:www-data /var/www/test.php | ||
- | w3m http://localhost/test.php | ||
</code> | </code> | ||
+ | Ensuite avec votre [[:navigateur]] rendez-vous à l'adresse http://localhost/test.php | ||
Lors du test ci-dessus si vous rencontrez une **erreur 403**, modifier le fichier **/etc/php/7.0/fpm/php.ini** pour décommenter ((retirer le # en début de ligne)) | Lors du test ci-dessus si vous rencontrez une **erreur 403**, modifier le fichier **/etc/php/7.0/fpm/php.ini** pour décommenter ((retirer le # en début de ligne)) | ||
<file>cgi.fix_pathinfo = 1</file> | <file>cgi.fix_pathinfo = 1</file> | ||
- | [[https://www.howtoforge.com/tutorial/installing-lighttpd-with-php7-php-fpm-and-mysql-on-ubuntu-16.04-lts/|Source]] | ||
- | <note tip>Si ça ne marche pas , sous Ubuntu [[:16.04]] modifier le fichier **/etc/lighttpd/conf/15-fastcgi-php.conf** comme suit: | + | <note tip>Si ça ne marche pas , sous Ubuntu [[:16.04]] modifier le fichier **/etc/lighttpd/conf-available/15-fastcgi-php.conf** comme suit: |
<file># /usr/share/doc/lighttpd-doc/fastcgi.txt.gz | <file># /usr/share/doc/lighttpd-doc/fastcgi.txt.gz | ||
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi | # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi | ||
Ligne 88: | Ligne 89: | ||
</file> | </file> | ||
Si besoin effacer les liens symboliques **10-fastcgi.conf** et **15-fastcgi-php.conf** créés dans **/etc/lighttpd/conf-enabled/** et réactivez les modules avant de recharger la configuration comme expliqué plus avant. | Si besoin effacer les liens symboliques **10-fastcgi.conf** et **15-fastcgi-php.conf** créés dans **/etc/lighttpd/conf-enabled/** et réactivez les modules avant de recharger la configuration comme expliqué plus avant. | ||
+ | |||
+ | Les lignes sont à adapter. Par exemple, pour PHP version 7.2 vous remplacerez les termes "php7.0-fpm" par "php7.2-fpm" (après avoir installé php7.2-fpm), et le dossier utilisé sera ///etc/php/7.2//. | ||
</note> | </note> | ||
Ligne 114: | Ligne 117: | ||
<note warning>Cette procédure est obsolète, cependant, les fichiers de configuration peuvent servir.</note> | <note warning>Cette procédure est obsolète, cependant, les fichiers de configuration peuvent servir.</note> | ||
- | Deux exemples de configuration, le premier avec fastcgi (qui ne fonctionne plus avec Redmine 2), le second avec thin (un second serveur). Prenez garde aux chemins utilisés dans ces exemples. | + | Deux exemples de configuration pour Redmine, le premier avec fastcgi (qui ne fonctionne plus avec Redmine 2), le second avec thin (un second serveur). Prenez garde aux chemins utilisés dans ces exemples. |
<file># /etc/lighttpd/conf-available/redmine.conf | <file># /etc/lighttpd/conf-available/redmine.conf | ||
- | # avec fastcgi | + | # avec fastcgi, mod_fastcgi |
- | $HTTP["host"] =~ "ruby.votresite.fr" { | + | $HTTP["host"] =~ "hostname" { |
server.document-root = "/usr/share/redmine/public/" | server.document-root = "/usr/share/redmine/public/" | ||
accesslog.filename = "/var/log/lighttpd/redmine.access.log" | accesslog.filename = "/var/log/lighttpd/redmine.access.log" | ||
server.error-handler-404 = "/dispatch.fcgi" | server.error-handler-404 = "/dispatch.fcgi" | ||
server.indexfiles = ( "dispatch.fcgi" ) | server.indexfiles = ( "dispatch.fcgi" ) | ||
- | |||
fastcgi.server += ( | fastcgi.server += ( | ||
".fcgi" => ( | ".fcgi" => ( | ||
Ligne 140: | Ligne 141: | ||
) | ) | ||
) | ) | ||
- | + | alias.url += ( "/plugin_assets/" => "/var/cache/redmine/default/plugin_assets/" ) | |
- | # quelques exemples | + | |
- | #alias.url += ( "/plugin_assets/" => "/var/cache/redmine/default/plugin_assets/" ) | + | |
- | #url.rewrite-if-not-file = ( | + | |
- | # "favicon.ico$" => "/favicon.ico", | + | |
- | # "apple-touch-.*png$" => "/apple-touch-icon.png" | + | |
- | #) | + | |
- | #$SERVER["socket"] == ":80" { | + | |
- | # $HTTP["url"] =~ "^/robots.txt$" { | + | |
- | # url.rewrite = ( "robots.txt$" => "/robots.http.txt" ) | + | |
- | # } | + | |
- | # $HTTP["url"] !~ "^/robots.http.txt$" { | + | |
- | # url.redirect = ( "^/(.*)" => "https://ruby.votresite.fr/$1" ) | + | |
- | # } | + | |
- | #} | + | |
- | #$SERVER["socket"] == ":443" { | + | |
- | # ssl.engine = "enable" | + | |
- | # ssl.pemfile = "/etc/ssl/private/votresite.crt" | + | |
- | # ssl.ca-file = "/etc/ssl/private/ca-certs.crt" | + | |
- | # setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=31536000" ) | + | |
- | #} | + | |
}</file> | }</file> | ||
<file># /etc/lighttpd/conf-available/redmine.conf | <file># /etc/lighttpd/conf-available/redmine.conf | ||
- | # avec Thin | + | # avec Thin, mod_proxy |
- | $HTTP["host"] =~ "ruby.votresite.fr" { | + | $HTTP["host"] =~ "hostname" { |
server.document-root = "/usr/share/redmine/public/" | server.document-root = "/usr/share/redmine/public/" | ||
accesslog.filename = "/var/log/lighttpd/redmine.access.log" | accesslog.filename = "/var/log/lighttpd/redmine.access.log" | ||
- | |||
$HTTP["url"] !~ "^/(images|javascripts|stylesheets|themes|plugin_assets|favicon.ico|apple-touch-icon.png)|.*html$|.*txt$|.*xml$" { | $HTTP["url"] !~ "^/(images|javascripts|stylesheets|themes|plugin_assets|favicon.ico|apple-touch-icon.png)|.*html$|.*txt$|.*xml$" { | ||
proxy.balance = "fair" | proxy.balance = "fair" | ||
- | proxy.server = ("/" => ( | + | proxy.server = ("/" => ( |
( "host" => "127.0.0.1", "port" => 3000 ), | ( "host" => "127.0.0.1", "port" => 3000 ), | ||
( "host" => "127.0.0.1", "port" => 3001 ), | ( "host" => "127.0.0.1", "port" => 3001 ), | ||
Ligne 179: | Ligne 158: | ||
)) | )) | ||
} | } | ||
- | + | alias.url += ( "/plugin_assets/" => "/var/cache/redmine/default/plugin_assets/" ) | |
- | # quelques exemples | + | |
- | #url.rewrite-if-not-file = ( | + | |
- | # "favicon.ico$" => "/favicon.ico", | + | |
- | # "apple-touch-.*png$" => "/apple-touch-icon.png" | + | |
- | #) | + | |
- | #$SERVER["socket"] == ":80" { | + | |
- | # $HTTP["url"] =~ "^/robots.txt$" { | + | |
- | # url.rewrite = ( "robots.txt$" => "/robots.http.txt" ) | + | |
- | # } | + | |
- | # $HTTP["url"] !~ "^/robots.http.txt$" { | + | |
- | # url.redirect = ( "^/(.*)" => "https://ruby.votresite.fr/$1" ) | + | |
- | # } | + | |
- | #} | + | |
- | #$SERVER["socket"] == ":443" { | + | |
- | # ssl.engine = "enable" | + | |
- | # ssl.pemfile = "/etc/ssl/private/votresite.crt" | + | |
- | # ssl.ca-file = "/etc/ssl/private/ca-certs.crt" | + | |
- | # setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=31536000" ) | + | |
- | #} | + | |
} | } | ||
Ligne 219: | Ligne 179: | ||
==== SSL ==== | ==== SSL ==== | ||
- | Pour utiliser un certificat SSL, il faut au préalable installer les paquets suivants : | + | Pour utiliser un certificat SSL, il faut au préalable [[:tutoriel:comment_installer_un_paquet|installer les paquets]] suivants **[[apt>openssl,ssl-cert|openssl ssl-cert]]** |
- | <code>sudo apt-get install openssl ssl-cert</code> | + | |
Pour créer un certificat SSL auto-signé, il est possible d'utiliser la commande suivante : | Pour créer un certificat SSL auto-signé, il est possible d'utiliser la commande suivante : | ||
Ligne 227: | Ligne 186: | ||
Une fois le certificat créé, il faut modifier la configuration du serveur pour qu'il accepte les connexions HTTPS sur le port 443. | 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 [[:tutoriel:comment_modifier_un_fichier|éditer le fichier]] **/etc/lighttpd/lighttpd.conf** avec les droits d'administration pour y ajouter les 3 lignes suivantes. | \\ Pour ce faire, il faut [[:tutoriel:comment_modifier_un_fichier|éditer le fichier]] **/etc/lighttpd/lighttpd.conf** avec les droits d'administration pour y ajouter les 3 lignes suivantes. | ||
- | <code>$SERVER["socket"] == ":443" { | + | <file>$SERVER["socket"] == ":443" { |
ssl.engine = "enable" | ssl.engine = "enable" | ||
- | ssl.pemfile = "/etc/ssl/private/localhost.pem" }</code> | + | ssl.pemfile = "/etc/ssl/private/localhost.pem" }</file> |
Dernière étape, le redémarrage du serveur. | Dernière étape, le redémarrage du serveur. | ||
Ligne 249: | Ligne 208: | ||
* **(fr)** [[http://fr.wikipedia.org/wiki/Lighttpd|Lighttpd sur Wikipédia]] | * **(fr)** [[http://fr.wikipedia.org/wiki/Lighttpd|Lighttpd sur Wikipédia]] | ||
* **(en)** [[http://www.ubuntugeek.com/lighttpd-webserver-setup-with-php5-and-mysql-support.html|Configurer PHP5 pour Lighttpd]] | * **(en)** [[http://www.ubuntugeek.com/lighttpd-webserver-setup-with-php5-and-mysql-support.html|Configurer PHP5 pour Lighttpd]] | ||
- | * **(en)** <del>[[http://nanotux.com/blog/the-ultimate-server/3/#l-php5| The ultimate server]]</del> Error 404 | + | * **(en)** [[https://www.howtoforge.com/tutorial/installing-lighttpd-with-php7-php-fpm-and-mysql-on-ubuntu-16.04-lts/|Source pour php]] |
---- | ---- | ||
//Contributeurs : [[utilisateurs:kagou|Patrice Vetsel]], [[utilisateurs:alteo_gange|alteo_gange]], [[utilisateurs:luigifab|luigifab]].// | //Contributeurs : [[utilisateurs:kagou|Patrice Vetsel]], [[utilisateurs:alteo_gange|alteo_gange]], [[utilisateurs:luigifab|luigifab]].// |