在ubuntu上搭建Phabricator 服务器

一 安装要求

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

  • Linux:Linux的不同发行版及变种是必需的。Mac OS X是一个可接受的Linux变种,Windows不是。Phabricator不能安装在Windows系统上。在Mac OS X,Amazon Linux,Ubuntu,RHEL和CentOS上运行的 Phabricator 有活跃的贡献者。
  • Apache(或nginx,或lighttpd):需要Apache 2.2.7以上版本。
  • MySQL:MySQL必需
  • PHP:需要PHP5.2以上版本
  • 域名(例如:phabricator.my.com)
  1. Phabricator的命令行接口-Arcanist,可以在Windows上正常运行。参考Windows下Phabricator Arcanist的安装与使用(官方页面:Arcanist User Guide: Windows)。
  1. LAMP: Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

二 安装必须的组件

Phabricator安装必须的组件包括

  • git (usually called "git" in package management systems)
  • Apache (usually "httpd" or "apache2") (or nginx)
  • MySQL Server (usually "mysqld" or "mysql-server")
  • PHP (usually "php")
  • 必须的 PHP 扩展: mbstring, iconv, mysql (or mysqli), curl, pcntl (these might be something like "php-mysql" or "php5-mysql")
  • 可选的PHP 扩展: gd, apc (安装该扩展如果有困惑,请看下面的APC安装说明), xhprof (仅在你对Phabricator做二次开发时需要)
    以上大部分组件在Ubuntu上可以通过脚本install_ubuntu.sh完成。
    ubuntu下获取文件的命令:
wget http://www.phabricator.com/rsrc/install/install_ubuntu.sh 
安装APC (可选)

如同所有写在PHP中的东西一样, Phabricator 在APC安装完毕后,运行会更快。你首先需要先安装“pcre-devel”:

sudo apt-get install pcre-devel

然后你有两个选择。一个是安装via PECL(需要首先测试一下)

sudo pecl install apc

如果它不工作, 在PECL文件夹中找到apc,然后按照以下指南操作:
http://pecl.php.net/package/APC

安装 APC 是可选的,但是这里 强烈推荐安装
一旦 APC 安装完成,测试就可以执行了:

php -i | grep apc

如果该命令无法执行,那就添加

extension=apc.so

到 "/etc/php.d/apc.ini" 或 "php.ini" 文件中。
可以通过

php -i

找到该文件。

三 获取phabricator及其依赖包

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

四 配置phabricator

1. WEB服务器:配置Apache

  • 设置一个域名指向你的主机
    Sudo Vim /etc/hosts
add:
    127.0.0.1 phabricator.my.com
  • 创建一个VirtualHost条目(放置Phabricator到一个二级域名上)
    进入站点配置目录
$ cd /etc/apache2/site-available/

该目录用于存放虚拟机的配置文件。
创建一个虚拟机的配置文件

$sudo vim phabricator.conf

添加如下内容:

<VirtualHost *:80>
  # Change this to the domain which points to your host.
  ServerName phabricator.my.com

  # Change this to the path where you put 'phabricator' when you checked it
  # out from GitHub when following the Installation Guide.
  #
  # Make sure you include "/webroot" at the end!
  DocumentRoot /path/to/phabricator/webroot

  RewriteEngine on
  RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
  RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
  RewriteRule ^/favicon.ico   -                       [L,QSA]

 # If Apache isn't currently configured to serve documents out of the
 # directory where you put Phabricator, you may also need to add
 # <Directory /> section. 
  <Directory /path/to/phabricator/webroot>
               Options Indexes FollowSymLinks Includes ExecCGI
               AllowOverride None
               Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. <Directory部分也可以添加到/etc/apache2/apache2.conf中。
  1. 这里用的是默认端口80,要想通过其他端口(8080)访问,首先我们得让apache2监听端口该端口:
    修改/etc/apache2/ports.conf,增加:
    Listen 8080
保存编辑的配置文件后, 需要启用该配置。
    $ sudo a2ensite phabricator.conf
完成后他会提示你需要重新加载一些东西, 这里按照提示执行一下。
    $ sudo service apache2 reload
  • 重启Apache服务
sudo /etc/init.d/apache2 restart

重启时遇到如下问题时:



需要在/etc/apache2/apache2.conf配置文档中加入下面的一句:

ServerName 127.0.0.1:80

2.存储:配置MySQL

设置中,你需要配置MySQL。运行MySQL,验证是否能正常连接。如果有问题,请参考MySQL的帮助文档。如果MySQL正常工作,你需要加载Phabricator的模式,运行命令:

phabricator/ $ ./bin/storage upgrade

根据提示进行操作即可,将Phabricator的配置文件加载到mysql中。
如果你配置了一个无特权的用户以连接数据库,你将不得不重新设置为root用户或其他的管理员以使模式能被应用。

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

可以使用 -- force 参数来避免脚本进行提示,对mysql强行加载配置文件。

phabricator/ $ ./bin/storage upgrade --force

注意:每当Phabricator进行了更新,都需要运行storage upgrade。
每当server关闭后再次开启,需要重新启动phabricator。页面信息会提示你该怎么做。

3. 验收Phabricator

  • 在浏览器中输入域名,It Works!
It Works!
  • 客户端登陆
    在客户端hosts文件中添加
192.168.31.90(server IP)  phabricator.my.com

下一步

继续:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容