OpenBSD本家でlighttpdを動かす その1(OpenBSD 6.6R、2019/11/10) [OpenBSD]
OpenBSDではapacheが標準Webサーバなのかと思っていたら、いろいろと選択肢があるようですね。
個人的にはlighttpdが好きなので、lighttpd + PHPの環境を作ってみることにします。まずはlighttpd-1.4.54、php-7.3.11、php-cgi-7.3.11をインストールします。lighttpd自体の設定はWebにいっぱい転がっているので割愛します。
デフォルトのlighttpdの設定は以下のようにchrootする仕様になっています。
起動しようとすると早速怒られるので、以下を参考にmknodします。
https://stackoverflow.com/questions/18819557/configuring-devices-in-chroot-environment-openbsd
lighttpd.confのphp周りの設定を整えます。デフォルトでは以下のようになっています。
bin-pathが通っていないと怒られるので、locateの結果から/usr/local/bin/php-cgi-7.3に直しますが、メッセージは変わりません。よくよく考えるとchrootしているので、見つからないのも当然ですね。
chrootを考慮してbin配下を再構築するのは面倒なので、proxyもしくはsocket経由でfastcgiと連携できるようにします。proxyよりsocket経由の方が早いらしいので、chroot後の階層を考慮して、以下のように修正しました。
php-fpmは放置すると肥大化していくらしいので、以下のページを参考にメモリ節約チューニングも施しておきます。
https://hackers-high.com/linux/php-fpm-config/
なぜかhtdocsが見つからないと言われますが、確実に存在しているのでlighttpd.confの表記を直します。
その2へ続く。
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
コメント 0