概述

其实在网上搭建Phabricator环境文章很多,我写这篇文章的主要目的就是记录自己遇到的坑,顺便写一下安装步骤,其实安装步骤按照官网文档一步一步配置即可,很简单。只不过官方提供的一键安装脚本都是基于apache的,如果想使用Nginx的话,则不能使用官方提供过的脚本安装。

遇到的坑-Phabricator连接不上MySQL

为什么连接不上MySQL呢???使用./bin/storage upgrade可以正常初始化Phabricator的数据库,但是使用页面访问时就是连接不上。

搜了大量文章也没有说明这一点的,可能就是大家比较幸运,没遇到这个问题。这个问题的根源就是MySQL的问题,是这样的。

Ubuntu中默认使用apt install mysql-server安装MySQL,安装完之后启动mysql服务,发现使用mysql -uroot -p登录时,无论怎么输入密码都能正确登录,即使我输错密码也可以,很奇怪。这时使用./bin/storage upgrade初始化Phabricator的数据库没有问题,但是打开页面时却提示连接不上数据库。很奇怪,可能是哪里配置有问题,这种配置很讨厌,你不熟悉的话很容易被坑一下。还不如使用官方的方式安装MySQL。

怎么解决???使用官方提供的MySQL安装方式,一定要完全卸载完旧的mysql再安装新的,包括配置文件,完全卸载!。安装步骤在下面,但是这时还需要注意一下,安装时MySQL的密码加密方式,选择第二个(5.x)的方式,不要选择MySQL推荐的,否则会出现./bin/storage upgrade时连接不上MySQL的问题。

准备环境

本文使用的系统是ubuntu-18.04.2,因为Phabricator是基于PHP开发的,所以我使用了Nginx配合php-fpm进行访问的。

安装软件

安装Nginx

运行命令apt install nginx安装Nginx即可。

配置文件在:/etc/nginx/nginx.conf

安装MySQL

使用MySQL标准的安装步骤,从官网上下载deb包(mysql-apt-config_0.8.12-1_all.deb)。

运行dpkg -i mysql-apt-config_0.8.12-1_all.deb进行安装,进入字符界面,直接点OK即可。

然后执行apt update更新源,发现列出了MySQL的源。

然后执行apt install mysql-server,然后输入两次密码,选择密码加密方式,一定要选择第二个(5.x)的那个,选择第一个时Phabricator会连接不上。

安装PHP

运行apt install php php-fpm php-mysql安装php。

其中php-fpm是配置ngxin解析php的,php-mysql就是连接mysql的。

下载Phabricator

使用git下载到你想要的目录中,我放在/var/www/phabricator目录中。

cd /var/www/phabricator
git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git

一定要保证libphutil、arcanist和phabricator位于同级目录。

配置

配置nginx和php

进入nginx的/etc/nginx/sites-enabled目录中,有一个默认的配置文件,因为该文件配置绑定了80端口,所以我们将其移除,因为该文件是连接文件,所以改名是无效的。移除后,新建phabricator.conf文件,将官方推荐配置写入

server {
listen 80; # 官方没有加,这里需要加
server_name phabricator.example.com;
root /var/www/phabricator/phabricator/webroot; # 修改为你的phabricator目录 location / {
index index.php;
rewrite ^/(.*)$ /index.php?__path__=/$1 last;
} location /index.php {
fastcgi_pass localhost:9000;
fastcgi_index index.php; #required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200; #variables to make the $_SERVER populate in PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr;
}
}

写入完之后,配置php的user和group, 编辑/etc/php/7.2/fpm/pool.d/www.conf文件,修改一下内容

user = nginx
group = nginx
# 注释掉listen = /run/php/php7.2-fpm.sock
# 增加listen = localhost:9000
listen = localhost:9000

配置phabricator

运行如下命令配置连接数据库

cd phabricator
mkdir conf/custom
vim conf/custom/mysql.conf.php

写入如下信息

<?php
return array(
'mysql.host' => 'localhost',
'mysql.port' => '3306',
'mysql.user' => 'root',
'mysql.pass' => '',
);

将配置文件加入到phabricator的配置中

echo custom/mysql > conf/local/ENVIRONMENT

然后运行./bin/storage upgrade进行phabricator的数据库初始化

启动nginx和php-fpm

# 启动nginx
nginx # 启动php-fpm
systemctl start php7.2-fpm

然后通过浏览器打开网页进行后续配置即可。

Phabricator服务的搭建的更多相关文章

  1. nginx服务傻瓜搭建

    nginx服务傻瓜搭建 安装步骤: 一.先准备好相关源码包和程序包,如下图 所有包都在云服务器的/src目录下. 二.安装 1.安装nginx服务器,支持vod stream.fileupload c ...

  2. 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】

    基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...

  3. dubbo服务简单搭建

    一.初识dubbo: 架构图: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: 统计服务的 ...

  4. Centos 6.5 pptpd服务端搭建过程

    首先检测有没有启用ppp和tun cat /dev/ppp cat /dev/net/tun 如果显示是这样的 cat: /dev/ppp: No such device or address cat ...

  5. [Visual Studio] SOA服务框架搭建

    1.服务框架搭建 2.服务模板创建 3.Nuget引用 4.客户端调用 任务点: 1.分析SOA 2.修改SOA架构名称以及关键字 3.使用Nuget添加引用 4.选择服务模板进行创建 5.尝试调用 ...

  6. 【转载】Redis Sentinel 高可用服务架构搭建

    作者:田园里的蟋蟀 出处:http://www.cnblogs.com/xishuai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 阅读 ...

  7. springcloud微服务架构搭建

    SpringCloud微服务框架搭建 一.微服务架构 1.1什么是分布式 不同模块部署在不同服务器上 作用:分布式解决网站高并发带来问题 1.2什么是集群 多台服务器部署相同应用构成一个集群 作用:通 ...

  8. ubuntu 16.04 nfs服务的搭建

    nfs服务是实现Linux和Linux之间的文件共享,nfs服务的搭建比较简单. 现在介绍如何在ubuntu16.04系统中搭建nfs服务,ubuntu的搭建比红帽的还要简单. 1.安装nfs服务 s ...

  9. Red Hat 6.5 nfs服务的搭建

    nfs服务是实现Linux和Linux之间的文件共享,nfs服务的搭建比较简单. 现在介绍如何在红帽6.5系统中搭建nfs服务. 1.关闭selinux服务 如果已经关闭该服务的可以直接跳过该步骤. ...

随机推荐

  1. java 发送 mail 纯文本发送和html格式发送

    一:需要引入mail maven jar包 <!--邮件发送包--> <dependency> <groupId>javax.mail</groupId> ...

  2. Tomcat 日志文件分割

    新到公司, 拿到了前辈们留下的 程序 “病历书” , 上面记载了项目上的一些 经常会犯的毛病,  还有相应的解决方法. 其中有的是因为后台 代码逻辑上的一些原因 , N手代码通病了吧 (这个还是以后再 ...

  3. codeforces-1139 (div2)

    A.如果第i个数字是偶数,总贡献就加上i #include <map> #include <set> #include <ctime> #include <c ...

  4. zabbix Server 4.0 部署及之内置item使用案例

    zabbix Server 4.0 部署及之内置item使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix组件架构概述(图片摘自网络) 1>.zabbi ...

  5. CentOS7.2 设置静态ip

    先找到配置文件: [root@localhost bin]# cd /etc/sysconfig/network-scripts [root@localhost network-scripts]# l ...

  6. ACM-ICPC 2018 徐州赛区网络预赛 J Maze Designer(最大生成树+LCA)

    https://nanti.jisuanke.com/t/31462 题意 一个N*M的矩形,每个格点到其邻近点的边有其权值,需要构建出一个迷宫,使得构建迷宫的边权之和最小,之后Q次查询,每次给出两点 ...

  7. JN_0006:MongoDB未授权访问漏洞处理

    开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作而且可以远程访问数据库. 2.[修复建议]:临时方案:配置AUTH,做好访问认证.打开 ...

  8. Javaweb学习笔记——(二十三)——————AJAX、XStream、JSON

    AJAX概述     1.什么是AJAX         ajax(Asynchronous JavaScript and xml) 翻译成中文就是"异步JavaScript和xml&quo ...

  9. MySQL学习8 - 数据的增删改

    一.介绍 二.插入数据 INSERT 三.更新数据UPDATE 四.删除数据DELETE 一.介绍 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现 ...

  10. angularjs指令中的compile与link函数详解补充

    通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. angularjs里的指令非常神奇,允许你 ...