搭建phabricator代码审核工具
phabricator
依赖环境 系统centos,mysql,php,nginx
1.下载安装脚本 https://secure.phabricator.com/source/phabricator/browse/master/scripts/install/install_rhel-derivs.sh
直接运行sh install_rhel-derivs.sh安装或者修改脚本把安装apache改为安装nginx。
下面我们采用默认安装,安装失败的地方通过手动方式安装。
在阿里云centos 7以上mysql安装将会失败需要手动安装mariadb,yum -y install mariadb
脚本安装依赖apache,手动安装nginx,yum -y install nginx
调用install脚本后会git clone下面三个工程
libphutil,phabricator,arcanist
2.将上面三个目录拷贝到/usr/share/nginx/html/下面,注意不能将phabricator的webroot放在/root/**/下面否则nginx将无法访问到php脚本文件
并修改nginx.conf的配置文件
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user root; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html/phabricator/webroot; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { index index.php; if ( !-f $request_filename ) { rewrite ^/(.*)$ /index.php?__path__=/$1 last; break; } } location /index.php { fastcgi_pass localhost:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }
3.安装php-fpm, yum install php-fpm。启动 service php-fpm start
4.进入phabricator/bin目录下执行./storage upgrade初始化phabricator数据库
5. 如果需要支持发送邮件需要在bin目录下启动phd
./mail send-test --to xxxx@qq.com --subject hi < body.txt
测试发送邮件
安装完后:
启动nginx 进入localhost
配置管理员密码和用户名后进入管理主页
config -->Mail 修改metamta.default-address 和 metamta.mail-adapter
metamta.default-address 发送的邮箱地址如xxx@163.com
metamta.mail-adapter 选择PhabricatorMailImplementationPHPMailerAdapter
然后进入PHPMailer修改相应配置。
或者直接进入/usr/share/nginx/html/phabricator/conf/local直接修改local.json
{ "phpmailer.smtp-host": "smtp.mxhichina.com", "phpmailer.smtp-port": 25, "phpmailer.smtp-user": "xxx@nbugs.com", "phpmailer.smtp-password": "xxxxx", "differential.require-test-plan-field": false }
上述配置完成后进入phabricator/bin
执行./mail send-test --to xxxx@qq.com --subject hi < body.txt
通过./mail list-outbound
[root@localhost bin]# ./mail list-outbound 1 Sent [Phabricator] Email Verification 2 Sent [Phabricator] New User "sylar" Awaiting Approval 4 Sent hi 5 Sent [Phabricator] Phabricator Account "sylar" Approved 6 Sent [Phabricator] admin (admin) has invited you to join Phabricator 7 Sent [Phabricator] admin (admin) has invited you to join Phabricator 8 Sent [Phabricator] admin (admin) has invited you to join Phabricator 9 Sent [Phabricator] admin (admin) has invited you to join Phabricator
6,进去Auth---->Add Provider让phabricator支持用户名密码登陆
这样基础的phabricator服务就配置完成了