2017年6月5日月曜日

Installation of lighttpd(1.4.45) on Raspberry Pi

例のごとくメモ、、、
----------------------------------------------
追記2017.12.12

wget https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.48.tar
----------------------------------------------

でも、メモというよりは、苦闘の記録
(下の方に、1.4.45のインストールフローを書いたよ)

Raspberry Piのapt-getでインストールすると、1.4.35という2年位のバージョンになる。
いろいろ機能改善や、bug fixが行われている1.4.4Xを入れるのが良い。
一時期、lighttpdの開発は止まっていたけど、最近は、lighttpd2の開発も始まったようで、活性化してきた。

以前の投稿で、1.4.43のインストールがあるが、どうもその手順ではいまくいかないので、再度投稿

というか!

どうも、1.4.44 と1.4.45は、既に稼働する環境に対して上書きをするだけのインストーラのようだ、、、、丸々1日つぶした(-_-;)

従って、新規のマシンにインストールする時は、1.4.43をインストールしてから、1.4.45を上書きする。


う、、、記憶があいまい。。。
sudo apt-get install lighttpd
で、1.4.35をインストールした後に、1.4.45を上書きだっかかも、、、
どっちでもできるから、、、


また、1.4.43は、/usr/share/lighttpdにファイルを展開する
1.4.45は、/usr/local/lighttpd

実行モジュールも下記に配置されている。
/usr/local/sbin/lighttpd
従って、/etc/systemd/system/lighttpd.serviceを書き換える必要がある。

あと、インストール直後に出てくるindex画面(図1)に書いてあることは、systemdを採用する前の事だから、信用してはだめ。。。

lighttpdは、情報が少ないので何とかして欲しいなぁ

次のエラーがでたら、それぞれの処理を行い再度行う。

エラー1:
configure: error: pcre-config not found, install the pcre-devel package or build with --without-pcre

sudo apt-get install libpcre3-dev

エラー2:
configure: error: bzip2-headers and/or libs were not found, install them or build with --without-bzip2

./configure  --without-bzip2

sudo apt-get install libbz2-dev

図1
微妙だけど、、、
Peace!

追加、、、


CGIの起動について

僕の場合は、cgiを動かしたいわけで、、、
昔のlighttpdと違って、/etc/lighttpd/conf-enableにあるシンボリックリンクがmodされる。
そのmodされるタイミングは、もちろんlighttpd.confが読み込まれたとき。
で、それが処理されるのが、最後に書かれている

include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

従って、conf-enableにシンボリックリンクを張っただけではダメ。
このスクリプトが実行されて、conf-enableが展開されて初期化の時に読み込まれる。

で、問題は、素の1.4.45は、include-conf-enabled.pl のスクリプトを置かない。つまり、これがおかれないので、start時点でエラーがでる。無いからしょうがないけど、、、
だから、ということで、これは、Peace!

結局どうする1.4.45

(1)ベースになるモジュールをインストールする(どちらか)
   1.4.43 おすすめ
   sudo apt-get install lighttpd

(2)ベースをupdateする
   1.4.45のbuildとインストール。INSATLLを確認する。
    ./configure
   make
   sudo make install

   1.4.45は、/usr/local/sbin/lighttpdにインストールされる。
    mod 関連のモジュールは、/usr/local/lib
   下記のコマンドで確認してください。
    sudo find / -name mod* -print
   which lighttpd

   以前のものは /usr/share/lib、/usr/share/lighttpdにinstallされている。
   これも、上記のコマンドで確認できます。

(3)環境設定
   /etc/lighttpd.confの内容確認と必要モジュール確認とインストール
   特に、最後のinclude部分の確認

   /etc/lighttpdに3つのperlのスクリプトをコピーしてlighttpd.conf書換
   perlスクリプトは、実行権を忘れずに
   sudo cp *.pl /etc/lighttpd; sudo chmod +x /etc/lighttpd/*.pl

   # default listening port for IPv6 falls back to the IPv4 port
   #include_shell "/etc/lighttpd/use-ipv6.pl " + server.port
   #include_shell "/etc/lighttpd/create-mime.assign.pl"
   include_shell "/etc/lighttpd/include-conf-enabled.pl"

   /etc/lighttpd/conf-*のシンボリックリンク設定
   (例)
   sudo ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-enabled/10-cgi.conf

   lighttpd.serviceの内容確認と修正、配置位置
   /etc/systemd/system
   /lib/systemd/systemに置く

[Unit]
Description=Lighttpd Daemon
After=network.target

[Service]
Type=simple
ExecStartPre=/usr/local/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf
ExecStart=/usr/local/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

(4)確認
   lighttpd -v
   バージョンを確認する

   lighttpd -f /etc/lighttpd/lighttpd.conf -t
   エラーがあればlighttpd.conf修正

(5)実行確認
   sudo systemctl start lighttpd

   最初は、必ず結果を確認する
   sudo systemctl status -l lighttpd
 
   cgiは、10-cgi.confの/cgi-bin/で階層的にサフィックスも含めて確認
   /var/www/cgi-bin以下の実行権は、ちゃんと確認する。

(6)最後に、、、
   sudo systemctl enable lighttpd
   sudo reboot

なんか、やっと(^^)/

Peace!!

sudo cp -r cgi-bin /var/www; sudo chmod -R +x /var/www/cgi-bin

ちなみに、/etc/lighttpd/lightpd.confには、mimeが設定してある。

mimetype.assign = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar"
)

0 件のコメント:

コメントを投稿