Phabricator在Linux上部署可整合代码评审、任务跟踪、仓库托管和文档协作,实现开发流程闭环;需满足OS、Web服务器、数据库、PHP等环境要求,按序克隆三个Git仓库,Nginx正确配置路由与fastcgi参数,安装后须完成数据库、邮件、应用启用等工程化配置。

Phabricator 在 Linux 上部署后,能真正把代码评审、任务跟踪、仓库托管和文档协作整合进一个闭环流程,不是简单堆功能,而是让开发节奏可追踪、可回溯、可授权。它不依赖 SaaS 服务,所有数据自主可控,特别适合对合规性、定制性和响应速度有要求的中小型技术团队。
选型与环境准备
Phabricator 对运行环境有明确要求,但不过分苛刻: - 操作系统:CentOS 7/8、Ubuntu 16.04+、Debian 10+ 等主流发行版均可 - Web 服务器:Nginx(推荐)或 Apache 2.4+ - 数据库:MySQL 5.6+ 或 MariaDB 10.2+(注意禁用 strict mode) - PHP:7.2–8.1(官方已不再支持 PHP 5.x;需启用 mbstring、json、curl、pdo_mysql、pcntl、gd、opcache 等扩展) - 其他:Git 必须安装(≥2.0),Python(用于语法高亮)、sendmail 或 SMTP 服务(用于通知)建议在干净系统上部署,避免与已有 LAMP/LEMP 套件冲突。若用于生产,应单独划分用户(如 phab)运行服务,不使用 root。
核心组件拉取与目录结构
Phabricator 由三个独立 Git 仓库组成,需按顺序克隆: - `libphutil`:基础工具库(所有组件依赖) - `arcanist`:命令行客户端(本地开发提交 Review 的关键) - `phabricator`:主应用(Web 后端 + 管理界面)标准做法是统一放在 /opt/phabricator/ 下:
sudo mkdir -p /opt/phabricator cd /opt/phabricator sudo git clone https://github.com/phacility/libphutil.git sudo git clone https://github.com/phacility/arcanist.git sudo git clone https://github.com/phacility/phabricator.git
确保三者权限一致(如属主 phab:phab),后续 Web 服务器和 CLI 工具才能正常读写。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
Nginx 配置要点
Phabricator 不是普通 PHP 应用,其路由全部交由 `index.php` 统一处理,Nginx 需正确转发路径和变量: - `root` 指向 `/opt/phabricator/phabricator/webroot` - 所有非静态资源请求必须重写到 `/index.php` - `fastcgi_pass` 指向 PHP-FPM socket(如 `unix:/run/php-fpm/phab.sock`) - 关键 fastcgi_param 不可遗漏:`SCRIPT_FILENAME`、`QUERY_STRING`、`PATH_INFO`(部分版本需显式设置)示例 server 块片段:
server {
listen 80;
server_name phab.example.local;
root /opt/phabricator/phabricator/webroot;
index index.php;
location / {
try_files $uri $uri/ /index.php?__path__=$uri&$args;
}
location ~ ^/index\.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/phab.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}初始化与工程化配置
首次访问域名会触发 Web 安装向导,完成后需立即执行以下工程化动作: - 运行 `./bin/config set mysql.host localhost` 等命令补全数据库连接 - 创建管理员账户并禁用注册(`./bin/config set registration.enabled false`) - 配置邮件驱动(SMTP 或 sendmail),否则任务分配、Review 通知全部失效 - 启用 `diffusion`(代码托管)和 `differential`(代码评审)应用 - 设置默认仓库策略(如只允许 SSH 推送、禁止匿名克隆) - 配置 `phabricator-ssh-hook.sh` 并绑定到 SSH daemon(实现 Git over SSH 自动触发)后续可通过 ./bin/phd start 启动守护进程(处理邮件、搜索索引、钩子回调等后台任务),并设为开机自启。
不复杂但容易忽略。

















