我爱编程

关于Phabricator部署时候的疑难点

2018-04-02  本文已影响274人  北辰明
Phabricator的搭建

首先是关于Phabricator的搭建问题,由于我们这里对于Phabricator的目的只是CodeReview,于是我把Phabricator部署在了我们的打包机器上,我用的是Mac OSX。

关于Phabricator的基本安装使用方法可以查询这份基础的官方文档.

Phabricator是一款LAMP (Linux, Apache, MySQL, PHP) 应用,我们需要在服务器上部署上述的环境;推荐大家去看下面这篇文章,这是一篇详细安装Phabricator的教程,推荐使用XAMPP来安装上述的运行环境,这样对于小白来说会比较方便,XAMPP基本上提供了主流的操作系统版本,Windows、Linux、Solaris、Mac OS X都是支持;
基本按照上面的教程可以很顺利的安装上Phabricator;

还有就是安装的时候可能会出现端口号冲突的问题,因为我的服务器上原来装了Jekins,现在装了Phabricator,我把8080端口给了Jekins,80端口给了Phabricator。

Phabricator本身提供了付费服务,可以直接使用,缺点就是每年都要付费而且需要翻墙出去;所以自己部署是一个很好的选择;

基本上按照上面的教程可以顺利的完成安装;

启动Phabricator

按照上述的教程我们可以顺利打开Phabricator,注册完管理员账号以后,Phabricator会提示你很多的警告,基本上上面的警告很多都是需要解决的,但是一小部分可以忽略,并不影响我们的使用。

你需要选择一个或者多个登录注册方式,Phabricator支持多种方式的登录注册,包括账号密码,LDAP,第三方账号授权登录等等;由于默认情况下没有Providers,所以你需要设置一种登录注册方式,我这里只选择了Username/Password方式,你可以根据自己的要求进行配置。

需要通过bin/config set phabricator.base-uri <value>进行设置,也就是你当前服务器的地址。

my.cnf文件中,修改max_allowed_packet字段,默认为1M,我们需要修改为32M。

my.cnf文件中,修改max_allowed_packet字段,默认为16M,我们需要修改1600M;

对于事务表,当启用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式时,如果语句中有非法或丢失值,则会出现错误。语句被放弃并滚动。

my.cnf文件中,添加sql_mode=STRICT_ALL_TABLES字段;

PHP版本也很烦,首先apc不支持PHP5.4级以下的版本,貌似只支持PHP7.0以上,但是Phabricator又不支持PHP7.0,所以搞得很烦,最后下载了一个XAMMP的7.1.2版本;

如果你使用了XAMMP,那么你必须保持PHP版本在7.0以上,然后使用sudo /Applications/XAMPP/xamppfiles/bin/pecl install apc
就可以了,安装完成以后在php.ini中添加extension=apcu.so就可以了。

我们需要启动后台的phd服务,否则无法发送邮件,清理旧数据,构建搜索索引等等;

 ./bin/phd start

可能会报ERROR: The PHP extension 'pcntl' is not installed. You must install it to run daemons on this machine.

这个问题相当的麻烦,主要的流程可以Google xammp 安装pcntl插件;然后遇到的坑事,首先要保证PHP对应的版本与pcntl的版本一致,
其次是在php.ini中添加extension=pcntl.so的时候可能还是会报上面的这个错,原因就是对应的php.ini的文件不对,可以通过查看php -i的命令,查看Loaded Configuration File是否为nono,它可能找到的并不是XAMMP目录下的文件,因为环境变量中启动的php是在/etc这个目录下,所以要找到对应的正确关系。

我们手动创建这个存放代码仓库的目录:mkdir -p '/var/repo/'
同时需要设置对应的config里面的key, ./bin/config set repository.default-local-path /var/repo/

Phabricator使用文档
bin/aphlict start

如果你没有安装pcntl,如果没有安装pcntl的话就会报错,安装pcntl的教程可以参考上面。

配置mail:通过web访问phabricator并在页面上进行配置:
用administrator账号登录后,在administration栏选择Config进入
1)选择mail,设置:
metamta.default-address -- fucking@163.com // 注意:这里必须要用与smtp服务器对应的邮箱地址,不然邮件发不出去
metamta.domain -- phabricator.myproject.com //改不改无所谓,我用的是默认的
metamta.mail-adapter: set to "PhabricatorMailImplementationPHPMailerAdapter" //修要修改
metamta.send-immediately: Send Via Daemons //需要修改
2)选择PHPMailer,设置:
phpmailer.mailer: set to "smtp". //需要修改
phpmailer.smtp-host: smtp.163.com //填写你的163邮箱的smtp地址!
phpmailer.smtp-port: 25 //修要修改
phpmailer.smtp-user: fucking //你邮箱的用户名
phpmailer.smtp-password: fuck //你邮箱的密码
配置完毕后,可以在Administration-MetaMTA下进行发送邮件的测试,注意需要添加一个User组用户,无法直接向System Agent组用户发送邮件 (我没有检测因为没找到地方!)

同时需要配置metamta.default-address的地址就是你的邮箱地址;

首先需要安装Arcanist的源码拷贝到本地,

  1. somewhere git clone git://github.com/facebook/libphutil.git
  2. somewhere git clone git://github.com/facebook/arcanist.git

将arc的路径加入到系统路径中

export PATH=$PATH:/somewhere/arcanist/bin/

arc配置

配置arc的默认编辑器,我使用vim

arc set-config editor "vim"

配置默认的phabricator的uri,uri为团队的phabricator主页的url

arc set-config default http://phabricator.example.com

在项目的根目录下建.arcconfig配置文件,文件中至少要填入以下内容

{
  "project_id" : "your project name",
  "conduit_uri" : "your phabricator url"
}

为项目安装证书,用于phabricator的认证

arc install-certificate

找到your_phabricator_url/conduit/token/ 填入对应的token。

关于lint的配置

我们需要在.arcconfig文件中增加一个配置,load字段,下载OC代码需要对应的lint资源,https://github.com/vhbit/clang-format-linter

{
  "project_id" : "your project name",
  "conduit_uri" : "your phabricator url",
  "load" : ["/somewhere/clang-format-linter"]
}

同时需要在添加.arclint以及自定义配置的.clang-format文件;

上一篇下一篇

猜你喜欢

热点阅读