折腾StatusNet(原laconica),搭建个人微博平台

自从开始嘀咕,就喜欢上了微博,可某市发生了那点事后,国内微博集体“维护”了,没使用Twitter,就考虑到早晚会被墙在外面,觉得选择国内的服务比较稳定一点,这下玩笑开大了,饭fou、做sha、嘀gu,叽wai等几个站点相继“维护”,考虑到blogger被封后,发现了WorePress这个伟大的博客软件,那微博是否有相应的软件呢?这个时候看到了月光博客的这篇文章:http://www.williamlong.info/archives/1875.html,介绍了几个流行的开源微博程序。

考虑到虚拟主机上,最方便的还是PHP+MySQL的组合,锁定StatusNet,随着了解的深入,就越来越喜欢这个平台。因为微博的特性,如果不同站点微博用户间无法相互“订阅”、“跟随”,其意义就大打折扣了,StatusNet通过支持OpenMicroBlogging来实现不同 StatusNet-base 站点用户的相互“订阅”,是一个开放平台,

目前采用 StatusNet 最大的微博站点是http://identi.ca/ ,在http://status.net/wiki/ListOfServers列出了采用StatusNet搭建微博平台的网站列表.

现在开始我的折腾历程,从官网http://status.net下载最新的软件后,上传到空间statusnet目录下,运行http://example.net/statusnet/install.php ,即可完成安装(需要先为StatusNet建立好数据库),输入数据库信息和站点名等,确定后会生成一个config.php文件,不过内容较少,最好自己修改源码里的config.php.sample。

StatusNet并没有admin管理帐号和页面,所有StatusNet的配置都是通过config.php完成,可以设定是否允许用户自由注册、站点主题、xmpp信息、是否开启SMS等信息,这种方式对用户体验而言,的确不太友好,好在config.php.sample比较简明,注释清晰。

这是我在折腾时碰到的问题:

1,微博空间名字是中文,显示为乱码,原来是在配置http://example.net/statusnet/install.php 时,如果站点名输入中文,则config.php的编码为gb2312,StatusNet无法正确识别,将config.php转为UTF-8编码后,中文便能正确显示,这的确是StatusNet的一个不够“智能”的体现。

2,不同站定用户的相互订阅问题,开始没太明白 “Profile URL”,其实就是StatusNet每个用户的主页,比如“http://identi.ca/getea ”,在一个StatusNet站点上点击“Subscribe”,“User nickname”为想订阅对象的用户名,比如想订阅http://identi.ca/getea,其用户名为getea,“Profile URL”就为自己StatusNet站点的个人主页,比如“http://example.net/statusnet/goday ”,哎,开始自己弄混了,以为全是自己StatusNet站点的信息,也是因为没认真看说明和帮助文档。

下面是还未解决的问题:

1,无法用我站点上用户的Profile URL去订阅其他StatusNet站点的用户,提示信息为“Couldn’t get a request token.”,折腾了半天config.php,也未能解决,不知道是不是虚拟主机不支持某些PHP函数,找个时间再好好折腾一下。

2,不同站点间的用户无法通过 “@”发送消息,不清楚是我设置的问题,还是目前本来就不支持。

下面再谈谈StatusNet的可扩展性:

StatusNet采用了类Twitter的 API,这使得StatusNet获得了丰富的第三方软件支持,在官方wiki有详细的描述,包括PC端软件、手机软件、SMS、IM、E-Mail等,还可以把消息同步到Twitter(在配置文件config.php中添加““$config[‘twitter’][‘enabled’] = true;”配置项,用户登录StatusNet后,可以在“Connect”下看到“Twitter”标签,即可绑定Twitter帐号)。http://status.net/wiki/Apps列举了兼容StatusNet的第三方软件。

StatusNet API路径与twhirlEchofon(原TwitterFox)配置为StatusNet客服端

  • StatusNet的API路径实际是你安装目录再加”api”目录路径,比如这里安装在“http://example.net/statusnet”下面,你的API路径就是“http://example.net/statusnet/api”。
  • twhirl配置,选择“laconi.ca”账户类型,输入“账户名@StatusNet安装路径”,比如“test@example.net/statusnet”,记住,这里不能加api”路径,twhirl会自动加上”api“路径。
  • Echofon配置,在Echofon插件安装目录下找到“nsTwitterFox.js”文件,如果不知道Firefox的插件安装路径,就直接搜 索“nsTwitterFox.js”这个文件,打开这个文件,将“TWITTER_API_URL”这个变量的值换成你的API地址,比如这里 的“http://example.net/statusnet/api/”,需要注意的时,这里需要加”api“目录路径,而且要带上“/”,保存,重启Firefox后,就可以使用你的StatusNet账号登陆了。

我使用了基于AIR跨平台的 twhirl l来测试,安装前需要先安装AIR,打开后的界面如下图所示:

选择laconi.ca类型,后面输入 “用户名@StatusNet站点地址 ”,比如“ getea@identi.ca ”,点击“+”后添加到上面的列表,选中刚才添加的帐号,-> “Connet”,输入密码,就登录到下面的窗口了:

在这个控制窗口可以完成发送消息,收藏消息等操作,支持快捷键,很容易使用。

更多StatusNet详细信息请访问http://status.net/http://status.net/wiki获取。

Update: 2010.3.5

StatusNet刚刚发布了0.9.0正式版,具体说明见:StatusNet 0.9.0 Released,部分改善如下:

  • 基于Web的管理页面。
  • 在0.8.x版本中的部分核心功能,现在以插件的形式集成,比如OpenID、Twitter同步等。
  • 集成了对移动设备提供友好界面的插件。
  • 其他等等详见上面的发布说明。

Update:StatusNet现在已转为GNU social项目开发,原来的链接和指导都已失效。

OpenMicroBlogging

折腾StatusNet(原laconica),搭建个人微博平台》有61个想法

  1. 古城

    请问,虚拟主机上安装的话,将如何配置email,以实现用email发布消息呢?
    我用的虚拟主机是hostmonster,是不是不支持啊?

  2. 飘风 文章作者

    在配置文件config.php里面:
    // Disable post-by-email
    // $config[’emailpost’][‘enabled’] = false;
    应该需要打开,在 http://status.net/wiki/Email 也有一些描述,具体操作我没有去尝试,你可以试验一下,再分享一下你的经验!

  3. 飘风 文章作者

    @efuner
    比较简单的方法:
    1,为StatusNet建立数据库,创建方法需要参照你主机商的说明,虚拟主机的后台控制面板都很容易完成。
    2,将StatusNet软件上传到你的空间,假设放在网站根目录下的statusnet文件夹,当然需要将压缩包解压开,至于上传后解压还是解压后上传就看你自己的喜好了。
    3,将statusnet安装目录下的htaccess.sample文件重命名为 .htaccess ,这一步主要是使访问StatusNet网站内容时URL看起来更加“美观”一点。
    4,在浏览器下输入http://example.com/statusnet/install.php,输入创建的数据库信息,包括数据库地址,用户名信息等,此时会在statusnet软件根目录自动生成一个config.php。
    5,这样就可以通过http://example.com/statusnet访问你的网站,创建用户,开始使用你自己的微博网站,但是上面默认生成的config.php配置项不过丰富,最好手动修改config.php.sample。详情参照http://status.net/wiki/Installation和StatusNet安装包内的README文件。

  4. 记事狗微博

    更适合国人使用的“记事狗”微博客系统即将推出,功能更强大、传播能力更强、使用更方便!
    届时微博客网站将遍地开花,敬请关注http://www.jishigou.com

  5. 飘风 文章作者

    能多一个选择的确是好事,相信会更符合国人使用习惯,但刚访问官网看了下,似乎还在紧张开发测试中,也没有找到介绍文档,不知道该软件的开放性和API易用性,StatusNet的流行与其采用了类Twtitter的API不无关系,获得了大量的第三方软件支持,不同StatusNet站点间可以相互订阅,希望“记事狗”能有所超越吧!

  6. 飘风 文章作者

    这个我具体也说不清楚,不过我猜测应该是URL配置的问题,主机不支持.htaccess配置?在config.php配置文件里面添加“$config[‘site’][‘fancy’] = false;”,不包括引号,false不行再换成true试试看。

  7. YUJEU

    @飘风
    试了你说的这些措施,都做过,但是仍然无法成功。
    配置如下
    $config[‘site’][‘name’] = ‘yujeu’;
    $config[‘site’][‘server’] = ‘yujeu.cn’;
    $config[‘site’][‘path’] = ”;
    $config[‘site’][‘fancy’] = ‘false’;
    $config[‘site’][‘theme’] = ‘default’;
    难道是因为godaddy的虚拟主机问题?

  8. lzweekly

    飘风,
    你好!
    你的博客我刚刚看到,其实还有一个简单的方案:假设你有dreamhost的空间,有一个人已经做了一个宏命令,可以非常简单的完成所有的操作。我在4月就试用了。(说明一下,我不是dh的托)

    此外,我请教两个问题:
    1.如何用api,使得建立的网站能够用现有的各种软件(例如twhirl,twitterfox,理论上他们都支持的,但实际上,我没有试用成功过,你有试过吗?

    2.如果应用group(群)呢?我一直没有成果过。

    希望你看到后能够通过email和我联系。
    祝好!

    lzweekly#gmail.com

  9. 飘风 文章作者

    @YUJEU
    实在抱歉,由于我无法测试出你出现的问题,不知道改怎么解决,godaddy的Linux主机应该是没有问题的,可能还是某些配置的问题,由于最近比较忙,没有时间来折腾这个了,打算过段时间再来深入配置一下,如果你后续解决了,也请告诉我,共同学习!

  10. 飘风 文章作者

    @lzweekly
    针对所说的两个问题:

    1. StatusNet的API路径实际是你安装目录再加”api”目录路径,比如安装在”http://example.net/statusnet“下面,你的API实际是”http://example.net/statusnet/api“,配置twhirl时,选择”laconi.ca“,输入”账户名@StatusNet安装路径“,比如”test@example.net/statusnet“,记住,这里不能加”api“路径,twhirl会自动加上”api“路径;twitterfox的配置,在twitterfox插件安装目录下找到”nsTwitterFox.js“文件,如果不知道Firefox的插件安装路径,就直接搜索”nsTwitterFox.js”这个文件,打开这个文件,将”TWITTER_API_URL“这个变量的值换成你的API地址,比如这里的”http://example.net/statusnet/api/“,需要注意的时,这里需要加”api“目录路径,而且要带上”/“,保存,重启Firefox后,就可以使用你的StatusNet账号登陆了。

    2. 群组我没有使用过,暂时也没时间折腾,所以无法给参考意见了。

    希望以上信息对你有所帮助。

  11. ppaaee

    我做了一个网站,我自己管理,我怎么变成管理员呢? 我怎么删贴,封会员?
    还有就是如何改网站的外观?

  12. 澡王

    我修改了 配置文件后 报错是为什么呢?
    Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\statusnet\config.php:1) in C:\xampp\htdocs\statusnet\lib\action.php on line 884

    Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\statusnet\config.php:1) in C:\xampp\htdocs\statusnet\actions\public.php on line 117

    Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\statusnet\config.php:1) in C:\xampp\htdocs\statusnet\lib\htmloutputter.php on line 109

  13. 飘风 文章作者

    @ppaaee
    首先可以确定的告诉你,StatusNet暂时没有管理员和管理配置页面,官方WIKI称正在开发中。网站外观修改,设定配置文件config.php的“theme”属性值就可以了。

  14. 飘风 文章作者

    @澡王
    首先建议在Linux下安装StatusNet,会有更好的稳定性。
    现在的报错只是告警信息,不过不知道你到底修改了什么配置呢?

  15. 飘风 文章作者

    @aks
    twhirl的配置实际就是你的用户名加StatusNet安装路径,比如你的用户名是abc,用http://example.net/statusnet来访问你所安装的StatusNet首页,则在twhirl中选择“ laconi.ca”类型,输入“abc@example.net/statusnet”,点击“+”,然后”Connect”,输入你的密码就可以了,如果还是不行,请留言说明一下你的配置情况。

  16. 飘风 文章作者

    @我也要架微博
    你遇到的问题是安装所使用的服务器PHP版本太低了,如“Require PHP version 5.2.3 or greater.”所描述,StatusNet需要的PHP版本最低为5.2.3,你需要升级服务器的PHP才能顺利安装,如果你使用的是虚拟主机,则只能联系客服支持了。

  17. 飘风 文章作者

    你是在本地安装还是在服务器上安装?Windows还是Linux?如果方便透露你的安装地址的话,我可以连上去看看,我也实在不懂你遇到的是啥问题。

  18. 飘风 文章作者

    @aks
    我看你两个网站使用的都是0.8.1版本的StatusNet,你用最新的0.8.2再试下,可能是某个已经修复的官方BUG。

  19. 飘风 文章作者

    @aks
    呵呵,看你的“折腾”经历已经不简单了,默认config.php是不需要配置api的,只需要最简单的数据库和站点信息即可,目前StatusNet已经发布了0.9的RC版本,可以尝试下。
    关于配置文件,你在配置文件里面只输入英文信息,替换掉中文以及所有ASCII不能表示的字符,这样文件的UTF-8和ANSI(GB2312)编码就完全相同了,如果还是存在问题,就可以排除编码的原因了。
    我建议你更换一个主机环境尝试一下,可能是你当前服务器缺少某些组件,StatusNet对服务器的要求的确比较“苛刻”。
    唉,我最近也是比较忙,没时间来折腾这个了,打算有时间学习,呵呵,如果最终“折腾”成功了,别忘了分享一下你的经历哦!

  20. wmtt

    我的配置完成后,无法显示中文界面,在配置文件里面也加载了
    $config[‘site’][‘language’] = ‘zh_CN’;
    但就是不能显示,搂住是否能给个提示

  21. 飘风 文章作者

    用你的用户名登录后,看看 Account -> Profile -> Language 的设置是否正确。

  22. JustDoNow

    你好啊,今天刚装上statusnet。
    我是做java的,打算拿java做微博,可是开源的java微博项目基本没有。所以只能看看php的开源微博是如何做的,所以对php不懂…找了篇文章http://www.tianya.cn/publicforum/content/itinfo/105837/1/0/1.shtml安装好了xampp和statusnet,并且建了数据库,http://localhost/statusnet/可以访问页面了,但是我注册用户的时候出现错误,错误信息我单发。好像是连接数据库有问题,但是建表什么的都可以啊。如果您有时间帮忙看一下,谢谢啦。发邮件也可以,邮箱可用。

  23. JustDoNow

    错误信息:Database error
    The database for statusnet isn’t responding correctly, so the site won’t work properly. The site admins probably know about the problem, but you can contact them at postmaster@localhost to make sure. Otherwise, wait a few minutes and try again.

  24. 飘风 文章作者

    @JustDoNow
    StatusNet在Windows运行不太稳定,而且其本身需要的依赖也比较多,最好在Linux下安装运行,这个错误信息只简单描述了数据库连接出错,你可以选择重新新建一个数据库来排除某些偶然性的故障,在
    http://dengpeng.spaces.live.com/blog/cns!2CC4700381D476A!1958.entry
    也介绍了Windows下的安装,你可以对比参考一下,呵呵,由于没有Windows下的折腾经验,帮不上啥忙了!

  25. 飘风 文章作者

    呵呵,你太客气了,我也算是初学者,大家一起学习进步吧!

  26. 飘风 文章作者

    @andy
    StatusNet的要求的确比较苛刻,国内虚拟主机服务商一般也不会因为部分客服的要求,而来增加服务器的功能的。我用的是国外的主机,关键不喜欢国内的备案等管制,我觉得这些要求的目的似乎不是为了杜绝互联网的垃圾~~~,MT的虚拟主机在业内名誉应该是相当的高吧,非常的稳定,可惜就是价格有点贵,不过一个账号开几个网站是完全没问题的;
    我也算是一名初学者,目前还在摸索中,很多也是“尝试性”的去配置,有机会共同探讨吧,由于目前的时间不是很充沛,所以现在折腾的不多;
    和Twitter的绑定以及API的使用见正文中API的描述,API路径实际是通过Rewrite功能实现的,对于你配置出现的问题我也不清楚具体的原因(数据库的问题是不是没有给当前用户所有权限?),可能还是某些组件缺失导致的吧,有条件你可以本地用XAMPP调试(最好也是在Linux下),找出问题。

  27. snake

    求教。我成功安装了。为什么用google浏览器访问就上面显示一段
    This page contains the following errors:
    error on line 198 at column 12: Opening and ending tag mismatch: html line 0 and noscript
    Below is a rendering of the page up to the first error.
    然后下面正常显示页面呢???

    然后用IE7浏览就不会报错呢?
    我怀疑是tidy的问题,但不知道怎么解决,望指教!

  28. 飘风 文章作者

    @snake
    你用的什么版本的StatusNet?有用过Firefox或者Opera的浏览器测试吗?我的StatusNet 0.8.1在Linux下的Chrome访问是正常的,看描述似乎应该是javascript的兼容性报错,具体对照你的文件参考一下,应该会有结果。

  29. snake

    @飘风

    我用的是0.8.2 ,又用Firefox测试了下,确实有问题,而且不能显示页面
    了。错误信息意思跟Chrome一样,
    XML Parsing Error: mismatched tag. Expected: .
    Line Number 208, Column 3:
    –^ tag不匹配?只能IE访问的话,很不爽.
    不知道跟我的空间强制插入广告有没有关系,
    另一种思路是关闭tidy模块的检测功能!
    貌似0.8.2开始多了tidy这个东西,不知道怎么去了…
    唉,继续折腾………

  30. 飘风 文章作者

    @snake
    这个肯定是你空间广告的原因了,StatusNet本身不会有这个问题,可能插入的广告脚本只能支持IE,找一个没有广告的免费空间再尝试一下吧!

  31. snake

    确认了广告问题,换了个空间,问题又来了,其他都正常,但是我发现发送消息后是不能直接显示出来的,要按刷新才出现。。。。是不是哪里没设置呢?
    我看别人的是动态显示的。

  32. 飘风 文章作者

    @snake
    是不需要设置的,你是在Windows还是在Linux主机上安装?而且最好全新安装,如果不能正常使用,一般都是缺少某些组件,而且在Linux下的稳定性相比在Windows下要好些。

评论已关闭。