StatusNet基本安装
由于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、下载其它扩展项目代码
- 3.1、在StatusNet程序目录创建“ext”文件夹;
- 3.2、下载XMPHP,并解压到ext目录;
- 3.3、下载OAuth.php,保存到ext目录;
- 3.4、下载PHP OpenID Library,解压Auth目录到ext目录;
- 3.5、下载PHP Mark down,解压markdown.php到Ext目录;
上面工作做好后,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');