ユーザ用ツール

サイト用ツール


サイドバー

トップページ

タグ

階層

最近の更新

外部リンク

サーバ関連:lighttpd

lighttpd

概要

  • Web サーバプログラム
  • 軽量

インストール

  1. インストール
    $ sudo apt-get install lighttpd php-cgi
  2. モジュール追加
    $ sudo lighttpd-enable-mod cgi dir-listing fastcgi fastcgi-php userdir
    • cgi
    • fastcgi
    • fastcgi-php
    • userdir: ユーザディレクトリ (/home/USER/public_html) からのウェブ表示を有効化
    • dir-listing: URL でディレクトリにアクセスした場合、ディレクトリの中身を表示
  3. サービスの再起動
    $ sudo service lighttpd restart

その他

  • 設定ファイルは /etc/lighttpd/lighttpd.conf
  • デフォルトのルートディレクトリは /var/www (Ubuntu、LinuxMint の場合)

Tips

アップロード上限を変更する

cgi が実行できない

以下の可能性が考えられる

  • cgi モジュールが有効になっていない
    # sudo lighty-enable-mod cgi
  • cgi ファイルのパーミッションに実行権限がない場合に「403 Forbidden」がブラウザに表示される
    → chmod コマンドで実行権限を付与する
  • cgi.assign が適切に設定されていない場合、cgi にブラウザでアクセスすると cgi ファイルをダウンロードしてしまう
    • 拡張子と実行するためのバイナリがしっかり関連付けられているか?
      cgi.assign = (
      	".pl" => "/usr/bin/perl",
      	".cgi" => "",
      	".bin" => "",
      )
      • cgi が perl で書かれたものである場合は、.cgi にも /usr/bin/perl を設定しなければならない
    • cgi を実行できるディレクトリを特定してしまっているために、特定のディレクトリ以外の場所で実行できない
      • 以下の場合だと、/var/www/cgi-bin (wwwルート/cgi-bin/) 内の cgi しか実行できない
        $HTTP["url"] =~ "^/cgi-bin/" {  
        	cgi.assign = (                                                                                                                                                                                                                      
        		".pl" => "/usr/bin/perl",
        		".cgi" => "/usr/bin/perl",
        		".bin" => "",           
        	)                           
        }
      • cgi.assign$HTTP[“url”]… の外に出せば、すべての cgi ファイルに適用できる。
        cgi.assign      = (                                                                                                                                                                                                                  
        	".pl" => "/usr/bin/perl",
        	".cgi" => "/usr/bin/perl",
        	".bin" => "",           
        )                           
         
        $HTTP["url"] =~ "^/cgi-bin/" {  
        	cgi.assign      = (                                                                                                                                                                                                                      
        		".pl" => "/usr/bin/perl",
        		".cgi" => "/usr/bin/perl",
        		".bin" => "",           
        	)                           
        }

Ubuntu 16.04 (LinuxMint 18) で lighttpd を動かせない

PHPのページが表示されない

  • Ubuntu 16.04 で /var/log/lighttpd/error.logPHP Fatal error: Uncaught Error: Call to undefined function utf8_decode() がある場合、以下のパッケージをインストールする
    $ sudo apt-get install php7.0-xml
サーバ関連/lighttpd.txt · 最終更新: 2017/03/27 09:13 by mumeiyamibito