Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
lighttpd [Le 11/08/2013, 20:30]
87.254.245.34 [PHP et MySQL]
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 15: Ligne 15:
 ===== Installation ===== ===== Installation =====
  
-Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt://lighttpd|lighttpd]]**.+Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>lighttpd|lighttpd]]**.
  
 ===== 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.
-<code>+<file>
 server.document-root ​      = "/​votre/​chemin/"​ server.document-root ​      = "/​votre/​chemin/"​
-</code>+</file>
 Quelle que soit la modification faite dans le fichier de configuration,​ il est possible de vérifier que la syntaxe est correcte avec la commande suivante: Quelle que 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+<​code>​lighttpd -t -f /​etc/​lighttpd/​lighttpd.conf</​code>​
  
 **/​etc/​lighttpd/​lighttpd.conf** pouvant, bien sûr, être remplacé par l'​adresse de votre fichier de configuration. **/​etc/​lighttpd/​lighttpd.conf** pouvant, bien sûr, être remplacé par l'​adresse de votre fichier de configuration.
 +
 ==Les modules== ==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 peu plus loin. 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 peu plus loin.
-<code>+<file>
 server.modules ​             = ( server.modules ​             = (
             "​mod_access",​             "​mod_access",​
Ligne 45: Ligne 49:
 #           "​mod_evasive"​ #           "​mod_evasive"​
 ) )
-</code+</file
-Il est possible de retrouver une documentation détaillée des différents modules sur le wiki officiel de Lighttpd: ​[[http://​redmine.lighttpd.net/​projects/​lighttpd/​wiki/​Docs#​Modules]]+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 ​à l'​adresse suivante: +Une documentation plus exhaustive sur les différentes directives de configuration sont disponibles [[http://​redmine.lighttpd.net/​projects/​lighttpd/​wiki/​Docs:​ConfigurationOptions|ici]]
-[[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.+==== PHP ====
  
-[[:tutoriel:​comment_installer_un_paquet|Installer le paquet]] [[apt://​php5-cgi|php5-cgi]] et éventuellement [[apt://​php5-gd|php5-gd]]. +après avoir installé ​[[:PHP]] , activer le module fastcgi en saisissant dans un [[:terminal]]: 
- +<​code>​sudo lighty-enable-mod fastcgi</​code>​
-Exécutez la commande suivante pour activer le module fastcgi ​+
-  sudo lighty-enable-mod fastcgi+
   ​   ​
-Depuis ​ Ubuntu 10.10, il faut activer le module fastcgi-php pour que cela fonctionne ​(sous Ubuntu 10.04 sauter l'​étape) ​+Depuis ​ Ubuntu 10.10, il faut activer le module fastcgi-php pour que cela fonctionne : 
-  sudo lighty-enable-mod fastcgi-php+<​code>​sudo lighty-enable-mod fastcgi-php</​code>​
   ​   ​
 Puis rechargez la configuration de lighttpd: Puis rechargez la configuration de lighttpd:
-  ​sudo /​etc/​init.d/​lighttpd force-reload+<​code>​sudo service ​lighttpd force-reload</​code>​
  
-Enfin, ​on teste que le serveur prend bien en compte PHP (nb: si vous avez changé le chemin de //​server.document-root//,​ remplacez // /var/www/ // par le chemin que vous avez indiqué): ​    +Enfin, ​tester ​que le serveur prend bien en compte PHP (nb: si vous avez changé le chemin de //​server.document-root//,​ remplacez // /var/www/ // par le chemin que vous avez indiqué ​-par exemple /​var/​www/​html): 
-  sudo sh -c 'echo "<?​PHP phpinfo(); ?>" > /​var/​www/​test.php'​ +<​code>​ 
-  sudo chown -R www-data:​www-data /​var/​www/​test.php +sudo sh -c 'echo "<?​PHP phpinfo(); ?>" > /​var/​www/​test.php'​ 
-  ​w3m ​http://​localhost/​test.php+sudo chown -R www-data:​www-data /​var/​www/​test.php 
 +</​code>​ 
 +Ensuite avec votre [[:​navigateur]] rendez-vous à l'​adresse ​http://​localhost/​test.php ​
  
-Lors du test ci-dessus si vous rencontrez une **erreur 403**, ​ajoutez à la fin du fichier **/etc/php5/cgi/​php.ini** ​ : +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)) 
-  cgi.fix_pathinfo = 1 +<​file>​cgi.fix_pathinfo = 1</file> 
-(//source erreur 403// : [[http://​www.ubuntugeek.com/​lighttpd-webserver-setup-with-php5-and-mysql-support.html|ubuntugeek.com]]) + 
-<note tip>Si, sous **Ubuntu ​11.10**, la correction du fichier ​/etc/php5/cgi/php.ini ne suffit pas +<note tip>​Si ​ça ne marche pas , sous Ubuntu ​[[:16.04]] modifier le fichier ​**/etc/lighttpd/conf-available/15-fastcgi-php.conf** comme suit: 
- <codesudo nano /etc/​lighttpd/​lighttpd.conf </code> +<file>/usr/​share/​doc/lighttpd-doc/fastcgi.txt.gz 
-et ajoutez-y +# http://​redmine.lighttpd.net/projects/​lighttpd/​wiki/​Docs:​ConfigurationOptions#​mod_fastcgi-fastcgi 
-<​code>​fastcgi.server = ( "​.php"​ => ((  + 
-                     ​"bin-path" => "/usr/bin/php-cgi", +## Start an FastCGI server for php (needs the php7.0-cgi package) 
-                     ​"socket" => "/​tmp/​php.socket"  +fastcgi.server ​+= ( "​.php"​ => 
-                 ​)))</​code>​ +        ​(( 
-[[http://​redmine.lighttpd.net/​projects/​lighttpd/​wiki/​TutorialLighttpdAndPHP#​Configuration|Tutoriel pour Lighttpd et PHP (en)]] \\  +                "socket" => "/var/run/php/php7.0-fpm.sock", 
-FIXME                  +                "broken-scriptfilename" => "enable
-                 ​</note+        )) 
-                  +
-                  +</file
-<note tip>​Sous ​**Ubuntu 12.04** ajouter uniquement ​dans le fichier ​/​etc/​lighttpd/​lighttpd.conf , au niveau des modules ​(ligne 7): +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. 
-<​code>​ + 
-server.modules = ( +Les lignes sont à adapterPar 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//​.
-                   "mod_fastcgi"+
-                 ) +
- </code>+
  </​note>​  </​note>​
 +
 ==== MySql ==== ==== MySql ====
 +FIXME Installez [[:Mysql]]
 +
 Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] suivants : Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] suivants :
-**[[apt://mysql-client,​mysql-server,​php5-mysql]]**+**[[apt>mysql-client,​mysql-server,​php5-mysql]]** ​FIXME cf [[php]]
 Et éventuellement PHPMyAdmin : Et éventuellement PHPMyAdmin :
-**[[apt://phpmyadmin|phpmyadmin]]**+**[[apt>phpmyadmin|phpmyadmin]]**
  
 Lors de l'​installation,​ vous serez tout d'​abord invité à indiquer à MySql qu'il fonctionnera avec Lighttpd. Lors de l'​installation,​ vous serez tout d'​abord invité à indiquer à MySql qu'il fonctionnera avec Lighttpd.
Ligne 103: Ligne 105:
  
 Après l'​installation de ces paquets, il faut saisir les commandes suivantes : Après l'​installation de ces paquets, il faut saisir les commandes suivantes :
- +<​code>​sudo lighty-enable-mod fastcgi userdir 
-  ​sudo lighty-enable-mod fastcgi userdir +sudo /​etc/​init.d/​mysql start 
-  sudo /​etc/​init.d/​mysql start +sudo /​etc/​init.d/​lighttpd restart 
-  sudo /​etc/​init.d/​lighttpd restart +</​code>​
  
 Si vous avez installé PHPMyAdmin, la base de données est alors accessible à l'​adresse suivante : http://​localhost/​phpmyadmin Si vous avez installé PHPMyAdmin, la base de données est alors accessible à l'​adresse suivante : http://​localhost/​phpmyadmin
Ligne 114: Ligne 115:
 ==== Ruby ==== ==== Ruby ====
  
-<note warning>​Cette procédure est probablement ​obsolète, cependant, ​le fichier ​de configuration ​de lighttpd peut servir.</​note>​+<note warning>​Cette procédure est obsolète, cependant, ​les fichiers ​de configuration ​peuvent ​servir.</​note>​
  
-Si ce n'est pas déjà faitil faut commencer par installer l'​environnement Ruby et le framework [[rubyonrails|Ruby on Rails]] si nécessaire : +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.
-<​code>​sudo apt-get install ruby1.8 rubygems1.8 libmysql-ruby1.8 librmagick-ruby1.8 libfcgi-ruby1.8 libopenssl-ruby1.8 rake +
-sudo gem install --no-rdoc --no-ri -v=2.3.4 rails</​code>​ +
- +
-L'​étape suivante consiste à copier les fichiers de son application ruby dans un sous répertoire du serveur ​web. +
-\\ Par exemple /​usr/​share/​redmine/​ +
- +
-Dernière étape, la configuration de lighttpd. +
- +
-<​code>#​ /​etc/​lighttpd/​conf-available/​89-redmine.conf +
-$HTTP["​host"​] =~ "​ruby.votresite.fr" {+
  
 +<​file>#​ /​etc/​lighttpd/​conf-available/​redmine.conf
 +# avec fastcgi, mod_fastcgi
 +$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"​
- #​setenv.add-response-header = ( "​Strict-Transport-Security"​ => "​max-age=31536000"​ )+
  server.indexfiles = ( "​dispatch.fcgi"​ )  server.indexfiles = ( "​dispatch.fcgi"​ )
- 
- $HTTP["​url"​] =~ "​^/​(images|javascripts|stylesheets|themes|plugin_assets)|favicon.ico"​ { 
- expire.url = ( ""​ => "​access plus 2 weeks" ) 
- } 
- 
- alias.url += ( "/​plugin_assets/"​ => "/​var/​cache/​redmine/​default/​plugin_assets/"​ ) 
- 
  fastcgi.server += (  fastcgi.server += (
  "​.fcgi"​ => (  "​.fcgi"​ => (
Ligne 155: Ligne 141:
  )  )
  )  )
 + alias.url += ( "/​plugin_assets/"​ => "/​var/​cache/​redmine/​default/​plugin_assets/"​ )
 +}</​file>​
  
- quelques exemples +<​file>​/​etc/​lighttpd/​conf-available/​redmine.conf 
- +avec Thin, mod_proxy 
- #url.redirect ​( +$HTTP["​host"​] ​=~ "​hostname"​ { 
- # "^/projects/apijs/issues\?​sort=fixed_version:​desc,​id:​desc$" ="/projects/apijs/issues?​query_id=1+ server.document-root = "/usr/share/​redmine/​public/" 
- #) + 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$" { 
- #$SERVER["socket"​] ​== ":80" { + proxy.balance = "​fair"​ 
- # url.redirect ​= ( "^/(.*)" => "https://​redmine.luigifab.info/$1" ) + proxy.server  ​= ("/" => ( 
- #} + ( "​host"​ => "127.0.0.1",​ "​port"​ => 3000 )
- + ( "host" => "127.0.0.1", "​port"​ => 3001 ), 
- #$SERVER["socket"] == ":443" ​{ + "host" ="127.0.0.1", "​port"​ => 3002 ), 
- #​ ssl.engine  ​= "enable+ ( "​host" ​="127.0.0.1", "​port"​ => 3003 ) 
- # ssl.pemfile ​= "/etc/ssl/​private/​votresite.crt" + )) 
- #​ ssl.ca-file ​= "/etc/ssl/private/ca-certs.crt+
- #} + alias.url +"/plugin_assets/" ="/var/cache/redmine/​default/​plugin_assets/" ​) 
-}</​code>​+}
  
 +# /​etc/​thin2.1/​thin.yml
 +---
 +chdir: "/​usr/​share/​redmine"​
 +environment:​ production
 +address: 0.0.0.0
 +port: 3000
 +servers: 4
 +timeout: 30
 +log: /​var/​log/​redmine/​default/​thin.log
 +pid: /​var/​run/​thin.pid
 +max_conns: 1024
 +max_persistent_conns:​ 512
 +require: []
 +wait: 30
 +daemonize: true
 +</​file>​
 ==== 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 183: 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 194: Ligne 197:
  
 <​note>​En cas de problème, ajouter //​ssl.use-sslv2 = "​enable"//​ en dessous de //​ssl.engine = "​enable"//​. <​note>​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</​note>​+[[https://​bugs.launchpad.net/​ubuntu/​+source/​lighttpd/​+bug/​645002|Bug Launchpad 645002]]</​note>​
  
 ===== Désinstallation ===== ===== Désinstallation =====
Ligne 205: 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)** [[http://nanotux.com/blog/the-ultimate-server/3/#l-php5The ultimate server]]+  * **(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]].//​
  • lighttpd.1376245832.txt.gz
  • Dernière modification: Le 11/08/2013, 20:30
  • par 87.254.245.34