====== lighttpd ======
===== 概要 =====
* Web サーバプログラム
* 軽量
===== インストール =====
- インストール\\ $ sudo apt-get install lighttpd php-cgi
- モジュール追加\\ $ sudo lighttpd-enable-mod cgi dir-listing fastcgi fastcgi-php userdir
* cgi
* fastcgi
* fastcgi-php
* userdir: ユーザディレクトリ (/home/USER/public_html) からのウェブ表示を有効化
* dir-listing: URL でディレクトリにアクセスした場合、ディレクトリの中身を表示
- サービスの再起動\\ $ sudo service lighttpd restart
===== その他 =====
* 設定ファイルは /etc/lighttpd/lighttpd.conf
* デフォルトのルートディレクトリは /var/www (Ubuntu、LinuxMint の場合)
===== Tips =====
==== アップロード上限を変更する ====
* lighttpd は関係なくて、大抵 php の設定に関係している
* /etc/php5/cgi/php.ini の以下の項目を変更する
* ''upload_max_filesize''
* ''post_max_size'' (''upload_max_filesize'' よりも大きめに設定する)
* ''memory_limit'' (''post_max_size'' よりも大きめに設定する)
* [[http://bashalog.c-brains.jp/12/02/02-105952.php | [PHP] ファイルアップロードの上限サイズを変更する際にさわるディレクティブまとめ | バシャログ。 | 横浜でWeb制作を行うシーブレインスタッフによる技術情報ブログ]]
==== 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 を動かせない ====
* 必要なパッケージがなぜか同時にインストールされていないのが原因
* gamin パッケージをインストールすると解決できる\\ $ sudo apt-get install gamin
* 参考サイト: [[http://serverfault.com/questions/778968/lighttpd-doesnt-start-after-purging-apache | Lighttpd doesn't start after purging Apache - Server Fault]]
==== PHPのページが表示されない ====
* Ubuntu 16.04 で ''/var/log/lighttpd/error.log'' に ''PHP Fatal error: Uncaught Error: Call to undefined function utf8_decode()'' がある場合、以下のパッケージをインストールする\\ $ sudo apt-get install php7.0-xml
* 参考サイト: [[http://stackoverflow.com/questions/35701730/utf8-endecode-removed-from-php7 | php - utf8_(en|de)code removed from php7? - Stack Overflow]]
{{tag>Linux サーバ}}