tDiaryのインストールと設定
2018.11.11
自宅サーバーに tDiary をインストールして設定してみました。tDiary はただただしさんが開発した日記システムです。日記ですからブログとしても使えます。まあ、今日では日記もブログも決定的な違いはなくなってきていると言えます。機能は非常に豊富で様々なカスタマイズが可能です。

インストールが難しいかどうかですが、万年 FreeBSD 初心者の私でもできましたので易しいほうでしょう。とりあえずはディレクトリとかパーミッションの概念がわかっていれば大丈夫です。あと、私は自宅サーバーですので apache の httpd.conf をいじる必要がありました。ほかには htpasswd の操作ぐらいでしょうか。

私のサーバーは FreeBSD 11.2-RELEASEです。

なお、下記の表記にて、不等号はページ表示の都合上全角文字で入れてあります。

とりあえず ports から入れました。

  # cd /usr/ports/japanese/tdiary
  # make install clean

インストールの最後に、以下のようなメッセージが出ます。

There is a script to install tDiary in a user directory.
This script should be run manually.

  # /usr/local/bin/ja-tdiary-inst.rb --user=User
  or
  % /usr/local/bin/ja-tdiary-inst.rb

 * Option: --suexec Use suExec for CGI execution --help Display Help information

---

There are documents in the following directories.
  See ...
  /usr/local/share/doc/ja-tdiary

---------------------------------------------------

これについて説明します。

まず、

  # /usr/local/bin/ja-tdiary-inst.rb --user=User
  or
  % /usr/local/bin/ja-tdiary-inst.rb

については、いずれかを実行すれば構いません。実行ファイル ja-tdiary-inst.rb を動かして、必要なファイルをユーザーのディレクトリにコピーするのです。コピーされる場所は、ユーザー名が foo であれば

  /usr/home/foo/public_html/diary

になります。

余談ですが、私はすでにこの diary というディレクトリが作ってあって別のコンテンツが入っていましたので、そこに tDiary の諸ファイルがコピーされてしまい、やり直しを余儀なくされました。同じようなディレクトリが作ってある方はお気をつけを。

また、ドキュメントは

  /usr/local/share/doc/ja-tdiary

にありますよ、と表示されていますが、実は

  /usr/home/foo/public_html/diary/doc

の中にコピーされていました。

次は apache 側の設定です。/usr/local/etc/apache24/httpd.confをいじります。レンタルサーバーなどでは .htaccess を作ればいいでしょう。

以下を付け加えて CGI の実行権限を与えます。

  <Directory "/usr/home/foo/public_html/diary">
    AllowOverride None
    Options +ExecCGI
    Require all granted
  </Directory>

拡張子が.rb のファイルを CGI のファイルであると認識させます。

  AddHandler cgi-script .rb

他の拡張子が指定してあれば、そこに付け加えればOK。

  AddHandler cgi-script .cgi .pl .rb

index.rb をデフォルトのファイルに設定します。

  <IfModule dir_module>
    DirectoryIndex index.html index.rb
  </IfModule>

外部からアクセスされては困るファイルを指定しておきます。

  <Files "*.rhtml">
    deny from all
  </Files>

  <Files "tdiary.*">
    deny from all
  </Files>

オーナーだけがいじれるファイルにパスワードを掛ける指定です。

  <Files update.rb>
    AuthName tDiary
    AuthType Basic
    AuthUserFile /home/foo/.htpasswd
    Require user foo
  </Files>

httpd.conf の設定はこれで終了です。

次にオーナー用のパスワードを作っておきます。

  % /usr/local/sbin/htpasswd -c /usr/home/foo/.htpasswd foo

もちろん.htpasswd の位置は好きな場所で構いません。その場合 httpd.conf の AuthUserFile の指定は変更しなければなりません。

最後の設定は /usr/home/foo/public_html/tdiary/tdiary.conf の作成です。

実は tdiary.conf というファイルはないので、作ります。tdiary.conf.beggner は初心者が利用しやすい雛形です。

% cp tdiary.conf.begginer tdiary.conf

とりあえずは tdiary.conf の最初にある

  @data_path = '/home/foo/diary'

のみ変更します。foo は自分のユーザーネームしなければなりません。

(蛇足ですが、FreeBSDでは /usr/home と /home は同じです)

このディレクトリ指定は public_html の外にしろ、公式ドキュメントにはありますが、私はとりあえず中にしました。

あと、tdiary.conf のパーミッションを600から604に変えておきます。この必要性は公式のページには書いてなかったのですが、私の場合600だと実行時にサーバーエラーが起きました。

ここまでできたら apache を再起動します。

  # apachectl restart

ブラウザで自分の URL/diary/ にアクセスしてみます。ここでエラーなどが出ていなければ成功です。「設定」をクリックすると各種設定が可能です。一旦記事を書き込むと最初に「設定」は出てこなくなりますが、「更新」ページに行くと右上に「設定」が出てきます。

以上です。あとは色々カスタマイズが可能です。

公式ページ http://www.tdiary.org を御覧ください。
コメント一覧
コメント投稿

名前

URL

メッセージ

- CafeLog -