Phabricator部署相关注意事项备忘
Phabricator是一套facebook推出的code review系统,整个系统是基于lamp环境来部署的,首先得需要搭建好lamp环境。关于部署这块官方有一个部署的脚本,可以参考下:https://secure.phabricator.com/source/phabricator/browse/master/scripts/install/install_ubuntu.sh。
因为自己需要前几天也在自己的私有云上搭建了一套环境,现将整理出来的注意事项整理备忘下来。因为已经有lamp环境了,所以这里就没有单独说这块得部署。我是用apache和mariadb来部署的,使用的php7.2-fpm。apache这里需要开启rewrite模块,php环境需要php-mysql php-gd php-curl php-apcu php-cli php-json php-mbstring这几个特殊的扩展,另外就是需要安装git。
准备好以上的几个环境之后就可以进行安装的步骤了。需要使用到下面的三个代码仓库。
git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git
然后利用apache设置一个虚拟主机,将根目录设置为phabricator/webroot就可以了
然后在webroot目录下设置rewrite规则.htaccess。
RewriteEngine on
RewriteRule ^/rsrc/(.*) - [L,QSA]
RewriteRule ^/favicon.ico - [L,QSA]
RewriteCond %{QUERY_STRING} ^.*__path__.*$ [NC]
RewriteRule .* - [L,NC,QSA]
RewriteRule ^(.*)$ /index.php?__path__=/$1 [B,L,QSA]
Require all granted
然后就根据设置进行初始化的配置和登录了配置了,最终配置的文件展示如下。熟悉phabricator的人都知道,这个系统所有的本地配置都是在local.json文件里。所以把这个文件也贴一下。
"metamta.default-address": "aaaaa@5288z.com",
{
"metamta.reply-handler-domain": "5288z.com",
"cluster.mailers": [
{
"key": "smtp",
"type": "smtp",
"options": {
"host": "smtp.exmail.qq.com",
"port": 465,
"user": "",
"password": "",
"protocol": "ssl"
}
}
],
"phabricator.base-uri": "https://phabricator.www.5288z.com",
"security.alternate-file-domain": "https://phabricator.www.5288z.com/",
"repository.default-local-path": "",
"mysql.pass": "",
"mysql.user": "",
"mysql.port": "",
"mysql.host": "",
"storage.mysql-engine.max-size": 8388608
}
最新的代码仓库中在配置邮件的时候,我使用了smtp方式,但是发现邮件系统一直不通,最终发现是phpmailler版本过低导致的,可能是我使用的是腾讯企业邮箱,需要配置ssl,但是低版本的仓库中就没有这个选项。修正方法就是,用phpmailler支持ssl配置的版本。我这里用的是PHPMailer 5.2.26这个版本。然后在调用smtp的时候加入了ssl的配置。
在PhabricatorMailSMTPAdapter.php文件中加入对ssl校验的配置,其实phpmailler的低版本中一直存在着这个问题。
$smtp->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);