第一篇 KBS安装指南

KBS安装指南

  1. 一些环境准备
    虚机(virtualbox 5.1+, 比如5.1.26)环境搭建
    如果没有开启vt,需要开启,首先开机进入BIOS,Security,Virtualization,选择Enable即可
    安装ubuntu12.04.5,地址 :
    http://mirrors.163.com/ubuntu-releases/12.04/ubuntu-12.04.5-desktop-amd64.iso
    比较古老的32位的或不支持vt技术的cpu选择:
    http://mirrors.163.com/ubuntu-releases/12.04/ubuntu-12.04.5-desktop-i386.iso

虚机网络断开安装,否则会自动安装更新,耗时比较久,
virtualbox - 显示 - 启用3d加速
安装过程中,配置用户名设置为 bbs

安装完成后去掉iso挂载,网络选择网络地址转换NAT,重启后

virtuabbox, 设备-安装增强功能(和主机共享文件)
df 查看光盘挂载地址
cd /media/VBOXADDITIONS_5.1_xxxx (xxxx为上面命令结果补全)
sudo ./VBoxLinuxAdditions.run

重启,设备 - 共享文件夹, 选择windows主机的文件夹映射为 bbs目录为共享目录,选择固定分配,自动挂载
sudo mount -t vboxsf bbs /mnt

添加国内源
sudo vi /etc/apt/sources.list

删除文本所有内容,添加:

1
2
3
4
5
6
7
8
9
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-security main restricted universe multiverse

修改一下vim打开文件的编码方式,否则后续编辑有可能显示乱码
vim ~/.vimrc
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

  1. 安装 sudo ./php_apache.sh 安装合适的 php, apache, mysql 等依赖库
    php_apache.sh 的内容:

apt-get update &&
apt-get install -y zlib1g-dev &&
apt-get install -y autoconf &&
apt-get install -y automake &&
apt-get install -y libtool &&
apt-get install -y libgmp3c2 &&
apt-get install -y libgmp3-dev &&
apt-get install -y openssl &&
apt-get install -y apache2 &&
apt-get install -y libapache2-mod-php5 &&
apt-get install -y php5-dev &&
apt-get install -y php5-gd &&
apt-get install -y bison &&
apt-get install -y byacc &&
apt-get install -y tree &&
apt-get install -y libcurl4-openssl-dev &&
apt-get install -y dos2unix &&
apt-get install -y libpcre3 &&
apt-get install -y libpcre3-dev &&
apt-get install -y libmysqlclient-dev &&
apt-get install -y php5-mysql &&
apt-get install -y sendmail &&
apt-get install -y php-pear &&
apt-get install -y sqlite3 &&
apt-get install -y libsqlite3-dev &&
apt-get install -y git &&
apt-get install -y mysql-client &&
apt-get install -y mysql-server &&
apt-get install -y curl &&
apt-get install -y libboost-dev &&
apt-get install -y libboost-test-dev &&
apt-get install -y libboost-program-options-dev &&
apt-get install -y libboost-system-dev &&
apt-get install -y libboost-filesystem-dev &&
apt-get install -y libevent-dev &&
apt-get install -y pkg-config &&
apt-get install -y g++ &&
apt-get install -y libglib2.0-dev &&
apt-get install -y libgtk2.0-dev &&
#apt-get install -y librdkafka-dev librdkafka1 &&
apt-get install -y python-dev &&
apt-get install -y openjdk-7-jre openjdk-7-jdk

安装过程提示输入mysql密码,设置的是beautiful,如设置别的密码,后续使用mysql相应修改

拷贝一些头文件,编译kbs会用到
sudo cp /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h /usr/include/
sudo cp /usr/lib/jvm/java-7-openjdk-amd64/include/* /usr/include/ -a
sudo cp /usr/lib/jvm/java-7-openjdk-amd64/include/linux/* /usr/include/ -a

thirft使用 thrift-0.10.0.tar.gz (version 0.11.0/0.12.0在ubuntu12.04未能编译通过)
kafka使用 librdkafka-1.0.1.tar.gz (低版本有函数未定义)
两者编译安装
./configure –prefix=/usr && make && sudo make install

  1. 安装kbs
    解压kbs到/home/bbs/src目录

src/Makefile.am
local_utl/Makefile.am
daemon/Makefile.am
libBBS/Makefile.am
几个文件的 LDADD 增加 -lrdkafka

./autogen.sh
./configure –prefix=/home/bbs –enable-site=newsmth –with-php –with-mysql

vi /etc/passwd, 找bbs的userid, grpid, 我这里是1000,1000, 更新到 site/newsmth.h 的 BBSUID, BBSGID

site.h, src/extra.h 中暂时去掉以下KBS宏定义 (暂未编译通过)

//#define ENABLE_LIKE 1
//#define ENABLE_REFER_LIKE

src/bbs.c 屏蔽函数 recommend_tg
src/talk.c 屏蔽函数 display_user_summary display_userinfo
libBBS/libbm.c 屏蔽函数 AO_int_fetch_and_add
libBBS/extra.c 屏蔽函数 AO_int_fetch_and_add
local_utl/awardonline.c 屏蔽函数 AO_int_fetch_and_add

修改php模块待安装目录的权限
sudo chown bbs:bbs /usr/lib/php5 -R

make
make install
make install-home