cygwin1.79+apache2+php5+mysql5下kbs+blog安装手记
1、创建bbs管理员账户,并以bbs账户登陆。下载cygwin并安装
http://cygwin.com/setup.exe2、cygwin除了默认安装外把下面这些也装上
make gcc-core gcc-g++ wget cvs2svn patch readline cygrunsrv byacc bison autoconf-2.13 automake-1.6 libtool openssl openssl-
devel gmp libgmp-devel libxml2 libxml2-devel libiconv zlib zlib-devel gd libgd-devel libfreetype-devel jpeg libjpeg-devel
libpng14 libpng14-devel vim cron libmcrypt libmcrypt-devel popt
apache2 apache2-devel apr1 libapr1 libapr1-devel aprutil1 libaprutil1 libaprutil1-devel libuuid-devel libdb-4.2(一定要4.2)
安装后设置
set CYGWIN=server
cygserver-config
net start cygserver
export OUTPUT_CHARSET="GBK"
export LANG="zh_CN.GBK"
cygrunsrv -I apache2 -d "CYGWIN apache2" -p /usr/sbin/httpd2 -a "-DNO_DETACH" -e "CYGWIN=server" -o
apache2启动net start apache2
apache2关闭net stop apache2
3、安装libesmtp
cd /home
wget
http://dev.kcn.cn/libesmtp-cygwin.tar.gztar zxPf libesmtp-cygwin.tar.gz
4、下载kbs源代码
cd /home
svn co
http://svn.kcn.cn/repos/kbs/trunk kbs
mv kbs/kbs_bbs kbsbbs
5、编译安装mysql
cd /home
wget
http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-essential-5.1.59-win32.msiwget
http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.59.tar.gztar zxvf mysql-5.1.59.tar.gz
cd mysql-5.1.59
./configure --without-server --without-readline CFLAGS=-O2 CXXFLAGS=-O2&& make && make install
然后进入home目录安装mysql-essential-5.1.59-win32.msi并设置
cp support-files/my-medium.cnf /etc/my.cnf
vi /etc/my.cnf
在 [client] 中加入 protocol=TCP
mysql启动net start mysql
登陆测试mysql -uroot -p
mysql关闭net stop mysql
6、初次编译安装php
cd /home
wget
http://mirrors.sohu.com/php/php-5.2.17.tar.gztar zxvf php-5.2.17.tar.gz
cd php-5.2.17
./configure --prefix=/home/bbs/php --with-apxs2=/usr/sbin/apxs2 --without-iconv
先编辑makefile文件(非常重要):
1)、EXTRA_LIBS值增加:-lhttpd2core -lapr-1 -laprutil-1
2)、将libs/libphp$(PHP_MAJOR_VERSION).bundle下面的$(CC)后面加上-shared 还有将
$(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o)
替换成`echo $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) | sed "s/\([^/ ]*\)\.lo/.libs\/\1.o/g"`
make
make libs/libphp5.bundle
cp libs/libphp5.so /usr/lib/apache2/cygphp5.so
make install
7、安装kbs
id bbs查看uid和gid
vi /home/kbsbbs/site/fb2k-v2.h修改bbsuid和bbsgid并加入以下三行:
#define RECORDMAXONLINE
#define PERSONAL_CORP
#define NFORUM 1
cd /home/kbsbbs
./autogen.sh
cd sshbbsd
./autogen.sh
cd ..
./configure --enable-site=fb2k-v2 --with-php=/home/bbs/php --with-mysql=/usr/local \
--enable-ssh --enable-ssl --with-openssl--enable-innbbsd --with-libesmtp=/usr/local \
&& make && make install
make install-home选y
8、再次编译安装php
先去掉/home/kbsbbs/src/bbs.h中的#include "mpatrol.h"
cd /home/php-5.2.17
mkdir ext/kbs_bbs
cp /home/kbsbbs/php/config.m4 ext/kbs_bbs
cp /home/kbsbbs/php/php_kbs_bbs.h ext/kbs_bbs
cp /home/kbsbbs/php/*.c ext/kbs_bbs
装完这些发现autoconf版本是2.5估计被其他包依赖了,需要降到2.13否则接下来./buildconf --force会不成功,我是这样解决的:
mv /bin/autoconf /bin/autoconf11
mv /bin/autoconf-2.13 /bin/autoconf
mv /bin/autoheader /bin/autoheader11
mv /bin/autoheader-2.13 /bin/autoheader
./buildconf --force
./configure --prefix=/home/bbs/php --with-mysql=/usr/local --disable-debug --with-pic \
--disable-rpath --enable-inline-optimization \
--with-pdo-mysql=/usr/local --enable-xml --with-gd \
--with-freetype-dir=/usr --with-png-dir --without-iconv \
--with-jpeg-dir --with-zlib --with-apxs2=/usr/sbin/apxs2 \
--with-mcrypt --with-mbstring --enable-mbstring=all \
--with-layout=GNU --enable-kbs_bbs
先编辑makefile文件(非常重要):
1)、EXTRA_LIBS值增加:-lhttpd2core -lapr-1 -laprutil-1 还有在-lsystem 之后加上 -L/usr/local/lib -lesmtp
2)、将libs/libphp$(PHP_MAJOR_VERSION).bundle下面的$(CC)后面加上-shared 还有将
$(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o)
替换成`echo $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) | sed "s/\([^/ ]*\)\.lo/.libs\/\1.o/g"`
make
make libs/libphp5.bundle
cp libs/libphp5.so /usr/lib/apache2/cygphp5.so
make install
9、php相关设置
cp /home/php-5.2.17/php.ini-dist /home/bbs/php/etc/php.ini
vi /home/bbs/php/etc/php.ini
date.timezone=PRC同时取消这一行代码的注释,即去掉前面的分号就可以了
10、apache相关设置
vi /etc/apache2/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
index.html后面增加index.php
DocumentRoot改成 "/home/bbs/www"同时确定有下面这一行
LoadModule php5_module lib/apache2/cygphp5.so
vi /etc/apache2/mime.types增加两行
application/x-httpd-php php
application/x-httpd-php-source phps
mv /home/kbs/www2 /home/bbs/www
vi /home/bbs/www/www2-funcs.php增加一行
date_default_timezone_set("PRC");
11、初始化并启动kbs
/home/bbs/bin/bootstrap
cd /home/bbs/bin
./miscd daemon
./bbslogd
./bbsd -p 23
/usr/sbin/httpd2
12、配置并启动crontab
crontab /home/kbsbbs/contrib/crontab.SMTH
crontab -l
/usr/sbin/cron
vi /home/bbs/xml/rcmdbrd.xml内容如下
<?xml version="1.0" encoding="GBK"?>
<RecommendBoards>
<Board><EnglishName>newcomers</EnglishName></Board>
<Board><EnglishName>...</EnglishName></Board>
...
<Board><EnglishName>...</EnglishName></Board>
</RecommendBoards>
13、关闭kbs(关机前记得关闭kbs否则用户会丢失)
cp /home/kbsbbs/contrib/killall /home/bbs/bin/killall
cd /home/bbs/bin
./killall miscd
./killall daemon
./killall bbslogd
./killall bbsd
./killall httpd2
./killall cron
/home/kbsbbs/contrib/scripts/clearipc
14、phpmyadmin设置
cd /home
wget
http://nchc.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.4.9-rc1/phpMyAdmin-3.4.9-rc1-all-languages.tar.gztar zxvf phpMyAdmin-3.4.9-rc1-all-languages.tar.gz
mv phpMyAdmin-3.4.9-rc1-all-languages /home/bbs/www/phpmyadmin
cd /home/bbs/www/phpmyadmin
mv config.sample.inc.php config.inc.php
vi config.inc.php具体设置不再叙述。
15、blog配置
登陆phpmyadmin创建blog数据库并导入doc/DB.Blog.Structure.sql
vi /home/bbs/etc/sysconf.ini加入这几行
MYSQLBLOGHOST = "localhost" //MySQL服务器地址
MYSQLBLOGUSER = "root" //MySQL用户名
MYSQLBLOGPASSWORD = "123456" //MySQL用户密码
MYSQLBLOGDATABASE = "blog" //MySQL数据库名
MYSQLBLOGPORT = "3306" //MySQL数据库端口,默认为3306
vi /home/bbs/etc/menu.ini加入这两行
@PcorpManage 0,0, PERM_SYSOP, "BlogManage", "T) Blog管理"
@Pcorp 0,0, PERM_BASIC, "JPc", "J) Blog"
登陆telnet按~更新。
16、测试
vi /home/bbs/www/test.php内容如下
<?php
phpinfo();
?>
17、存在的问题
kbs在cygwin下貌似不能支持mysql,因为telnet下创建个人文集出现系统错误,web下blog出现无法连接到服务器。
xml下board.xml不能生成,似乎跟mysql的支持也有关系。
停留时间不正常,需要多几次./miscd daemon
无法转寄到email,难道libesmtp也没用?
--
修改:liufucan FROM 58.23.154.*
FROM 58.23.155.*