StatusNet 基本安装步骤

红薯 发布于 2010/08/03 22:14
阅读 3K+
收藏 8

由于StatusNet引用大量的开源项目,加上在中文环境中有点水土不服,导致StatusNet的安装过程会出现许多的不好处理问题,在此我记录下我的安装过程及碰到的问题和解决方式。

目录

 

运行环境配置

PHP 5.2.3+

  • 1、开启Curl模块,Curl最好支持HTTPS;
  • 2、开启XMLWriter模块
  • 3、开启MySQL模块
  • 4、开启GD模块
  • 5、开启mbstring模块
  • 6、开启gettext模块
  • 7、开启tidy模块

MySQL 5.x

  • 关闭MySQL Strict Mode,即在my.ini或者my.cnf里将下面这行注释掉:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Apache2.2.x

  • 开启mod_rewrite模块

准备相关开源项目代码

1、启用PHP的PEAR,具体启用方式请自己搜索解决方案

2、在PEAR中使用如下命令,下载相关源码:

pear install db
pear install validate-0.8.3
pear install mdb2
pear install mdb2#mysql
pear install db_dataobject
pear install date
pear install mail
pear install Net_SMTP
pear install Mail_Mime
pear install Mail_mimeDecode

3、下载其它扩展项目代码

上面工作做好后,ext目录结构应该是下面这样。

 H:\13.PHP\04.WORKSPACES\STATUSNET\STATUSNET-0.8.2\EXT
│ markdown.php
│ OAuth.php
├─Auth
│ │ OpenID.php
│ ├─OpenID
│ │ Association.php
│ │ AX.php
│ │ BigMath.php
│ │ Consumer.php
│ │ CryptUtil.php
│ │ DatabaseConnection.php
│ │ DiffieHellman.php
│ │ Discover.php
│ │ DumbStore.php
│ │ Extension.php
│ │ FileStore.php
│ │ HMAC.php
│ │ HMACSHA1.php
│ │ Interface.php
│ │ KVForm.php
│ │ MemcachedStore.php
│ │ Message.php
│ │ MySQLStore.php
│ │ Nonce.php
│ │ PAPE.php
│ │ Parse.php
│ │ PostgreSQLStore.php
│ │ Server.php
│ │ ServerRequest.php
│ │ SQLiteStore.php
│ │ SQLStore.php
│ │ SReg.php
│ │ TrustRoot.php
│ │ URINorm.php
│ ├─Services
│ │ └─Yadis
│ │ HTTPFetcher.php
│ │ Manager.php
│ │ Misc.php
│ │ ParanoidHTTPFetcher.php
│ │ ParseHTML.php
│ │ PlainHTTPFetcher.php
│ │ XML.php
│ │ XRDS.php
│ │ XRI.php
│ │ XRIRes.php
│ │ Yadis.php
│ └─Yadis
│ HTTPFetcher.php
│ Manager.php
│ Misc.php
│ ParanoidHTTPFetcher.php
│ ParseHTML.php
│ PlainHTTPFetcher.php
│ XML.php
│ XRDS.php
│ XRI.php
│ XRIRes.php
│ Yadis.php
├─Services
│ └─Yadis
│ HTTPFetcher.php
│ Manager.php
│ Misc.php
│ ParanoidHTTPFetcher.php
│ ParseHTML.php
│ PlainHTTPFetcher.php
│ XML.php
│ XRDS.php
│ XRI.php
│ XRIRes.php
│ Yadis.php
└─XMPPHP
BOSH.php
Exception.php
Log.php
Roster.php
XMLObj.php
XMLStream.php
XMPP.php
XMPP_Old.php

开始安装和配置

1、在服务器里配置StatusNet的目录,在浏览器中访问StatusNet目录下的install.php来安装;

2、打开StatusNet目录下生成的config.php,进行如下配置:'

  • 2.1、指定ext目录:
       $extra_path = array("H:/13.PHP/04.WorkSpaces/statusnet/statusnet-0.8.2/ext/");
set_include_path(implode(PATH_SEPARATOR, $extra_path) . PATH_SEPARATOR . get_include_path());
  • 2.2、配置Email发送账号:
       #Email info, used for SMS send. gmail example
$config['mail']['notifyfrom'] = 'test@canbeing.com';
$config['mail']['domain'] = canbeing.com';
# See http://pear.php.net/manual/en/package.mail.mail.factory.php for options
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array('host' => 'smtp.canbeing.com',
'port' => 25,
'auth' => true,
'username' => 'test',
'password' => 'test');
  • 2.3、设置mysql mdb2 ini文件目录:
       $config['db']['ini_statusnet'] = 'H:/13.PHP/04.WorkSpaces/statusnet/statusnet-0.8.2/classes/statusnet.ini';

到此为止,StatusNet基本功能已经有了,可以先注册一个用户发发牢骚。

可能碰到的问题

1、中文站点名称显示乱码,PHP报错“string is not in UTF-8”

config.php别存为“UTF-8”编码即可解决问题。

2、安装完成后,注册用户失败,mdb2报错“500 The database for a1 isn't responding correctly”:

一般原因是MySQL不正常,最常见的可能是没有关闭MySQL的Strict Mode,即在my.ini或者my.cnf里将下面这行注释掉:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

3、用户注册完成后无法登录,或者只能通过“记住登录状态”的方式才能登录进去,而且进用户面板又会提示重新登录:

StatusNet登录信息都是以Session的方式传递的,但基SessionID存放到了Cookie里, 而其程序中又使用不安全的$_REQUEST来获取客户端的SessionID,如果php.ini里的“request_order”配置没有“C” (php production配置是:request_order = "GP"),那么就读不到Cookie,那么就无法登录。

解决方案是在php.ini里设置:request_order = "GPC"

4、邮件标题乱码

发出的邮件标题乱码,这与文件编码没有关系,可能与邮件发送服务器的问题,我使用gmail发出的邮件正常,配置如下:

#Email info, used for SMS send. gmail example
$config['mail']['notifyfrom'] = 'canbeing.com@gmail.com';
$config['mail']['domain'] = 'gmail.com';
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array('host' => 'ssl://smtp.gmail.com',
'port' => 465,
'auth' => true,
'username' => 'canbeing.com@gmail.com',
'password' => 'test');
加载中
0
S
Sean.W

红薯, 谢谢你以上的讲解。你是否能讲解如何设置StatusNet的multi-site.

一下让你参考:

http://forum.status.net/discussion/comment/6297/#Comment_6297

http://status.net/wiki/Status_network

0
南瓜太郎
南瓜太郎

学习 谢谢了

0
指尖缘
指尖缘
很好, 谢谢了
0
pauli
pauli
在 php 5.4 上好多错误,开启 xdebug 可以看到,大都是非静态方法直接调用
0
s
sunsongwen
您好,我最近在研究statusnet,配置邮箱服务器接受不到邮件。麻烦你看一下
$config['mail']['notifyfrom'] = 'sunsongwen@163.com';
$config['mail']['domain'] = '163.com';
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array('host' => 'smtp.163.com',
   'port' => 25,
   'auth' => true);


谢谢
0
零陆幺柒
零陆幺柒
这个东西貌似都很久了啊,现在还能用吗?我是不是来晚了
返回顶部
顶部