Ubuntu下安装配置Phabricator,参考官方文档。

前提条件是安装lamp或是lnmp

有安装脚本如下:

以上如果安装顺利,需要检查php安装

<?php

phpinfo();

?>

主要检查php.ini 文件所在目录,是否安装pcntl扩展。

cd somewhere/ # pick some install directory
somewhere/ $ git clone git://github.com/facebook/libphutil.git
somewhere/ $ git clone git://github.com/facebook/arcanist.git
somewhere/ $ git clone git://github.com/facebook/phabricator.git

以上三个目录要在一个目录内

Updating Phabricator

更新脚本如下,也可手动更新。

http://www.phabricator.com/rsrc/install/update_phabricator.sh

配置apache

需要修改的片段如下:

DocumentRoot /mnt/phabricator/webroot/


<Directory /mnt/phabricator/webroot/>

DirectoryIndex index.php

OptionsFollowSymLinks

AllowOverrideNone

Requireall granted

</Directory>


RewriteEngineon

RewriteRule ^/rsrc/(.*)     -                       [L,QSA]

RewriteRule ^/favicon.ico   -                       [L,QSA]

RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]


导入数据库


 ./bin/storage upgrade --user <user> --password <password>


启动deamon,重启apache2

./bin/phd start
service apache2 restart


一切顺利的话就可以访问页面了


如果是第一次安装的话不会一帆风顺的,通常会出现各种报错:

错误一:启动deamon会报错pcntl_fork() has been disabled for security reasons 或不可用,

主要检查 pcntl扩展是否安装启用,详见我的另一篇博客,以为要检查php.ini文件disable_function设置 ,是否禁用的某些pcntl函数.

通过命令 find / -name 'php.ini ' 文件 ,可能有多个

deamon使用php-cli命令行的php库,已可能有 php.ini ,也需要修改


./bin/storage upgrade --user <user> --password <password>

错误二:数据库连接不上 ,提示使用密码  no  password

还会提示你通过命令行修改

命令行如下形式

bin/config set

执行完命令行后重启apache和deamon


错误三:

Failed to load class or interface 'PhutilRemarkupEngineRemarkupHorizontalRuleBlockRule': the class or interface 'PhutilRemarkupEngineRemarkupHorizontalRuleBlockRule' is not defined in the library map for any loaded phutil library. If this symbol was recently added or moved, your library map may be out of date. You can rebuild the map by running 'arc liberate'. For more information, see: http://www.phabricator.com/docs/phabricator/article/libphutil_Libraries_User_Guide.html


原因:更新phabricator时没有更新libphutil库,某个库丢失了,doc里的方法太复杂。
解决:进去libphutil文件夹下,执行git pull,重启daemons。重新打开页面提交,ok。
附:
重启daemons代码: phabricator$  ./bin/phd restart  
更改phabricator配置后需要重启
libphutil和phabricator位于同一层目录



libphutil库是phabricator要使用的基础库,libphutil和phabricator位于同一层目录


解决了这些问题就可以看到注册界面,注册账号进入系统。