SSブログ

OpenBSD本家でlighttpdを動かす その1(OpenBSD 6.6R、2019/11/10) [OpenBSD]

OpenBSDではapacheが標準Webサーバなのかと思っていたら、いろいろと選択肢があるようですね。
openbsd# pkg_info -Q httpd
apache-httpd-2.4.41
bozohttpd-20190228
darkhttpd-1.12
libmicrohttpd-0.9.66
lighttpd-1.4.54
sthttpd-2.26.4p4

個人的にはlighttpdが好きなので、lighttpd + PHPの環境を作ってみることにします。まずはlighttpd-1.4.54、php-7.3.11、php-cgi-7.3.11をインストールします。lighttpd自体の設定はWebにいっぱい転がっているので割愛します。

デフォルトのlighttpdの設定は以下のようにchrootする仕様になっています。
openbsd# cat /etc/lighttpd.conf
# chroot() to directory
server.chroot              = "/var/www/"

起動しようとすると早速怒られるので、以下を参考にmknodします。
https://stackoverflow.com/questions/18819557/configuring-devices-in-chroot-environment-openbsd
openbsd# cat /var/www/logs/error.log
2019-11-10 10:29:00: (server.c.785) opening /dev/null failed: No such file or directory
2019-11-10 10:29:00: (server.c.1518) Opening errorlog failed. Going down.

openbsd# cd /var/www
openbsd# mkdir dev
openbsd# cd dev
openbsd# mknod -m 666 null c 2 2

lighttpd.confのphp周りの設定を整えます。デフォルトでは以下のようになっています。
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                  "socket" => "/var/run/lighttpd/php-fastcgi.socket",
                                   "bin-path" => "/usr/local/bin/php-cgi"
                                 )
                               )
                            )

bin-pathが通っていないと怒られるので、locateの結果から/usr/local/bin/php-cgi-7.3に直しますが、メッセージは変わりません。よくよく考えるとchrootしているので、見つからないのも当然ですね。
chrootを考慮してbin配下を再構築するのは面倒なので、proxyもしくはsocket経由でfastcgiと連携できるようにします。proxyよりsocket経由の方が早いらしいので、chroot後の階層を考慮して、以下のように修正しました。
openbsd# cat /etc/lighttpd.conf
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/run/php-fpm.sock"
                                 )
                               )
                            )

php-fpmは放置すると肥大化していくらしいので、以下のページを参考にメモリ節約チューニングも施しておきます。
https://hackers-high.com/linux/php-fpm-config/
openbsd# cat /etc/php-fpm.conf
listen = /var/www/run/php-fpm.sock
pm = static
pm.max_children = 2

なぜかhtdocsが見つからないと言われますが、確実に存在しているのでlighttpd.confの表記を直します。
openbsd# cat /var/www/logs/error.log
2019-11-10 12:51:16: (response.c.161) file not found ... or so:  File exists / -> htdocs/

openbsd# cat /etc/lighttpd.conf
# server.document-root        = "htdocs/"
server.document-root        = "/htdocs/"


その2へ続く。

タグ:lighttpd
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。