
Il vous faudra créer le répertoire lighttpd/ dans /var/run et surtout lui donner les droits de votre serveur
|
|
<? phpinfo(); ?> |
Pas le peine d'activer une foule de modules dont on ne saura que faire ensuite: cette liste de modules me semble essentielle et je vous explique pourquoi:
|
server.modules = ( "mod_access", "mod_alias", "mod_auth" "mod_fastcgi", |
Le module mod_access interdit l'accès à certains fichiers, comme dans cet exemple pour les fichiers finissants par ~
ou .inc
url.access-deny = ( "~", ".inc")
|
Mod-alias; comme son nom l'indique prend en charge les alias, comme par exemple: Parcourir tous les fichiers installés dans le répertoire /usr/local/tab/ avec l'alias: alias.url = ( "/tab/" => "/usr/local/tab/" ) rajoutez d'autres alias comme ci-dessous: alias.url += ( "/pub/" => "/var/www/pub/" ) |
mod_auth: authentification, généralement protégée par mot de passe des répertoires, ne pas oublier d'installer le module via
urpmi lighttpd-mod_auth
Sinon vous obtiendrez une erreur dans en lançant lighttpd.
Ce module va nous permettre d'implémenter l'équivalent d'un .htaccess sous Apache, je détaillerai la syntaxe exacte plus bas
mod_fastcgi: FastCGI Support de Perl / PHP , déja vu précédemment
|
Décommenter la ligne suivante permet d'activer le listing des répertoires ou il n'y a pas de fichiers index
(à manier donc avec précaution) ## virtual directory listings dir-listing.activate = "enable" # # Pour définir votre répertoire de travail par défaut, sinon vous pouvez procéder via les hôtes virtuels server.document-root = "/var/www/" # # En cas d'erreur envoyer les messages ici server.errorlog = "/var/log/lighttpd/error.log" # # # # Accesslog module accesslog.filename = "/var/log/lighttpd/access.log" L'utilisateur et le groupe sous lequel est lancé le serveur: server.username = "apache" server.groupname = "apache" |
Il n'existe pas de fichier .htaccess pour lighttpd donc tout se passe dans le fichier de configuration lighttpd.conf. Voici un exemple de protection d'un répertoire:
|
auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/home/deny/.htpasswd" auth.require = ( "/rep_à_protéger/" => ( "method" => "basic", "realm" => "Mon répertoire à protéger", "require" => "valid-user" ) ) |
Il se peut que vous souhaitiez rajouter un second répertoire à protéger, la syntaxe n'est pas très commode, enfin la voici
|
auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/home/deny/.htpasswd" auth.require = ( "/blog/wp-admin/" => ( "method" => "basic", "realm" => "Mon répertoire à protéger", "require" => "valid-user" ), "/tab/" => ( "method" => "basic", "realm" => "Mon deuxième répertoire à protéger", "require" => "valid-user" ) ) |
Je ne me complique pas la vie, puisque j'utilise le fichier .htpasswd déjà configuré pour mon serveur apache, si vous ne savez pas comment générer ce genre de fichier, je vous renvoie à la documentation sur le .htaccess.
Vous souhaitez ajouter un hôte virtuel, c'est-à-dire un site avec un nom de domaine partageant la même ip que votre premier site, voici un exemple pour l'ajout des deux sites:
|
$HTTP["host"] =~ "www.premiersite.com" { server.document-root = "/home/site1/premier" server.errorlog = "/var/log/lighttpd/site1/error.log" accesslog.filename = "/var/log/lighttpd/site1/access.log" server.error-handler-404 = "/e404.php" } $HTTP["host"] =~ "www.linux-pour-lesnuls.com" { server.document-root = "/home/site2/second" server.errorlog = "/var/log/lighttpd/site2/error.log" accesslog.filename = "/var/log/lighttpd/site2/access.log" server.error-handler-404 = "/e404.php" } |
Contrairement à Apache 2, Lighttpd n'est pas capable de faire des réécritures complexes des URLs. Cependant, il existe un moyen très simple de mettre en place de l'URL rewriting pour certaines applications Web, dont Wordpress et les applications Symfony. Il suffit de spécifier que le fichier "index.php" de ces applications Web est chargé de gérer les erreurs 404.
Pour ce faire, ajoutez simplement la ligne suivante dans le fichier de configuration de l'hôte virtuel hébergeant votre application, et adaptez le chemin vers le fichier index.php pour qu'il corresponde à votre application:
server.error-handler-404 = "/index.php"
La compression gzip va vous permettre d'économiser la bande passante, mais pour cela il faut décommenter la ligne mod_compress dans les modules chargés.
Pour cela éditer le fichier lighttpd.conf et ajouter mod_compress dans la section server.modules comme suit :
server.modules = (
[...]
"mod_compress"
)
N'oubliez pas d'installer le module avec un
urpmi lighttpd-mod_compress
Sinon, vous obtiendrez une erreur lors du lancement de lighttpd
Si vous souhaitez activer la compression sur des fichiers css et javascript
Décommentez ces lignes dans votre fichier lighttpd.conf
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html", "text/css", "application/javascript", "application/x-javascript")
N'oubliez pas de créer le répertoire /var/cache/lighttpd/compress et redémarrez lighttpd
Par défaut les pages PHP ne seront pas compressées. Il faut ajouter 2 lignes dans le fichier de configuration PHP pour qu’elles le soient.
Ouvrez le fichier de configuration de PHP :
vi /etc/php.ini
Modifiez ensuite ces deux variables :
1.zlib.output_compression = On
2.zlib.output_handler = On
Il ne vous reste plus qu’à redémarrer Lighttpd pour que les modifications soient prises en compte :
Pour connaitre les type mimes renvoyés par votre serveur (cela peut varié) et vérifier que la compression fonctionne je vous conseille d'utiliser l'extension firefox LiveHttpHeader et de vérifier les champs :
Content-Type: application/x-javascript
Content-Encoding: gzip
Documentation sur les directives du fichier de configuration
Configuration du serveur avec php5 et mysql
|
# empêcher l'accès à vos images depuis un autre site (anti-hotlinking for images) $HTTP["referer"] !~ "^($|http://www\.example\.org)" { url.access-deny = ( ".jpg", ".jpeg", ".png" ) } # empêcher l'accès à www.example.org pour tous les utilisateurs qui ne # font pas partie du réseau 10.0.0.0/8 $HTTP["host"] == "www.example.org" { $HTTP["remoteip"] != "10.0.0.0/8" { url.access-deny = ( "" ) } } # Autoriser seulement les adresses 200.19.1.5 et 210.45.2.7 # à avoir accès à www.example.org/admin/ $HTTP["host"] == "www.example.org" { #!~ is a perl style regular expression not match $HTTP["remoteip"] !~ "^(200\.19\.1\.5|210\.45\.2\.7)$" { $HTTP["url"] =~ "^/admin/" { url.access-deny = ( "" ) } } } |