自宅サーバ設置 その3

今日はApacheのための準備をして chroot空間(/home/r/)のライブラリ群の設定。めんどくさい場合はchrootしたい環境の下にmake worldをして適当に削る。この場合の作業はざっくりこんな感じ。

# D=/home/r
# cd /usr/src
# mkdir -p $D
# make world DESTDIR=$D
# cd /usr/src/etc
# make distribution DESTDIR=$D

と言う感じ。うちのマシン(Celeron 1GHz)だとだいたいmake worldが3時間程度の模様。(make worldみたいな操作は寝ている間にがんばってもらう。) 終わったところで、chroot環境として動いてもらわねばならないので、/r/dev以下を生成する。FreeBSDの場合はDevfsになっているので、こんな感じにする。

# mount -t devfs devfs /r/dev
# devfs rule -s 10 delset
# devfs rule -s 10 add hide
# devfs rule -s 10 add path null unhide
# devfs rule -s 10 add path zero unhide
# devfs rule -s 10 add path random unhide
# devfs rule -s 10 add path uraondom unhide
# devfs -m /r/dev rule -s 10 applyset

/r/dev以下はnullとzeroとrandomとurandomのみにしてあとは隠すと言うルール。実際はこのコマンドは装置起動時もしくはデーモンの起動スクリプトで実行するのがよい。/r/etc以下は

```makefile /r/etc/Makefile all: spwd.db passwd

spwd.db: master.passwd

master.passwd: /etc/passwd cat $> \ |grep -v ‘^#’ \ |awk -F: \ ‘{printf “%s:*:%s:%s::0:0:%s:%s:%s\n”,3,5,7}’ \ > $@ chmod og-r $@

spwd.db: master.passwd pwd_mkdb -d . $>

passwd: master.passwd pwd_mkdb -d . -p $>


と言う内容のMakefileをつくっておいて、

    # cd /r/etc
    # make

とすると、chroot 環境に必要なパスワード情報を取り込むようになる。

## Apache起動

ここまで準備したことにより、Apacheを起動できる算段となった。Apacheは普通にインストールしてchrootする環境下(/home/r/に丸ごとコピーするのが手っ取り早いと思う。ApacheもDaemontoolで管理することにするため、以下のようなrunスクリプトを書く。(Daemontoolの使い方は前日の日記を参照。)

```bash /usr/local/apache2/apache/run
#!/bin/sh
APACHE=/usr/local/apache2

PATH=/usr/local/daemontools/bin:$PATH
exec env - PATH=/usr/local/bin:$APACHE/bin:$PATH \
pgrphack chroot /home/r httpd -DFOREGROUND

あとは/serviceに登録するとApacheが起動する。

Apacheのユーザーディレクトリ

ここのユーザーがWebページをもてるように若干の工夫をする。ざっくりと以下のような操作をユーザー作成時に行う。hogeというユーザーを作る時は、

# mkdir /home/r/hoge
# cp -pr /home/hoge/http /home/r/hoge && rm -rf /home/hoge/http
# chown -R hoge:ogwk /home/r/hoge
# ln -s /home/r/hoge/http /home/hoge/http

と言う具合に、chroot空間側にユーザーがファイルを置く空間を作って、シンボリックリンクを張る。これに対応するApacheの設定(httpd.conf)を抜粋して書くと

apacheconf httpd.conf <Directory "/home/*/http"> Options Indexes ExecCGI FollowSymLinks SymlinksIfOwnerMatch AllowOverride All </Directory> UserDir http

となる。ここまで設定を行って、実際に表示できるかどうか試してみること。

軽井沢ミーティング2018に参加

軽井沢ミーティング2018に初参加! 天気良くてよかった!さすがに5月末の週末は本当に天気が良い。Roadsterのイベントは前日入り出来る場合は可能な限り前日から参加している。主催者発表による今回の参加者は1975人、車はは1,002台。内訳は、NAは37%、NBは22%...… Continue reading

2017年も今日でおしまい

Published on December 31, 2017

Profoto A1の色温度の話

Published on December 21, 2017