代码评审工具Phabricator安装和部署

来源:互联网 发布:编程器diy 编辑:程序博客网 时间:2024/06/07 20:21


1     安装

1.1                    安装要求

Phabricator是一个LAMP应用套件,因此最基本的要求就是LAMP环境:

•     Linux:Linux的不同发行版及变种是必需的。MacOS X是一个可接受的Linux变种,Windows不是。Phabricator不能安装在Windows系统上。在Mac OS X,Amazon Linux,Ubuntu,RHEL和CentOS上运行的Phabricator有活跃的贡献者;如果你运行在其他的Linux发行版上,请发送补丁或 投诉。

•     Apache(或nginx,或lighttpd):需要Apache 2.2.7以上版本。

•     MySQL:MySQL必需

•     PHP:需要PHP5.2以上版本

1.2                    安装必须的组件

•     git(在包管理系统中通常叫作git)

•     Apache(通常叫作httpd或apache2)(或nginx)

•     MySQL服务器(通常叫作mysqld或mysql-server)

•     PHP(通常叫作php)

•     必需的PHP扩展:mbstring,iconv, mysql (或 mysqli),curl, pcntl (或者 "php-mysql"或"php5-mysql")

•     可选的PHP扩展:gd, apc (安装该扩展如果有困惑,请看下面的APC安装说明), xhprof (下面有说明,仅在你对Phabricator做二次开发时需要)

1.3                    安装步骤(中职这边的安装步骤)

1、找一个干净的linux虚拟机系统(ubuntu14),也就是只装了操作系统,别的都还没安装

2、执行wget http://www.phabricator.com/rsrc/install/install_ubuntu.sh

这里还要注意的是在安装mysql时,会有几次让你输入root密码的提示。这里推荐将密码设置为空,以方便后面的使用

2     配置

2.1                    配置Web服务器:apache

①     修改/etc/apache2/apache2.conf文件:

②     修改/etc/apache2/ports.conf

③     在/etc/apache2/sites-available/文件夹中添加文件phabircator.conf

④     修改配置后重启apache:

a2dissite 000-default

a2ensite phabricator

/etc/init.d/apache2 restart

2.2                    Mysql配置

①     运行命令:

cd/home/phabricator

./bin/storageupgrade --force

2.3                    验收phabricator

配置完mysql后,登录phabricator对应的地址https://IP(https://192.168.205.170),看是否能正常工作

进入phabricator的主页面,在浏览器上部会出现如下图显示

 

 

点击“you have 9unresolved setup issues..”进入issue页面(具体有几个issue可能不确定)。可以看到issue如下图所示。

然后一一解决他们。

2.3.1   No Authentication Providers Configured(登陆issue)

这是比较重要的问题,不解决的话无法正常使用phabricator

点击进入issue页面 → 点击“using the "Auth"application” →点击"Add AuthenticationProvider",可以看到如下页面。

 

选择一种登陆或身份验证方式。这里我们选择“用户名/密码”的方式。确认添加后进入下一页,将所有选项都进行勾选(默认),也可以是根据需要进行设置。这里有一个最短密码长度的设置account.minimum-password-length,可以在之后进行设置。当再次确认后,登陆方式就被确认应用了。再次刷新页面,这个issue就被修复了。

 

如果登录后未修改该问题,那管理员就登不上系统,输入命令:

./bin/auth recover 管理员(zzh)

2.3.2   MySQL STRICT_ALL_TABLES Mode Not Set(mysql表格模式设定)

点击进入issue页面 就会出现下图所示的内容。

这个issue的解决办法:

在/etc/mysql/my.cnf中的 [mysqld]字段下面即可,类似这样:

[mysqld]
#
# * Basic Settings
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp  
lc-messages-dir = /usr/share/mysql
sql-mode=STRICT_ALL_TABLES
skip-external-locking
….

然后使用 /etc/init.d/mysql restart 重新启动mysql,使刚才的修改

2.3.3   Server Timezone Not Configured(设置服务器的时区)

时区的配置是很重要的。php默认显示的时间都是格林威治标准时间,和北京时间差了正好8个小时。点击进入issue页面,会出现如下图的显示:

如图中说的,这里需要配置两个地方。

第一个地方:

修改/etc/php5/apache2/php.ini配置文件,在[date]字段后面找到被注释掉的“;date.timezone = ”,将注释打开。

但是填什么这是个问题。这里我们就要看一下页面中给出的“PHP Documentation”了。

打开“PHP Documentation”页面,找到“date.timezone”字符,点击进入对应页面。

随后打开的页面支持“简体中文”显示,

如果英文不太好的同学就可以在这里找“所支持的时区列表”

如果英文没问题的同学直接找“List of Supported Timezones”

 

两个连接其实是一个,点击进入后,在页面的上部就有对应支持区域的连接,这里是“七大洲”+“太平洋地区”+“大西洋地区”+“其他”组成的。我们需要按照自己服务器所在地域来对时区进行设置。

 

我们这里选择Asia(亚洲),页面跳转后,可以看到一些知名城市的名字。这些城市里面,中国的城市有:(按页面中的出现顺序)

Asia/Chongqing (重庆)

Asia/Harbin (哈尔滨)

Asia/Hong_Kong (香港)

Asia/Macao (澳门)

Asia/Shanghai (上海)

Asia/Taipei (台北)

Asia/Urumqi (乌鲁木齐)

所以,配置文件中写成date.timezone= Asia/Shanghai 即可。大家也可以根据自己的实际情况,对时区进行配置。

note1:网络上说是设置成“PRC”(中华人民共和国)也没有问题,不过在文档中,我们没有看到。保险起见,我们使用了Asia/Shanghai

note2:很奇怪,文档里面没有北京

第二个地方:

再就是对phabricator的时区进行设置,点击“Edit phabricator.timezone”进入对应页面,在“Value”栏中输入“Asia/Shanghai”。然后保存设置即可。

2.3.4   Upload Limit Not Yet Configured(配置上载文件大小)

这个在后期的管理以及对数据的备份上是比较重要的。

点击issue进入对应页面:

之后点击“Edit storage.upload-size-limit”,在“Value”栏中填写你认为适当的大小,例如下图所示:

大家可以根据自己的需要进行配置。配置完成后,保存即可。

2.3.5   Missing Repository Local Path(配置本地库)

这个库不是用户的库,是Phabricator存储一些必要依赖文件的库。

点击issue,进入对应页面,会出现如下图所示的内容:

这里是Phabricator的默认地址,如果/var/repo/这个地址已经被其他的软件使用或者你想把他放到别的地方,可以点击“Editrepository.default-local-path”对其进行地址配置。

因为我们使用的是一个刚装好的系统,所以不存在/var/repo/这个目录,也不存在被占用的情况。我们就直接去创建它,然后刷新页面,这个issue也被修复了。

2.3.6   Phabricator Daemons Are Not Running(开启守护线程)

守护线程的开启对于Phabricator,意味着可以启动后台程序。而且在运行Phabricator,也需要开启该守护进程

在phabricator安装目录下的bin目录下执行phabricator/bin/ # ./phd start 后,出现一下提示代表守护线程已经被开启。

 

Preparing to launch daemons.

NOTE: Logs will appear in'/var/tmp/phd/log/daemons.log'.

 

Launching daemon "PhabricatorRepositoryPullLocalDaemon".

Launching daemon"PhabricatorGarbageCollectorDaemon".

Launching daemon"PhabricatorTaskmasterDaemon".

Launching daemon"PhabricatorTaskmasterDaemon".

Launching daemon"PhabricatorTaskmasterDaemon".

Launching daemon "PhabricatorTaskmasterDaemon".

Done

 

刷新页面后,这个issue也就被修复了。

2.4                    创建用户

输入命令:phabricator/ $./bin/accountadmin

phabricator/$ ./bin/accountadmin
Enter a username to create a new account or edit an existing account.
    
Enter a username: test
There is no existing user account 'test'.
    Do you want to create a new 'test' account? [Y/n] Y
    Enter user real name: wang
    Enter user email address: wang@multicorewareinc.com
    Enter a password for this user [blank to leave unchanged]: 
    Should this user be a system agent? [y/N] N
    Should this user be an administrator? [y/N] N
ACCOUNT SUMMARY
   OLD VALUE                        NEW VALUE                     
    Username                          test                          
    Real Name                         wang                          
    Email                                    wang@multicorewareinc.com     
    Password                            Updated                       
System Agent   N                                N                             
    Admin   N                                N                             
    Save these changes? [Y/n] Y
Saved changes.

2.5                    创建库Repositories

①     在创建之前,一、确保守护进程有开;二、确保服务器上svn有安装

②     点击菜单“Diffusion”:

③     在Diffusion模块下点击右上角的“New Repository”按钮:

④     在Create or Import Repository 页面中选择第二个

⑤     选择Repository Type

⑥     输入自定义的库名称

⑦     设置Repository  Root

Repository Root不一定是svn路径的全名,可以使用svn info去获取

⑧     添加svn账号密码

⑨     

⑩     

⑪     修改Subversion的UUID和Import Only

UUID从svn info获取

最后,点击Activate Repository就可以了

 

2.6                    创建项目Projects

①     点击菜单Projects

②     点击Projects页面中右上角的“Create Project”按钮

③     创建项目

保存完后就创建成功了。

2.7                    创建任务Task

①     点击菜单Maniphest

②     点击页面右上角的“Create Task”

③     输入任务详情

点击Create Task,任务就创建好了

 

0 0