基于PHP语言编写的开源微博软件StatusNet详解

读者通过此文可以了解到 StatusNet 的安装、部署知识,而 API 及相关 demo 开发的介绍可以让开发人员学习到怎样快速的制作企业或个人需要的微博应用程序。

什么是微博(Microblogging)

几年前,所有人还在兴致勃勃的谈论博客的流行和发展趋势,众多门户网站、科技公司及开发人员也都先后进入到这个领域,传统报刊杂志和专栏作家们的命运一夜间变得岌岌可危,但谁也没有想到的是短短几年间那些长篇大论、排版华丽的博客文章被一种只有 140 字节限制,类似于短消息形式的信息发布方式所取代,它的名字叫做"微博(Microblogging)"。我们在这里不更多的去探究微博的起源和发展,多数人只要知道微博可以让我们更加便捷的通过邮件、即时通讯工具甚至短信将所见所闻所感与他人分享即可。在微博世界,每个人都是信息的制造者,每个人也都是信息的消费者与传播者,有人打趣的说"140 字的限制将平民和莎士比亚拉回到了同一起跑线上"。

一种新的企业沟通工具

现代的企业和各种组织大多数时间都使用 Email、IM 或专业的 OA 系统进行协同办公与信息交流,但我们也发现由于传统工具局限性所带来的沟通效率低下的问题。你有没有遇到发出一封邮件却迟迟得不到答复的情况?有没有在几十万员工的企业中却找不到与自己兴趣相投的人?有没有因为出差而无法及时报告状态的时候?有没有希望在组织内部调换岗位却发愁找不到适合自己的职位? ...... 而微博信息发布的快速便捷、信息共享的多对多关系、基于标签或话题的信息粘合性以及微博生态环境的社会性都会为企业人员之间的沟通带来提升与帮助,随着加入微博系统的人数与日俱增,微博也将成为企业信息社会化软件的核心构件之一。

开源微博系统 StatusNet

由于微博带来的信息共享方式的种种变革,更多的个人及企业也都在试图构件自己的微博系统,各种 Open Source 的微博服务软件也随之孕育而生,基于 PHP 语言编写的 StatusNet 便是其中之一,很多国外知名微博网站也都是使用 StatusNet 架设。下面是 StatusNet 官方网站列举出的一些关键功能:

共享文件 自定义小组 追踪流行话题 添加自定义组件和扩展 自定义页面风格 连接其他社会化网络 桌面或移动设备的多种访问方式

StatusNet 的安装及部署

下载安装源

用户可以选择注册为 StateNet 会员,直接享受部署在其云计算平台上的微博服务。此外也可以从其官方网站下载源文件,将系统部署在自己的网络上,最新的软件版本为 0.9.6 "Man on the Moon"。

图 1. StatusNet 首页

安装前的准备工作

必要的软件包

PHP 5.2.3+ MySQL 5.x Web Server,
例如 Apache 2.2.x(安装并开启 mod_rewrite 扩展)

PHP 安装必须包含的扩展

Curl - 用 HTTP 方式传输文件 XMLWriter - 格式化 XML 和 HTML 输出 MySQL - 访问数据库 GD - 压缩图片 Mbstring - 处理 Unicode (UTF-8) 编码字符 .

针对一些额外功能的扩展

Memcache - memcached server 客户端,可以帮助缓存数据库信息以减少频繁的数据库操作带来的性能问题 Mailparse - 解析来自于邮件的服务请求
Sphinx Search - sphinx server 客户端,针对 MySQL 或 Postgresql 的全文检索 Bcmath 或 gmp - 针对 Salmon signatures (OStatus 协议的一部分 ) Gettext - 针对多语言环境

StatusNet 所需的其他外部库文件都放置在安装源的 extlib 目录下,用户不需要另外的下载和安装,只需要在今后根据新版本的要求升级这些库文件即可。而 StatusNet 也宣称其设计目标是让最基本的功能能够工作在绝大多数主机服务商的平台上。有关 Jabber/GTalk 或者 Email/SMS 关联配置的信息将不在本文中进行具体讲解。

时间: 2024-09-20 07:54:02

基于PHP语言编写的开源微博软件StatusNet详解的相关文章

榨干新浪微博所有免费资源 微博实用工具详解(下)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 第四部分:内容分析 微博内容的分析,可以从内容的全面分析和单条内容的分析着手.这里说到的三个工具都是可以针对非授权微博进行分析,具有指导性意义."微博风云" 这个应用能提供的数据比较全面,有活跃度排名.影响力排名.微博等级等大指标.它们包含了平均每天微博数,本周微博数.微博原创率.活跃粉丝率.认证粉丝数.平均转发和评论条数

Java语言class类用法及泛化(详解)_java

这篇文章主要介绍了Java语言class类用法及泛化(详解),大家都知道Java程序在运行过程中,对所有的对象进行类型标识,也就是RTTI.这项信息记录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建,具体内容介绍如下: 说白了就是: Class类也是类的一种,只是名字和class关键字高度相似.Java是大小写敏感的语言. Class类的对象内容是你创

基于原生ajax与封装的ajax使用方法(详解)

当我们不会写后端接口来测试ajax时,我们可以使用node环境来模拟一个后端接口. 1.模拟后端接口可参考网站整站开发小例子,在打开命令窗口并转到所在项目文件夹下在命令行中输入npm install express --save,安装express中间件. 2.把当中的app.js的内容换成 var express=require('express'); //var path=require('path'); var app=express(); //app.set('view',path.jo

App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)

  http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209805123&idx=1&sn=ced8d67c3e2cc3ca38ef722949fa21f8&3rd=MzA3MDU4NTYzMw==&scene=6#rd 主题 开源 本文根据冯磊和赵星宇在"高可用架构"微信群所做的HttpDNS智能缓存库原理整理而成,转发请注明来自微信公众号ArchNotes. 冯磊,目前主要从事手机应用平

C语言实现大整数加减运算详解_C 语言

前言     我们知道,在数学中,数值的大小是没有上限的,但是在计算机中,由于字长的限制,计算机所能表示的范围是有限的,当我们对比较小的数进行运算时,如:1234+5678,这样的数值并没有超出计算机的表示范围,所以可以运算.但是当我们在实际的应用中进行大量的数据处理时,会发现参与运算的数往往超过计算机的基本数据类型的表示范围,比如说,在天文学上,如果一个星球距离我们为100万光年,那么我们将其化简为公里,或者是米的时候,我们会发现这是一个很大的数.这样计算机将无法对其进行直接计算.     可

Yii基于数组和对象的Model查询技巧实例详解_php实例

本文实例讲述了Yii基于数组和对象的Model查询技巧.分享给大家供大家参考,具体如下: 对于一个Model Post 有如下的4中查询方法,返回对象或者对象数组. //查找满足指定条件的结果中的第一行 find the first row satisfying the specified condition $post=Post::model()->find($condition,$params); //查找具有指定主键值的那一行 find the row with the specified

C语言中改变目录的相关操作函数详解_C 语言

C语言fchdir()函数:改变当前工作目录头文件: #include <unistd.h> 定义函数: int fchdir(int fd); 函数说明:fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描述词. 返回值:执行成功则返回 0, 失败返回-1, errno 为错误代码. 范例 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <

Linux学习第一天——ssh登录和软件安装详解_Linux

操作环境: Ubuntu 16.04 in10系统,使用putty_V0.63 本身学习Linux就是想在服务器上使用的.实际情况,可能我很难直接到坐在服务器前,使用界面操作系统.事实上,界面对于服务器来说就是一个多于的内容.于是Linux的桌面就像一个程序一样,可以卸载.卸载后怎么用呢?使用shell命令.在哪里使用呢?当然是在遥远的另一方. 于是,我学习的第一个内容就是远程访问Linux系统,进行一系列操作. 远程访问方式很多,我不做孔乙己,所以随便选择一种简单点的入手. SSH(Secur

C语言 用指针作为函数返回值详解_C 语言

C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include <stdio.h> #include <string.h> char *strlong(char *str1, char *str2){ if(strlen(str1) >= strlen(str2)){ return str1; }else{ return str2; } } int main(){ cha