OpenBSD 7.8 amd64 で檢證。
OpenBSD に附屬する httpd は静的サイトの公開に充分な機能を持つ。
ここで未だ解説してゐないが、cgi や php を使用することもできる。
httpd を起動する前に /etc/httpd.conf の作成と編輯をする。
設定の見本は /etc/examples/httpd.conf に格納されてゐる。
詳細は mannual page の httpd(8) や 同 httpd.conf(5) を參照。
設定した後で rcctl から httpd の有效化、起動をする。
$ doas vi /etc/httpd.conf $ doas rcctl enable httpd $ doas rcctl start httpd
http://localhost:3000/ でファイルを公開する場合。
まづ公開用の directory を作成して作業用の user でファイルを保存できる樣にする。
$ whoami tak4 $ doas mkdir /var/www/public $ doas chown tak4:www /var/www/public
ファイルを配置する。
$ echo hello httpd > /var/www/public/hello
/etc/httpd.conf に次の内容を記述する。
server "default" {
listen on * port 3000
root "/public"
}
default の部分の名前は任意だが、所謂 virtual host を使用する場合は然るべき hostname を記載する。
listen on に ip address を設定すると公開範圍を限定できる。
httpd.conf を編輯して保存できたら httpd を開始 (再開) する。
$ doas rcctl stop httpd $ doas rcctl start httpd
適當な web UA で接續してみる。
$ w3m http://localhost:3000/hello.txt
試した後は daemon を停止、無效にする。
$ doas rcctl stop httpd $ doas rcctl disable httpd
httpd.conf の listen on に不正な address を指定すると httpd が動作しなくなる。
(例へば、listen on 192.168.10.10 port 3000 と指定しておきながら 自身に 192.168.10.10 が割り當てられてゐない場合など)
この場合 httpd の開始時に httpd (ok) と表示されるが process は即終了する。
/var/log/daemon には以下のログが出力される。
parent: send server: Can't assign requested address
これを解決するには該當する listen on の行を修正して httpd を起動する。
保安上の懸念がなければ liten on * でよい。
特に WireGuard などと併用する場合に發生する。 囘避するには cron などを設定して wg-quick up の後で httpd を起動するとよいはず (未檢證)
OpenBSD httpd 7.3: Web サーバー | OpenBSD Solutions ブログ
httpd.rocks - Setup an HTTPS-enabled webserver with httpd on OpenBSD
更新 2025-12-31 (陰暦11月12日)