tDiaryの設置

Debianな自宅サーバーにtDiaryを設置してみる

以外と簡単でした
これまで日記はhtmlで作成し FTPで毎回アップロードし>これまで日記はhtmlで作成しFTPで毎回アップロードしていました。しかし欠点として
1 自宅からしかFTPを許可していないので外から更新できない
2 デザインがおしゃれでない
3 長くなって来ると整理をしないと行けない
などの不満がありそのへんを自動的にやってくれるtDiaryを導入する事にしました。
自宅サーバーはdebian woodyですが、デフォルトと違う点がいくつかあります。
  1. apacheのユーザーを変更している
  2. suexecを無効にしている
  3. .htaccessは無効にしている
  4. /home/*/public_html/cgi-bin/以外の場所でファイルの実行はできない
●Debianサーバーにrubyをインストールする。
準備が必要なのはこれだけ。

●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から設定を行えば終了です。



戻る
コメント・訂正がありましたらc-yun@kids-clinic.jpま で