Debianな自宅サーバーにtDiaryを設置してみる
以外と簡単でした
これまで日記はhtmlで作成し FTPで毎回アップロードし>これまで日記はhtmlで作成しFTPで毎回アップロードしていました。しかし欠点として
1 自宅からしかFTPを許可していないので外から更新できない
2 デザインがおしゃれでない
3 長くなって来ると整理をしないと行けない
などの不満がありそのへんを自動的にやってくれるtDiaryを導入する事にしました。
自宅サーバーはdebian woodyですが、デフォルトと違う点がいくつかあります。
●Debianサーバーにrubyをインストールする。
- apacheのユーザーを変更している
- suexecを無効にしている
- .htaccessは無効にしている
- /home/*/public_html/cgi-bin/以外の場所でファイルの実行はできない
準備が必要なのはこれだけ。
●tDiaryの本家か ら開発版の1.5.7をダウンロードします。
開発版となっていますがかなり安定していて、もうすぐ出る2.0との互換性からお薦めだそうです。
適当なところで展開します。例として/home/hogehoge/public_html/tdiaryとします。
*.rbファイルにはapacheユーザーに実行許可を与えて、ディレクトリー全体に書き込み許可を与える必要があります。
●tdiary.conf.sampleを編集しtdiary.confとして保存します。
修正するところは @data_path = '/home/hogehoge/tdiary' という感じでデータの保存場所を指定します。
apacheデーモンがアクセスできないところがセキュリティ−上お薦めで、public_htmlより上位に設定します。なおかつ、suexecを有効 にしていない場合はapacheユーザーに書き込み許可を与えます。
●dot.htaccessを編集し.htaccessとして保存します。
私の場合は以下の部分だけを残して、のこりはコメントアウトし、消した部分はhttpd.confに移しました。
<Files update.rb>
AuthName tDiary
AuthType Basic
AuthUserFile /home/hogehoge/.htpasswd
Require user hogehoge
</Files>
●.htaccessを有効にし、*.rbを実行できるようにする
私のサーバーではこれまで.htaccessを無効にして、cgi-bin以外の場所でファイルを実行できないようにしていました。
このままではtdiaryは動きませんので/etc/apache/httpd.confに追加・変更を行います。もちろんroot権限が必要です。
ずーと省略
#指定しなくてもindex.rbを表示するようにします。うちは.php優先です。
# DirectoryIndex: Name of the file or files to use as a pre-written HTML
# directory index. Separate multiple entries with spaces.
#
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.htm index.rb index.shtml
</IfModule>
途中省略
#.htaccessの使用を宣言します、これまではコメントアウトしていました。
# AccessFileName: The name of the file to look for in each directory
# for access control information.
#
AccessFileName .htaccess
途中省略
#.htaccessの内容の一部を移します、直接読んで欲しくないファイルを指定します。
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
<Files "*.rhtml*">
deny from all
</Files>
<Files "tdiary.*">
deny from all
</Files>
途中省略
#/cgi-bin/の設定のように、/home/*/public_html/tdiary/でも実行可能にします
#AllowOverride All で.htaccessが有効になります。
#そのほかの場所ではセキュリティ−上無効にしています。
<Directory /home/*/public_html/tdiary/>
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
途中省略
# To use CGI scripts:
#
#.rbファイルを実行ファイルとして指定します
AddHandler cgi-script .cgi .sh .pl .rb
●.htpasswd書き込む
コンソールから
htpasswd -c /home/hogehoge/.htpasswd hogehoge
としてパスワードを入力すれば終了です。
あとはtdiaryから設定を行えば終了です。