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