lighttpd

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Lighttpd and the translation is 100% complete.
Resources

lighttpd は高速で軽量な web サーバです。

インストール

USE フラグ

USE flags for www-servers/lighttpd Lightweight high-performance web server

brotli Enable output compression via app-arch/brotli (recommended)
dbi Enable dev-db/libdbi (database-independent abstraction layer) support
gnutls Build module for TLS via net-libs/gnutls
kerberos Add kerberos support
ldap Add LDAP support (Lightweight Directory Access Protocol)
lua Enable Lua scripting support
maxminddb Add support for geolocation using dev-libs/libmaxminddb
mbedtls Build module for TLS via net-libs/mbedtls
mmap Use mmap when sendfile is not available
mysql Add mySQL Database support
nettle Use dev-libs/nettle as crypto backend
nss Build module for TLS via Mozilla's Network Security Services
pcre Add support for Perl Compatible Regular Expressions
php Include support for the PHP language
postgres Add support for the postgresql database
rrdtool Enable rrdtool support via mod_rrdtool
sasl Add support for the Simple Authentication and Security Layer
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
sqlite Add support for sqlite - embedded sql database
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
unwind Add support for call stack unwinding and function name resolution
verify-sig Verify upstream signatures on distfiles
webdav Enable webdav properties
xattr Add support for extended attributes (filesystem-stored metadata)
zlib Enable output compression via gzip or deflate algorithms from sys-libs/zlib
zstd Enable output compression via Zstandard (app-arch/zstd) algorithm

emerge

www-servers/lighttpd をインストールしてください:

root #emerge --ask www-servers/lighttpd

設定

lighttpd の設定は /etc/lighttpd/lighttpd.conf によって扱われます。最初の例は、シングルサイトアクセスで、SSL を使用し、(PHP のような) 動的な機能を使用しない例です。

ファイル /etc/lighttpd/lighttpd.conf例 1
$SERVER["socket"] == "192.0.2.10:443" {
  server.name = "www.genfic.com"
  server.document-root = "/var/www/www.genfic.com/"
  server.errorlog = "/var/log/lighttpd/http_error.log"
  accesslog.filename = "/var/log/lighttpd/http_access.log"
  ## SSL 設定
  ssl.engine = "enable"
  ssl.pemfile = "/etc/ssl/lighttpd-ssl.pem"
  ssl.ca-file = "/etc/ssl/certs/ca-certificate.crt"
  # SSL オプション
  ssl.use-sslv2 = "disable"
  ssl.cipher-list = "TLSv1+HIGH !SSLv2 RC4+MEDIUM !aNULL !eNULL !3DES @STRENGTH"
}

追加の機能を有効化するには、/etc/lighttpd/lighttpd.conf 内で必要なモジュールを設定してください。例えば、FastCGI プロセッサを使用して PHP を有効化するには:

ファイル /etc/lighttpd/lighttpd.conf例 2 - PHP サポートを有効化する
...
include "mod_fastcgi.conf"
...

IP アクセスリスト

3 番目の例は、特定のサイト /server-status へのアクセスを、特定の IP アドレスのみに許可する方法を示しています。198.51.100.1127.0.0.1 のアドレスに対してサービスステータスの利用を許可するには、lighttpd.conf ファイル内で次の内容を設定してください:

ファイル /etc/lighttpd/lighttpd.conf例 3 - /server-status ページのための IP アクセスリストを有効化して設定する
# アクセスモジュールを有効化する
server.modules = {
  ...
  "mod_access",
}
...
# server-status ページをグローバルに有効化する
status.status-url  = "/server-status"

...
# server-status へのアクセスを列挙した IP ホストに制限する
$HTTP["remoteip"] !~ "198.51.100.1|127.0.0.1" {
      url.access-deny = ( "/server-status" )
}

開始

lighttpd サービスを自動で開始するためには、init 管理プログラムに適切に追加する必要があります。Gentoo には 2 つの主要な init 管理プログラムがあります: OpenRCsystemd です。

OpenRC

OpenRC では、rc-update コマンドを使用してください:

root #rc-update add lighttpd default

systemd

systemd では、systemctl コマンドを使用してください:

root #systemctl enable lighttpd.service

トラブルシューティング

すべてが適切に設定されていれば、lighttpd-angel/etc/lighttpd/lighttpd.conf 設定ファイルを検証すると exit コード 0 を返すでしょう:

root #lighttpd-angel -t -f /etc/lighttpd/lighttpd.conf
Syntax OK
lighttpd-angel.c.140: child (pid=32491) exited normally with exitcode: 0

設定ファイルにエラーがある場合は、次の例のように標準出力にエラーを表示するでしょう:

root #lighttpd-angel -t -f /etc/lighttpd/lighttpd.conf
2012-09-02 12:52:08: (plugin.c.131) Cannot load plugin mod_fastcgi more than once, please fix your config
2012-09-02 12:52:08: (network.c.379) can't bind to port: 192.168.0.1 80 Address already in use 
lighttpd-angel.c.140: child (pid=32139) exited normally with exitcode: 255

関連項目

外部資料