Project Babel

来自开放百科 - 灰狐
2007年4月8日 (日) 16:51Allen (讨论 | 贡献)的版本

跳转到: 导航, 搜索

a Sophisticated BBS software

Project Babel 是一套在众多方面进行创新的开放源代码网络社区软件,发布于 GPL 协议下。

Project Babel 的界面设计十分清爽,几乎不需要任何额外思考的可用性是我们的最高宗旨,而尽可能地符合 W3C 标准当然也是我们的目标之一。作为对社区中讨论话题的补充,Project Babel 具有非常强大的内容聚合功能,每个讨论区支持从 RSS,外部网址及 Flickr 图片社区中聚合相关内容。

Project Babel 构建于 PHP 5.2 技术上,结合 MySQL 4.1,系统中所有文字的编码是 UTF-8,可以很好地支持各种语言。我们使用了 Apache 的 mod_rewrite 来为所有使用 Project Babel 搭建的社区的 SEO 效果加分。

每一个页面上都尽可能地使用了 cache,因此即使内容完全动态,Project Babel 仍然可以提供足以支撑每天 1,000,000 访问量的性能。并且,cache 触发机制使得在访问量越高时,cache 命中率就越高。

看看 Babel 的发展历史: Project Babel Explained

Install

系统需求

  • 任何支持 PHP 5 和 Apache 2 的操作系统。
  • MySQL 4.1/5.0/5.1,推荐 5.0。
  • PHP 5.0 或者 5.1,推荐 5.1,必须支持 mcrypt,MySQL,GD,Freetype,mbstring 及 SimpleXML 等模块。
sudo apt-get install php5-mcrypt
sudo apt-get install php5-mysql
sudo apt-get install php5-gd
sudo apt-get install libfreetype6

  • Apache 2.0 以上,必须支持 rewrite。
sudo a2enmod rewrite

安装步骤:

1,把解开压缩后得到的顶级目录,复制或者符号链接到你想要的位置,然后将这个位置(比如 Linux 下可能是 /www/babel)写到三个 Settings.php 的 BABEL_PREFIX 选项中,一个位于 cron/core/,另外一个位于 htdocs/core/,还有一个位于 tools/core/。

define('BABEL_PREFIX', '/var/www/r500/');

2,MySQL 中导入 sql/planescape.mysql.sql 之后,将 MySQL 的登录信息写到 cron/core/ 和 htdocs/core/ 下的的 Settings.php 中。

define('BABEL_DB_HOSTNAME', 'localhost');
define('BABEL_DB_PORT', 3306);
define('BABEL_DB_USERNAME', 'root');
define('BABEL_DB_PASSWORD', );
define('BABEL_DB_SCHEMATA', 'planescape');

3,cron/benefit.php 提供有趣好玩的利息计算功能,最好是在每天晚上 0 点的时候运行,利率在 cron/core/Settings.php 中调整。

4,务必使用 apache/babel.conf 这个 Apache 配置文件,或者将其中的 Rewrite 规则放进一个 .htaccess 中,注意 Babel 的 DocumentRoot 是 htdocs/。之后,需要重新启动一次 Apache 如果你不是通过 .htaccess 使用 Rewrite 规则的话。

sudo cp etc/apache2/sites-enabled/000-default 000-default-bk
sudo vi 000-default
sudo /etc/init.d/apache2 restart

5,打开并编辑定制 htdocs/core/InstallCore.php 之后,从浏览器运行一次。

http://localhost/core/InstallCore.php
Install Core init
OK: INSERT INTO babel_node(nod_name, nod_title, nod_pid, nod_sid, nod_uid, nod_level, nod_header, nod_footer, nod_description, nod_created,  
nod_lastupdated) VALUES('board', 'Board', 2, 2, 1, 2, 'Hello World!', 'This is an example board in Limbo.', , 1175958840, 1175958840)
OK: INSERT INTO babel_channel(chl_pid, chl_url, chl_created) VALUES(3, 'http://www.livid.cn/rss.php', 1175958840)

6,打开 http://localhost/,根据屏幕提示修改一些目录的权限。

如果是在 Unix 操作系统上运行 Babel,你可以使用 chmod 777 方式来更改目录权限,或将以上目录的所有者更改为 web server 进程用户。
http://localhost :) 
http://localhost/status.vx

7,到这一步的时候安装基本完成。你可以打开 htdocs/core/Settings.php 研究更多的好玩的隐藏功能。

6,第一个注册的用户将自动成为管理员,具备很多特权,小心使用。

取得最新的版本:

svn co http://project-babel.googlecode.com/svn/trunk project-babel 
svn co http://project-babel.googlecode.com/svn/trunk  r84 // check out R84 , V2EX Commit

Project Babel 的项目控制站点及 Subversion repository 位于 Google Code,你可以使用很多 Subversion 客户端匿名 check out 最新的开发进展。这个版本中缺乏一些外部的依赖文件,如 PEAR 和 Zend Framework,及一些必要的外部图片,因此,如果你使用这个版本安装,可能会有一定难度。

Babel v0.5-pre Monster 非官方说明 http://www.v2ex.com/topic/view/7856.html

famfamfam: icons 文件夹中所有的图片解压缩至 htdocs/img/icons/ 文件夹下。

Zend Framework:Library 文件夹解压缩至 libs/zf/ 下,然后更名为 0.9.2。

PEAR:推荐直接下载 Babel R500 的源码,将 libs 文件夹中 pear 文件夹覆盖 libs/ 下的同名文件夹。这是一个比较快捷的方法,你也可以自行获取最新版本的 PEAR 并将其中的文件复制到 libs/pear/ 目录下。

新版本的 Babel 减低了 windows 服务器下安装的难度,从 apache 文件中增加了一个 win32 的示例配置文件以及 htdocs/core/ 下增加了一个 Settings.win32.php 文件,不难看出这点。该注意的是,使用前请按照需要把 Settings.unix.php 或者 Settings.win32.php 更名为 Settings.php。

主要文件夹说明 apache 存在用作示例的 apache 配置文件,其中 rewrite.conf 以及 mobile.conf 是 Babel 所使用到的 Rewrite 规则。

cache 该文件夹用于存在 Babel 运行时产生的缓存文件,使用 Babel 前请确保该文件夹以及里面的所有文件夹设置了正确的权限,如在 unix/linux 下,设置权限为 777 即可。

cron 其中,core 文件夹下的 Settings.php 文件请根据实际修改。这里的文件用于在 cron 中设置定时运行(例如计算利息)。

docs 仅有一个 COPYING 文件。Babel 是基于 GNU V2 进行共享的。

fonts 制作验证码图片时需要用到的字体文件。

geo Babel GEO 数据库。采用 xml 文件存放,地区隶属采用文件夹的方式来进行组织。

htdocs 最重要的文件夹,Babel 的核心引擎在此。其文件结构稍后再述。

lang 为 Babel 多语言化而建立的文件夹,目前看来还没有完成。

libs 存放 Zend Framework、PEAR、Smarty 等库的地方。

res 勿动。存放的文件部分将在生成页面过程中使用。

sql 用于导入 mysql 数据库的文件。其中包括:R250 升级到 R500 的升级脚本,安装 Babel 时需要导入 original.mysql.sql 或者 planescape.mysql.sql 任意一个文件(可选),falcon.sql 以及 innodb.sql 用于转换数据库类型。

src 对于研究 Babel 大有帮助的东西!共有 6 个不同的 PHP 编译配置文件。其中有两个文件是用于编译 PHP 5.2 的配置文件。

tmp 以及 tplc 文件夹在安装 Babel 前也需要确保可以进行正常读写。

htdocs 文件夹中的内容。

404/ 存放 404 页面。估计可以通过放入足够数量的页面来进行不同的 404 页面循环。

cts/ 存放 Google 的广告代码。忽略吧。

css/ 存放 Babel 使用到的 css 文件。

errors/ 存放产生错误时响应的页面。现在有 403(Forbidden) 以及 Server Uavailable 的页面。

img/ Babel 使用到的图片。其中 c, p, n, s 四个文件夹要确保设置了正确的读写权限。

inc/ 存放的 check_login.php 是从 babel.php 分化出来的。(推测,未验证。)

js/ 存放 Babel 的 JavaScript 脚本。

sandbox/ phpinfo.php。在安装前,建议打开这个页面检查你的 PHP 设置。

xslt/ 存放了一个 xslt 样式表,用于 RSS 输出。

robots.txt robots 协议,好的机器人都会遵守这个文本中的规则。

info.txt info.txt是alexa确认站点信息的文件

settings.php中的三处v2ex.com字样都要改成自己的域名,否则不能登录

管理通过 InstallCore.php 实现。这个文件的操作手感类似古旧的批处理机,嘿嘿。用完之后记得从服务器上把 InstallCore.php 删除。

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 233472 bytes) in /www/babel/libs/pear/Crypt/Blowfish/DefaultKey.php on line 315

设置 php.ini 中的 memory_limit = 16M 可以解决。 
ubuntu 使用新立得安装的 PHP 5,其 php.ini 位置是:/etc/php5/apache2/php.ini

ING 将会是未来 V2EX 中增长最快的部分。因此,一个用起来感觉舒服的 archive 页面非常有必要。

如: http://www.v2ex.com/ing/livid
分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱