這篇文章在描述怎麼架設 PttBlog, 最後的編修及版號是:
$Id$

請注意,  PttBlog本來主要是設計給 Ptt2 站台使用, 目前正在開發階段,
並未接受嚴密的測試, 可能還缺少很多功能, 以及可能有許多的 bug.

您可以按照下列的步驟安裝好 PttBlog.
1.安裝好下列的東西, 我們並同時列上 FreeBSD ports內的目錄:
	apache		/usr/ports/www/apache13/
	perl		/usr/ports/lang/perl5.8/
	mod_perl	/usr/ports/www/mod_perl/
	mysql		/usr/ports/databases/mysql323-server/

  以及下列的 module
	Template	/usr/ports/www/p5-Template-Toolkit/
	Date::Calc	/usr/ports/devel/p5-Date-Calc/
	DBI		/usr/ports/databases/p5-DBI/
	DBD::mysql	/usr/ports/databases/p5-DBD-mysql/
	MD5		/usr/ports/security/p5-MD5/
	Mail::Sender	/usr/ports/mail/p5-Mail-Sender/
	OurNet::FuzzyIndex (還沒有進 ports, 請用 cpan 裝)

2.設定 apache 可以直接透過 mod_perl 來跑 perl script .
  在您的 apache.conf (or httpd.conf)中, 應該會有:
	LoadModule perl_module        libexec/apache/libperl.so
	AddModule mod_perl.c
  在<IfModule mod_mime.c></IfModule>中間, 加上這兩行:
	AddHandler perl-script .pl
	PerlHandler Apache::Registry

3.設定好 blog 的 web目錄. 裡面至少要有 index.pl, blog.pl, LocalVars.pm
   (其中 LocalVars.pm 建議用 symbolic link 到 /home/bbs/bin/的那一份)
  其中 *.pl 的權限要是可以執行的 (ex: chmod 755 *.pl)

4.設定 apache 指到 blog 的目錄. 並將該目錄開始 ExecCGI的 option.
  例如使用 Virtual Host :
	NameVirtualHost *
	<VirtualHost *>
		ServerName	blog.ptt2.cc
		DocumentRoot	/home/bbs/blog/web
		<Directory "/home/bbs/blog/web">
			Options ExecCGI
		</Directory>
	</VirtualHost>

5.將 builddb.pl, BBSFileHeader.pm 拷貝進 ~bbs/bin
  您可以嘗試用 perl -c ~bbs/bin/builddb.pl  測試看看能不能過.
  若不行的話, 通常是 LocalVars.pm 裡面少東西,
  請參考 pttbbs/sample/LocalVars.pm 的 blog 區.

6.參考 pttbbs/sample/pttbbs.conf中, 在您的 pttbbs.conf中加入
  BLOGDB_HOST, BLOGDB_USER, BLOGDB_PASSWD, BLOGDB_DB, BLOGDB_PORT, BLOGDB_SOCK
  並且重新 compile mbbsd, 在 make 時加入 WITH_BLOG=yes .
  然後 install 並且 restart

7.關於 Mysql共須要下面兩個 table (可以直接複製過去跑)
	CREATE TABLE `comment` (
	  `brdname` varchar(13) NOT NULL default '',
	  `artid` int(11) NOT NULL default '0',
	  `name` varchar(32) NOT NULL default '',
	  `mail` varchar(64) NOT NULL default '',
	  `content` text NOT NULL,
	  `mtime` int(11) NOT NULL default '0',
	  `hash` varchar(32) NOT NULL default ''
	) TYPE=MyISAM;

	CREATE TABLE `counter` (
	  `k` char(32) NOT NULL default '',
	  `v` int(11) NOT NULL default '0',
	  `mtime` int(11) NOT NULL default '0',
	  PRIMARY KEY  (`k`)
	) TYPE=MyISAM;

	CREATE TABLE `wcounter` (
	  `k` char(32) NOT NULL default '',
	  `v` int(11) NOT NULL default '0',
	  `mtime` int(11) NOT NULL default '0',
	  PRIMARY KEY  (`k`)
	) TYPE=MyISAM;
