Phabricator服务的搭建
概述
其实在网上搭建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服务的搭建的更多相关文章
- nginx服务傻瓜搭建
nginx服务傻瓜搭建 安装步骤: 一.先准备好相关源码包和程序包,如下图 所有包都在云服务器的/src目录下. 二.安装 1.安装nginx服务器,支持vod stream.fileupload c ...
- 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】
基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...
- dubbo服务简单搭建
一.初识dubbo: 架构图: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: 统计服务的 ...
- Centos 6.5 pptpd服务端搭建过程
首先检测有没有启用ppp和tun cat /dev/ppp cat /dev/net/tun 如果显示是这样的 cat: /dev/ppp: No such device or address cat ...
- [Visual Studio] SOA服务框架搭建
1.服务框架搭建 2.服务模板创建 3.Nuget引用 4.客户端调用 任务点: 1.分析SOA 2.修改SOA架构名称以及关键字 3.使用Nuget添加引用 4.选择服务模板进行创建 5.尝试调用 ...
- 【转载】Redis Sentinel 高可用服务架构搭建
作者:田园里的蟋蟀 出处:http://www.cnblogs.com/xishuai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 阅读 ...
- springcloud微服务架构搭建
SpringCloud微服务框架搭建 一.微服务架构 1.1什么是分布式 不同模块部署在不同服务器上 作用:分布式解决网站高并发带来问题 1.2什么是集群 多台服务器部署相同应用构成一个集群 作用:通 ...
- ubuntu 16.04 nfs服务的搭建
nfs服务是实现Linux和Linux之间的文件共享,nfs服务的搭建比较简单. 现在介绍如何在ubuntu16.04系统中搭建nfs服务,ubuntu的搭建比红帽的还要简单. 1.安装nfs服务 s ...
- Red Hat 6.5 nfs服务的搭建
nfs服务是实现Linux和Linux之间的文件共享,nfs服务的搭建比较简单. 现在介绍如何在红帽6.5系统中搭建nfs服务. 1.关闭selinux服务 如果已经关闭该服务的可以直接跳过该步骤. ...
随机推荐
- Apache Beam实战指南 | 手把手教你玩转大数据存储HdfsIO
https://mp.weixin.qq.com/s?__biz=MzU1NDA4NjU2MA==&mid=2247494843&idx=2&sn=0dd20caec76e25 ...
- Mysql双主热备+LVS+Keepalived高可用部署实施手册
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- openstack项目【day23】:KVM介绍
阅读目录 什么是kvm 为何要用kvm kvm的功能 常见虚拟化模式 KVM架构 KVM工具集合 一 什么是kvm KVM 全称 Kernel-Based Virtual Machine.也就是说 K ...
- 金融量化分析【day110】:NumPy-切片和索引
一.索引和切片 1.数组和标量之间的运算 2.同样大小的数组之间的运算 3.数组索引 4.数组切片 1.一维数组 2.多维数组 二.布尔索引 1.问题 给一个数组,选出数组中所有大于5的数 1.答案 ...
- MongoDB 分片集群技术
在了解分片集群之前,务必要先了解复制集技术! 1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这 ...
- spring boot打包
1.application继承SpringBootServletInitializer 重写configure方法如下图 2.去掉项目中多余的main方法 3.将pom.xml打包改为war包 4. ...
- EffectiveC++ 第3章 资源管理
我根据自己的理解,对原文的精华部分进行了提炼,并在一些难以理解的地方加上了自己的"可能比较准确"的「翻译」. Chapter 3 资源管理 条款13: 以对象管理资源 有时即使你顺 ...
- TCP/IP教程
一.TCP/IP 简介 TCP/IP 是用于因特网的通信协议. 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 什么是 TCP/IP? TCP/IP 是供已连接因特 ...
- CapsNet胶囊网络(理解)
0 - 背景 Geoffrey Hinton是深度学习的开创者之一,反向传播等神经网络经典算法发明人,他在去年年底和他的团队发表了两篇论文,介绍了一种全新的神经网络,这种网络基于一种称为胶囊(caps ...
- webpack学习记录 二
开发网站 用polyfill(全局污染) 开发框架 用Runtime(局部污染) 在.babelrc文件中