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.

lighttpd (/lighty/ と発音されます) は高速で軽量な web サーバです。

インストール

USE フラグ

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

+brotli Enable output compression via app-arch/brotli (recommended)
+lua Enable Lua scripting support
+nettle Use dev-libs/nettle as crypto library
+pcre Add support for Perl Compatible Regular Expressions
+zlib Enable output compression via gzip or deflate algorithms from sys-libs/zlib
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)
libdeflate Enable output compression via app-arch/libdeflate
maxminddb Add support for geolocation using dev-libs/libmaxminddb
mbedtls Build module for TLS via net-libs/mbedtls
nss Build module for TLS via Mozilla's Network Security Services
php Include support for the PHP language
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
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)
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.modules += ("mod_openssl")
$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" # 証明書チェーン; 例えば Let's Encrypt fullchain.pem
  ssl.privkey = "/etc/ssl/lighttpd-ssl.pem" # 証明書秘密鍵; 例えば Let's Encrypt privkey.pem
}

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

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

IP アクセスリスト

3 番目の例は、特定のサイト /server-status へのアクセスを、特定の IP アドレスのみに許可する方法を示しています。IP アドレス 198.51.100.1 を持つ外部のホストと localhost 127.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

関連項目

  • Apache — 効率的で拡張可能な web サーバで、インターネット上で最も人気のある web サーバのひとつです。
  • Nginx — 強固で小さく高性能な web サーバ / リバースプロキシサーバです。

外部資料