$Id$
==============
以 root 的權限
==============
1. 打 vipw, 加入底下兩行
bbs::9999:99::0:0:Ptt BBS:/home/bbs:/home/bbs/bin/bbsrf
bbsadm::9999:99::0:0:Ptt BBS:/home/bbs:/bin/csh
2. 執行 passwd bbsadm 設 bbsadm的密碼
3. 在 /etc/group 中加入一行
bbs:*:99:
4. 執行 mkdir /home/bbs
5. 執行 chown bbs:bbs /home/bbs
6. 執行 chmod 700 /home/bbs
====================
以下用 bbsadm 的身份
====================
7. 您可以透過下列方式下載到本站的原始程式碼:
a.置於 https://OpenSVN.csie.org/pttbbs/trunk/
這是目前主要開發的版本, 也是批踢踢實業坊和批踢踢兔兩個站台
所使用的版本. 在這個版本中含有最新的程式, 但是可能會不穩定,
有 bug, 甚至和之前的版本不相容. 建議您有基礎的程式能力, 並
隨時注意 PttCurrent 看板 (在 telnet://ptt.cc中, 或可以使用
網頁版本 http://www.ptt.cc/bbs/PttCurrent/index.html) , 尤
其當您在更新程式的時候.
a)至 http://fs.ptt.cc 抓得每日自動製作的 snapshot ,
通常檔名長的會像是 pttbbs-DATE.tar.gz
再解開該檔即可: tar zxvf pttbbs-DATE.tar.gz
b)直接抓取 http://OpenSVN.csie.org/pttbbs/trunk/pttbbs下的所有資料.
如 wget -r -np http://OpenSVN.csie.org/pttbbs/trunk/pttbbs
c)透過 subversion 聯繫 pttbbs version control repository(註4)
再執行 svn checkout http://OpenSVN.csie.org/pttbbs/trunk/pttbbs
其中不論您以方式 a, b 取得源碼, 您都可以在該目錄下直接透過 svn update
更新至 pttbbs 最新的源碼. 如:
cd /home/bbs/pttbbs; svn update
(須先安裝 subversion, 見註4)
8. 切換到 pttbbs 的目錄下 ( cd ~bbs/pttbbs )
9. 如果您的 pttbbs.conf並不存在, 可以拷一份預設的來用:
cp sample/pttbbs.conf pttbbs.conf
10.依據您的須求, 修改 pttbbs.conf
請注意, 預設的 pttbbs.conf是給相當大規模的 bbs用的.
通常您須要進行修改以符合您的須求.
* 如果您是用 Linux系統, 請先安裝 pmake, 然後將 make alias 成 pmake *
11.在編譯 pttbbs 之前, 您需要先裝好 libiconv, libhz, pgp
如果您使用的是 FreeBSD, 可以直接透過 ports安裝:
cd /usr/ports/converters/libiconv; make install
cd /usr/ports/chinese/autoconvert; make install
cd /usr/ports/security/pgp; make install
12. (在 ~bbs/pttbbs 下) 執行 make BBSHOME=/home/bbs all install
13.如果是新架起來的站, 請執行 cd sample; make install
14.執行 cd /home/bbs; bin/initbbs -DoIt
其中第 13 以及 14 步是給第一次安裝的時候使用的,
如果您的 BBS中已經有資料了, 請務必不要執行這兩個步驟.
假如一切都很順利的話, 這樣子大概就安裝完了, 接下來是啟動 bbs 的部份.
15.執行 bin/shmctl init (*註1, *註2)
16.用 root 執行 bin/mbbsd 23 (註2)
17.測試整個系統是否完成:
telnet localhost 23 看看
new 一個帳號叫SYSOP, 然後 logout再 login, 這樣子就會擁有站長權限囉~
再 new一個帳號叫 guest , 這樣子別人就可以用 guest 參觀你的站了
開板, 開群組, 以及搬動群組的方法請看 PttSrc 板的文摘
18.新功能請參考 ADVANCE
19.為了讓開機的時候會自己把 bbs (以及所須要的程式) 跑起來,
若您使用 FreeBSD, 您可以將 sample/pttbbs.sh 拷貝到 /usr/local/etc/rc.d/
之後您可以重新開機試試看是不是在重開後可以正常運作 :)
20. pttbbs 須要定時執行一些小 tool 來維持系統正常運作,
reload cache, 備份, 特殊外部程式等等.
請用 bbs的權限, 執行 crontab -e , 內容請參照 sample/crontab
(在大部份的情況下, 直接將 sample/crontab 內容拷備進去即可)
21.在某些情況下, pttbbs會須要一些其他的程式來輔助.
下面列出所須要的程式, 預設的路徑, 以及在 FreeBSD ports內對映的路徑
tar /usr/bin/tar FreeBSD default install
gzip /usr/bin/gzip FreeBSD default install
rm /bin/rm FreeBSD default install
perl /usr/bin/perl /usr/ports/lang/perl5.8/
mutt /usr/local/bin/mutt /usr/ports/mail/mutt/
lynx /usr/local/bin/lynx /usr/ports/www/lynx/
我們大部份的 perl script會用到 LocalVars.pm , 該檔案內負責定義
各別機器的設定 (如外部程式的路徑) . 請將該檔拷份一份至 ~/bin/
下, 並修正該檔以符合貴環境的設定.
另外列出我們 perl script會用到的 perl module, 以 FreeBSD ports相對目錄.
Mail::Sender /usr/ports/mail/p5-Mail-Sender/
IO::All /usr/ports/devel/p5-IO-All/
22.若您有安裝 Blog 相關功能, 您需要先產生一個預設的 Blog 目錄
您可以參考批踢踢兔(telnet://ptt2.cc), Blog看板下的 Blog.Default 目錄,
並且拷貝一份或透過 symbolic link的方式放到 etc/Blog.Default.
同時將 sample/README.BLOG 拷貝到 etc/ 下.
註:
1. 這個程式是在 initial shared memory 用的, 只有開機後第一次執行, 或是
你手動清除 shm 後才需要執行
2. 如果您跑了 shmctl init 或 uhash_loader 並沒有看到
total XXXXX names loaded.
而是看到其他的錯誤訊息
(例如 [shmget error] key = 4cc, errno = 22: Invalid argument)
可能是您作業系統 shared-memory 上限不足,
請參考 FAQ中加大 shared-memory 部份的說明.
3. bin/mbbsd 23 是指定要 bind 23 port, 依照 UNIX 規定, 1024 以下的 port
須要有 root 權限, 所以如果要 bind 23 port 的話就要用 root 去執行,
3000 port 則不需要.
請參考 docs/ADVANCE , 安裝好 bbsctl ,
之後您就可以透過 bbsctl 直接在其他權限下 (如 bbsadm )
來啟動可以 bind port 23 的 mbbsd.
4. 您必須先安裝 subversion (請參考官方網站 http://subversion.tigris.org/ )
在 FreeBSD底下, 直接使用 ports 安裝即可:
cd /usr/ports/devel/subversion/; make all install
其他作業系統請參考 http://subversion.tigris.org/project_packages.html
或相關文件.
首先安装Freebsd系统,我安装的是6.2。建议只安装src,ports,binary,doc.其他ports里面的package先不要装,升级一下ports之后再装。因为前不久ports里面的xorg从6.9升级到7.2了。如果安装了升级比较麻烦。所以先不安装其他的package。
升级ports之后开始安装。
首先我们需要安装 Apache 和 Subversion 软件:
dev# cd /usr/ports/www/apache22dev# make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes \ WITH_SSL_MODULES=yes WITH_BERKELEYDB=db42 install cleandev# cd /usr/ports/devel/subversiondev# make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN \ -DWITH_APACHE2_APR install clean
安装完成后,我们来初始化仓库目录:
dev# mkdir -p /svn/reposdev# svnadmin create /svn/reposdev# chown -R www:www /svn/repos
这里,使用 www:www 用户/组是由于我们是通过 Apache 来提供访问支持。设置 Apache 的配置文件 /usr/local/etc/apache22/httpd.conf,以下只显示了主体部分:
.....LoadModule usertrack_module libexec/apache22/mod_usertrack.soLoadModule unique_id_module libexec/apache22/mod_unique_id.soLoadModule setenvif_module libexec/apache22/mod_setenvif.soLoadModule version_module libexec/apache22/mod_version.soLoadModule ssl_module libexec/apache22/mod_ssl.soLoadModule mime_module libexec/apache22/mod_mime.soLoadModule dav_module libexec/apache22/mod_dav.soLoadModule status_module libexec/apache22/mod_status.soLoadModule autoindex_module libexec/apache22/mod_autoindex.soLoadModule asis_module libexec/apache22/mod_asis.soLoadModule info_module libexec/apache22/mod_info.so.......LoadModule alias_module libexec/apache22/mod_alias.soLoadModule rewrite_module libexec/apache22/mod_rewrite.so#LoadModule dav_module libexec/apache22/mod_dav.soLoadModule dav_svn_module libexec/apache22/mod_dav_svn.soLoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
重启apache的时候发现有一个dav_module的错误。后来发现是load了两次。我就把后面的那个dav_module注释掉了。注意注释前面的那个会出错的。
然后在/usr/local/etc/apache22/Includes 下编辑svn.conf
dev# vi /usr/local/etc/apache22/Includes/svn.conf
使用 htpasswd 创建验证用户:
dev# htpasswd -cm /etc/svn-auth-file rory
最后,在 /etc/rc.conf 文件中设置:
apache22_enable="YES"
启动 Apache 后,可以通过 http://you.host.nameOrIP/svn 访问你的 Subversion 仓库了(这里假设你的 Apache 监听在 80 端口)。至于客户端,在 Windows 下可以使用 TortoiseSVNn,相当不错工具。以上步骤在 FreeBSD 6.1-RC 环境下试验成功,你可以进行适当的设置,让 Apache 支持 SSL,这样,你的 svn 将更加安全。
接下来安装trac
dev# cd /usr/ports/www/tracdev# make install clean
这样就安装好了,简单吧。接下来开始initevn
dev# mkdir -p /trac/projects/dev# trac-admin /trac/projects initenvdev# chown -R www:www /trac/projects/ (这一步很重要哦。如果没有修改owner下面和Apache集成之后会出现没有权限的错误不能正常显示)
操作中会提示一些信息,提示subversion 的 repository地址就是前面我们创建的repository /svn/repos 其他都不用设置这样就建立好了,启动standalone服务器tracd
dev# tracd --port 8000 /trac/projects
这样就可以通过http://you.host.nameOrIP:8000 查看到安装成功的trac了.这算是基本完成了。接下来就是使用apache来运行trac,需要mod_python 或者 mod_wsgi 的支持。这里我选择了mod_python,因为在ports里面有现成的。
dev# cd /usr/ports/www/mod_python3dev# make install clean
这里不能安装/usr/ports/www/mod_python 因为这里需要mod_python 3.1.3+ /usr/ports/www/mod_python 的版本是 2.7.11。
安装完成之后修改Apache的配置加载安装好的mod_python.
dev# vi /usr/local/etc/apache22/httpd.conf LoadModule python_module libexec/apache22/mod_python.so
添加trac的Location配置
dev# vi /usr/local/etc/apache22/Includes/trac.conf
这里使用的认证文件和svn的相同。一切都ok了,重启Apache
dev# /usr/local/etc/rc.d/apache22 restart
查看http://you.host.nameOrIP/trac 一切正常,恭喜你安装成功了。
参考
在 FreeBSD 下架设 Subversion 作为版本控制系统
本文系 莫多泡泡(somebody) 原创,转载请注明地址和作者。谢谢。
http://jdkcn.com/entry/howto-install-apache22-subversion143-trac10-on-freebsd6.html