apache2
Hiki on mod_rubyがあまりにも速いのでapache2が必須と なってしまった。他のものもさっさと移行して、 apache2に一本化してしまいたい。
tDiary
tDiaryはhttpd.confの追加だけで問題無さそう。
Alias /hdiary "/home/httpd/tdiary"
<Directory "/home/httpd/tdiary">
AllowOverride None
Options +ExecCGI
#AddHandler cgi-script .rb
RubyRequire apache/ruby-run
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
DirectoryIndex index.rb
Order allow,deny
Allow from all
<Files update.rb>
AuthName tDiary
AuthType Basic
AuthUserFile /home/.htpasswd.md5
Require user xxx
</Files>
</Directory>namazuはcgiの場所の変更、
#ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" ScriptAlias /cgi-bin/ "/usr/lib/cgi-bin/"
例によってnamazuの検索結果が化けるので、DefaultCharsetをコメントアウト。
#AddDefaultCharset ISO-8859-1
sqwebmail
cgiディレクトリの変更でsqwebmailも動くのではと思ったが、どうもダメっぽい。 どうやらSSLが動いてない模様。セットアップ済のはずなのだが... 調べてみると、443がlistenしてない。443ポートはssl.confで指定していて、 httpd.confがssl.confをincludeしている。試しにssl.conf全体を囲んでいる、
#<IfDefine SSL>
をコメントアウトしたら動くようになった。サーバ証明書も セットアップしてあったので、以前は動いていたはずなのだが... 意味わからんが、とりあえず動いたのでそれ以上追求せず。 これで一通り常用していたものはapache2に移行できているはず。
logrotate
Debianオリジナルのサーバ類が吐くログはlogrotateで管理されている。 apacheには独自にrotatelogsというユーティリティがあるのだが、 logrotateの方が良さげ。
logrotateはcronからこのように起動するようにセットアップされていて、
root@obs# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf
対象となるログは、/etc/logrotate.d/に設定ファイルが置かれている。
root@obs# grep include /etc/logrotate.conf include /etc/logrotate.d root@obs# ls /etc/logrotate.d apache base-config mysql-server samba
既存のapache定義ファイルを真似て、apache2を作成。
root@obs# cat /etc/logrotate.d/apache2
/usr/local/apache2/logs/*log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
}
root@obs# ログの切り替には、"reload"が必要らしい。 そうでなくても rcファイルはあった方が便利なので、これもapacheをパクって作る。
--- /etc/init.d/apache Sat Nov 13 04:16:52 2004
+++ /etc/init.d/apache2 Fri May 27 10:50:58 2005
@@ -3,13 +3,14 @@
# apache Start the apache HTTP server.
#
-NAME=apache
+NAME=apache2
PATH=/bin:/usr/bin:/sbin:/usr/sbin
-DAEMON=/usr/sbin/apache
+DAEMON=/usr/local/apache2/bin/httpd
SUEXEC=/usr/lib/apache/suexec
-PIDFILE=/var/run/$NAME.pid
-CONF=/etc/apache/httpd.conf
-APACHECTL=/usr/sbin/apachectl
+#PIDFILE=/var/run/$NAME.pid
+PIDFILE=/usr/local/apache2/logs/httpd.pid
+CONF=/usr/local/apache2/conf/httpd.conf
+APACHECTL=/usr/local/apache2/bin/apachectl
trap "" 1
export LANG=C
root@obs# update-rc.d apache2 defaults
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ja"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding system startup for /etc/init.d/apache2 ...
/etc/rc0.d/K20apache2 -> ../init.d/apache2
/etc/rc1.d/K20apache2 -> ../init.d/apache2
/etc/rc6.d/K20apache2 -> ../init.d/apache2
/etc/rc2.d/S20apache2 -> ../init.d/apache2
/etc/rc3.d/S20apache2 -> ../init.d/apache2
/etc/rc4.d/S20apache2 -> ../init.d/apache2
/etc/rc5.d/S20apache2 -> ../init.d/apache2
root@obs#
access control
<Directory /home/httpd/hiki08/rto>
<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY
AuthType Basic
AuthName "WebDAV Security"
AuthUserFile /home/.htpasswd.md5
Require valid-user
</Limit>
</Directory>
パスワードファイル新規作成
root@obs# /usr/local/apache2/bin/htpasswd -cm .htpasswd.md5 hao
ユーザ追加
root@obs# /usr/local/apache2/bin/htpasswd -m .htpasswd.md5 reiko
.htpasswd.md5はplain textなので、確認は直接
root@obs# cat .htpasswd.md5
http://pegandgiff.dyndns.org/~ユーザ名/
httpd.confでUserDirが有効になっていることを確認
UserDir public_html
home directoryにpublic_htmlを作る
% mkdir ~/public_html
home directory、及びpublic_htmlにapacheの実行権限(x)が必要
% chmod 711 ~ % chmod 711 ~/public_html
