Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Lighttpdのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Lighttpd
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ウェブサーバー]] [[cs:Lighttpd]] [[de:Lighttpd]] [[en:Lighttpd]] [[es:Lighttpd]] [[ru:Lighttpd]] [[zh-CN:Lighttpd]] [[zh-TW:Lighttpd]] [http://www.lighttpd.net/ Lighttpd] は高速性の重視される環境に最適化された、安全・高速で標準に準拠し、とても柔軟な[[Wikipedia:ja:Webサーバ|ウェブサーバー]]です。他のウェブサーバーと比べてメモリ使用量や CPU 負担が少ないのが特徴です。高度な機能セット ([[Wikipedia:ja:FastCGI|FastCGI]], [[Wikipedia:ja:Common Gateway Interface|CGI]], 認証, 圧縮出力, URL の書き換えなど) により、lighttpd は負担が気になるサーバーにうってつけのウェブサーバーソフトウェアとして君臨します。 ==インストール== [[公式リポジトリ]]から {{pkg|lighttpd}} パッケージをインストールしてください。 ==設定== ===基本設定=== lighttpd の設定ファイルは {{ic|/etc/lighttpd/lighttpd.conf}} です。デフォルトではテストページが表示されるようになっています。 {{ic|lighttpd.conf}} に問題が存在しないか次のコマンドを使うことで確認できます、これによって設定の誤りを早期発見することが可能です: $ lighttpd -t -f /etc/lighttpd/lighttpd.conf デフォルトの設定ファイルでは {{ic|/srv/http/}} をウェブ上に公開するドキュメントのディレクトリとして指定しています。 インストールをテストするには: # echo 'TestMe!' >> /srv/http/index.html # chmod 755 /srv/http/index.html サーバーを起動するには: # systemctl start lighttpd ブラウザで {{ic|localhost}} を開いて見て下さい、テストページが表示されるはずです。 ブート時にサーバーを起動させるには: # systemctl enable lighttpd 設定ファイルのサンプルは {{ic|/usr/share/doc/lighttpd/}} にあります。 ===CGI=== Lighttpd では、特に設定をしなくても、CGI モジュールを有効にするだけで CGI スクリプトが動作します。使用するプログラミング言語のインタプリタがインストールされているか確認してください (例えば python なら {{pkg|python}} をインストールします)。 {{ic|/etc/lighttpd/conf.d/cgi.conf}} ファイルを作成して以下の内容を追加します: server.modules += ( "mod_cgi" ) cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".rb" => "/usr/bin/ruby", ".erb" => "/usr/bin/eruby", ".py" => "/usr/bin/python", ".php" => "/usr/bin/php-cgi" ) index-file.names += ( "index.pl", "default.pl", "index.rb", "default.rb", "index.erb", "default.erb", "index.py", "default.py", "index.php", "default.php" ) PHP スクリプトの場合、以下を {{ic|/etc/php/php.ini}} に設定する必要があります: cgi.fix_pathinfo = 1 Lighttpd の設定ファイルを {{ic|/etc/lighttpd/lighttpd.conf}} に以下を追加してください: include "conf.d/cgi.conf" ===FastCGI=== {{pkg|fcgi}} をインストールしてください。それで lighttpd に fcgi サポートが追加されます。fcgi サポートを追加するだけなら設定はそれだけです。Ruby on Rails, PHP, Python などを使いたい場合は以下を読んで下さい。 {{Note|新しいデフォルトユーザーとグループ: lighttpd は {{ic|nobody}} グループではなくデフォルトで {{ic|http}} ユーザー/グループで動作するようになっています。}} まず {{ic|/usr/share/doc/lighttpd/config/conf.d/fastcgi.conf}} から {{ic|/etc/lighttpd/conf.d}} にサンプル設定ファイルをコピーします。 以下を設定ファイル {{ic|/etc/lighttpd/conf.d/fastcgi.conf}} に追加する必要があります: server.modules += ( "mod_fastcgi" ) #server.indexfiles += ( "dispatch.fcgi" ) #this is deprecated index-file.names += ( "dispatch.fcgi" ) #dispatch.fcgi if rails specified server.error-handler-404 = "/dispatch.fcgi" #too fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => "/run/lighttpd/rails-fastcgi.sock", "bin-path" => "/path/to/rails/application/public/dispatch.fcgi" ) ) ) そして {{ic|/etc/lighttpd/lighttpd.conf}} に以下を記述してください: include "conf.d/fastcgi.conf" PHP と Ruby on Rails については次のセクションを見て下さい。 ====PHP==== {{pkg|php}} と {{pkg|php-cgi}} をインストールします ([[PHP]] や [[LAMP]] を参照)。 php-cgi が動作するかは {{Ic|php-cgi --version}} で確認: PHP 5.4.3 (cgi-fcgi) (built: May 8 2012 17:10:17) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies 以上のように出力されたら php は正しくインストールされています。 新しい設定ファイルを作成: {{hc|/etc/lighttpd/conf.d/fastcgi.conf|<nowiki> # Make sure to install php and php-cgi. See: # https://wiki.archlinux.org/index.php/Fastcgi_and_lighttpd#PHP server.modules += ("mod_fastcgi") # FCGI server # =========== # # Configure a FastCGI server which handles PHP requests. # index-file.names += ("index.php") fastcgi.server = ( # Load-balance requests for this path... ".php" => ( # ... among the following FastCGI servers. The string naming each # server is just a label used in the logs to identify the server. "localhost" => ( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php-fastcgi.sock", # breaks SCRIPT_FILENAME in a way that PHP can extract PATH_INFO # from it "broken-scriptfilename" => "enable", # Launch (max-procs + (max-procs * PHP_FCGI_CHILDREN)) procs, where # max-procs are "watchers" and the rest are "workers". See: # https://redmine.lighttpd.net/projects/1/wiki/frequentlyaskedquestions#How-many-php-CGI-processes-will-lighttpd-spawn "max-procs" => 4, # default value "bin-environment" => ( "PHP_FCGI_CHILDREN" => "1" # default value ) ) ) ) </nowiki>}} lighttpd が新しい設定ファイルを使うように設定: {{hc|/etc/lighttpd/lighttpd.conf| include "conf.d/fastcgi.conf" }} {{Note|モジュールがロードされる順番は重要です。正しい順番は {{ic|/usr/share/doc/lighttpd/config/modules.conf}} に記載されています。設定を誤ると ''lighttpd'' がクラッシュする可能性があります。}} lighttpd をリロード: # systemctl reload lighttpd {{Note| * php ファイルにアクセスしたときに ''No input file found'' などのエラーが表示される場合、複数の原因が考えられます。詳しくは [http://redmine.lighttpd.net/projects/1/wiki/frequentlyaskedquestions#I-get-the-error-No-input-file-specified-when-trying-to-use-PHP この FAQ] を見て下さい。 * 他のモジュール (例: {{ic|mod_cgi}}) が ''.php'' 拡張子を処理するようになっていないか確認してください。 }} ===== php-fpm を使う ===== 最近の lighttpd のリリースでは適応型のプロセス生成はなくなっています。PHP プロセスの動的な管理がしたい場合は、{{Pkg|php-fpm}} を使うことができます。 # pacman -S php-fpm # systemctl enable php-fpm # systemctl start php-fpm {{Note|{{ic|/etc/php/php-fpm.conf}} ファイルを編集することでプールのサーバーの数やその他の設定オプションを変更できます。''php-fpm'' の詳細は [http://php-fpm.org/ php-fpm のウェブサイト] を見て下さい。{{ic|/etc/php/php.ini}} に変更を加えた場合、php-fpm を再起動する必要があります。}} {{ic|/etc/lighttpd/conf.d/fastcgi.conf}} に以下を追加: server.modules += ( "mod_fastcgi" ) index-file.names += ( "index.php" ) fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/run/php-fpm/php-fpm.sock", "broken-scriptfilename" => "enable" )) ) ===== eAccelerator ===== {{Note|2014年11月現在、AUR の {{AUR|eaccelerator}} はコンパイルすることができません。}} [[Arch User Repository|AUR]] から {{AUR|eaccelerator}} をインストールします。 eaccelerator の設定ファイルを追加: {{hc|/etc/php/conf.d/eaccelerator-own.ini|2= zlib.output_compression = On cgi.fix_pathinfo=1 eaccelerator.cache_dir="/home/phpuser/eaccelerator/cache" }} {{Tip|I additionally set {{ic|safe_mod}} to {{ic|On}} in my setup, but this is not required.}} ===== php ページのテスト ===== 以下の php ページを作成して、{{ic|index.php}} という名前をつけ、{{ic|/srv/http/}} と {{ic|/srv/http-ssl/html/}} の両方にコピーを配置してください: <?php phpinfo(); ?> ウェブブラウザを使って、あなたのサーバーの http と https 両方のアドレスを開いてみて下さい。phpinfo のページが表示されるはずです。 eaccelerator のキャッシュの確認: # ls -l /home/phpuser/eaccelerator/cache 上のコマンドで以下のような出力がされる場合: -rw------- 1 phpuser phpuser 456 2005-05-05 14:53 eaccelerator-277.58081 -rw------- 1 phpuser phpuser 452 2005-05-05 14:53 eaccelerator-277.88081 eaccelerator は正しく php スクリプトをキャッシュしており、速度がアップしています。 ====Ruby on Rails==== FastCGI をインストール・設定してください (上の [[#FastCGI]] を参照)。 [extra] から [[Ruby]] を、[[AUR]] から {{AUR|ruby-fcgi}} をインストールしてください。 [[Ruby on Rails]] の指示に従って下さい。 ==== Python FastCGI ==== FastCGI をインストール・設定してください (上の [[#FastCGI]] を参照)。 flup をインストール: # pacman -S python2-flup 設定: fastcgi.server = ( ".py" => ( "python-fcgi" => ( "socket" => "/run/lighttpd/fastcgi.python.socket", "bin-path" => "test.py", "check-local" => "disable", "max-procs" => 1, ) ) ) test.py をサーバーのルートに置いて下さい (忘れずに chmod +x で実行権限を与えます)。 {{bc|1= #!/usr/bin/env python2 def myapp(environ, start_response): print 'got request: %s' % environ start_response('200 OK', [('Content-Type', 'text/plain')]) return ['Hello World!'] if __name__ == '__main__': from flup.server.fcgi import WSGIServer WSGIServer(myapp).run() }} [https://bbs.archlinux.org/viewtopic.php?pid=734173#p734173 Thanks to firecat53 for his explanation] === SSL === SSL 証明書は以下のように生成します: # mkdir /etc/lighttpd/certs # openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/lighttpd/certs/www.example.com.pem -out /etc/lighttpd/certs/www.example.com.pem # chmod 600 /etc/lighttpd/certs/www.example.com.pem {{ic|/etc/lighttpd/lighttpd.conf}} を編集してください。lighttpd を SSL のみにするには (サーバーのポートを 443 に設定する必要があります): ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/certs/www.example.com.pem" 通常の HTTP に加えて SSL も有効にするには: $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/certs/www.example.com.pem" } 別のサイトを運営したい場合、socket 条件文でドキュメントルートを変更できます: $SERVER["socket"] == ":443" { server.document-root = "/srv/ssl" # use your ssl directory here ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/certs/www.example.com.pem" # use the path where you created your pem file } もしくは scheme 条件文を使ってセキュアなリクエストと通常のリクエストを区別することも可能です: $HTTP["scheme"] == "https" { server.document-root = "/srv/ssl" # use your ssl directory here ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/certs/www.example.com.pem" # use the path where you created your pem file } 上記の ssl.engine のまわりで scheme 条件文を使うことはできないので注意してください。lighttpd がどのポートで SSL を有効にするのか知る必要があるためです。 ===== Server Name Indication ===== lighttpd で [[Wikipedia:ja:Server_Name_Indication|SNI]] を使用するには、ssl.pemfile 設定ディレクティブを host 条件文の中に追加してください。デフォルトの ssl.pemfile が[https://redmine.lighttpd.net/projects/1/wiki/Docs_SSL#Server-Name-Indication-SNI 必要]です。 $HTTP["host"] == "www.example.org" { ssl.pemfile = "/etc/lighttpd/certs/www.example.org.pem" } $HTTP["host"] == "mail.example.org" { ssl.pemfile = "/etc/lighttpd/certs/mail.example.org.pem" } ==== HTTP のリクエストを HTTPS にリダイレクト ==== {{ic|/etc/lighttpd/lighttpd.conf}} の server.modules 行に {{ic|"mod_redirect"}} を追加してください: {{bc|<nowiki> server.modules += ( "mod_redirect" ) $SERVER["socket"] == ":80" { $HTTP["host"] =~ "example.org" { url.redirect = ( "^/(.*)" => "https://example.org/$1" ) server.name = "example.org" } } $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/ssl/server.pem" server.document-root = "..." } </nowiki>}} 全てのホストをセキュアな URL にリダイレクトするには上の socket 80 の設定のところに以下を記述します: {{bc|<nowiki> $SERVER["socket"] == ":80" { $HTTP["host"] =~ ".*" { url.redirect = (".*" => "https://%0$0") } } </nowiki>}} サイトの一部だけリダイレクトするには (例: secure または phpmyadmin): {{bc|<nowiki> $SERVER["socket"] == ":80" { $HTTP["url"] =~ "^/secure" { url.redirect = ( "^/(.*)" => "https://example.com/$1" ) } } </nowiki>}} === 圧縮出力 === {{ic|/etc/lighttpd/lighttpd.conf}} に以下を追加: var.cache_dir = "/var/cache/lighttpd" 圧縮ファイル用にディレクトリを作成: # mkdir /var/cache/lighttpd/compress # chown http:http /var/cache/lighttpd/compress サンプル設定ファイルをコピー: # mkdir /etc/lighttpd/conf.d # cp /usr/share/doc/lighttpd/config/conf.d/compress.conf /etc/lighttpd/conf.d/ 以下を {{ic|/etc/lighttpd/lighttpd.conf}} に追加: include "conf.d/compress.conf" {{Note| You can not do this (copy compress.conf) and add a needed content in {{ic|/etc/lighttpd/lighttpd.conf}} instead.}} ==トラブルシューティング== === Lighttpd で .php ファイルがダウンロードされてしまう === {{ic|.php}} ファイルが実行されず lighttpd によってダウンロードが始まってしまう場合、おそらく以下の行を {{ic|/etc/lighttpd/lighttpd.conf}} に追加し忘れています: {{bc|1= server.modules = ( "mod_fastcgi", ) fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", #depends where your php-cgi has been installed. Default here. "socket" => "/tmp/php.socket", "max-procs" => 2, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), "broken-scriptfilename" => "enable" ))) }} == 参照 == * [http://redmine.lighttpd.net/projects/lighttpd/wiki Lighttpd wiki]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Broken package link
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Lowercase title
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
Lighttpd
に戻る。
検索
検索
Lighttpdのソースを表示
話題を追加