Como instalar e configurar o Phabricator no CentOS 7

O Phabricator é uma plataforma avançada de desenvolvimento de software de código aberto que pode ser usada para:

  • Revise e audite o código.
  • Host Git / Hg / SVN repositórios.
  • Rastrear bugs.
  • Gerenciar projetos.
  • Comunique-se com os membros da equipe.
  • E faça muito mais!

Graças aos seus recursos abundantes e desempenho excepcional, o Phabricator está se tornando cada vez mais popular na comunidade de software de código aberto.

Neste artigo, mostrarei como instalar o Phabricator em uma instância do servidor Vultr CentOS 7.

Pré-requisitos

  • Implante uma instância do servidor Vultr CentOS 7 do zero;
  • Efetue login no terminal SSH usando um usuário sudo não raiz.

Etapa 1: atualização do sistema

Atualize seu sistema CentOS 7 e, em seguida, reinicie:

yum update -y && shutdown -r now

Após a inicialização do sistema, efetue login como um usuário não raiz com acesso ao sudo.

Etapa 2: Instalar o MariaDB

Instale o servidor MariaDB:

sudo yum install mariadb mariadb-server

Inicie e ative o serviço MariaDB:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Por questões de segurança, execute o utilitário de instalação segura do MySQL:

sudo /usr/bin/mysql_secure_installation

Conclua este processo de acordo com as instruções abaixo:

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password:<your-password>
Re-enter new password:<your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Etapa 3: Instale o Apache

Instale o servidor da web Apache usando o YUM:

sudo yum install httpd

Modifique a configuração padrão para aprimorar a segurança:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

Inicie e ative o serviço Apache:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Etapa 4: instalar o PHP

Instale o PHP e as extensões necessárias:

sudo yum install php php-mysqli php-mbstring php-gd php-curl php-cli php-common php-process

Etapa 5: instalar o git

sudo yum install git

Etapa 6: Baixe e instale o Phabricator

cd ~
mkdir phabricator
cd 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
cd ~
sudo chown -R apache: ~/phabricator
sudo mv ~/phabricator /var/www/html

Etapa 7: configurar um host virtual para o Phabricator

sudo vi /etc/httpd/conf.d/phabricator.conf

Preencha o seguinte segmento de código:

Nota: É necessário substituir admin@example.com, phabricator.example.com, www.phabricator.example.com, /var/log/httpd/phabricator.example.com-error_log, e /var/log/httpd/phabricator.example.com-access_logcom os seus próprios valores.

<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/phabricator/phabricator/webroot/
    ServerName phabricator.example.com
    ServerAlias www.phabricator.example.com
    RewriteEngine on
    RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
    RewriteRule ^/favicon.ico   -                       [L,QSA]
    RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
    <Directory /var/www/html/phabricator/phabricator/webroot/>
        AllowOverride All
    </Directory>
    ErrorLog /var/log/httpd/phabricator.example.com-error_log
    CustomLog /var/log/httpd/phabricator.example.com-access_log common
</VirtualHost>

Salve e saia:

:wq

Reinicie o serviço Apache para efetivar suas modificações:

sudo systemctl restart httpd.service

Etapa 8: configurar as credenciais do MariaDB para o Phabricator

Antes de poder usar o Phabricator, você precisa configurar as credenciais do MariaDB:

cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set mysql.host localhost
sudo ./bin/config set mysql.port 3306
sudo ./bin/config set mysql.user root
sudo ./bin/config set mysql.pass <your-MySQL-root-password>

Preencher esquemas de Phabricator:

./bin/storage upgrade

Durante esse processo, você precisa inserir "y" duas vezes:

Before running storage upgrades, you should take down the Phabricator web
interface and stop any running Phabricator daemons (you can disable this
warning with --force).

    Are you ready to continue? [y/N] y

...

MySQL needs to copy table data to make some adjustments, so these migrations may take some time.

    Fix these schema issues? [y/N] y

Etapa 9: Modifique as regras do firewall e configure uma conta de administrador do Phabricator

Você precisa permitir o tráfego de entrada na porta HTTP padrão 80:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Em seguida, use seu navegador da web para visitar:

http://<your-Vultr-server-IP>

Você receberá a página da web de registro do Phabricator. Crie uma conta de administrador para gerenciamento diário.

Agora, vamos dar uma olhada em como configurar o Phabricator.

Etapa 10: corrigir problemas de instalação não resolvidos

Antes de poder usar o Phabricator com tranquilidade, é necessário corrigir vários problemas de configuração. O número de problemas de configuração varia, no meu caso, havia 16. Vamos resolvê-los um por um.

Problema 1: URI base não configurado

Clique no link "URI base não configurado" para acessar a página de detalhes do problema, na qual você pode aprender mais sobre esse problema.

Para corrigir esse problema, você precisa executar os seguintes comandos no seu terminal SSH. Certifique-se de usar o endereço IP adequado.

cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set phabricator.base-uri 'http://<your-Vultr-server-IP>'

Em seguida, no seu navegador da web, clique no botão "Atualizar página" na página de detalhes do problema. Se o reparo tiver funcionado, o texto na página se tornará "Problema resolvido". Clique no link "Voltar à lista de problemas abertos" para investigar outros problemas.

Problema 2: nenhum provedor de autenticação configurado

Clique no link "Nenhum provedor de autenticação configurado" para acessar a página de detalhes do problema.

Para corrigir esse problema, você precisa especificar o provedor de autenticação.

Clique no link "Aplicativo de autenticação" e, em seguida, no botão "+ Adicionar provedor" para acessar a página "Adicionar provedor de autenticação". Escolha um provedor de autenticação apropriado e clique no botão "Continuar". Aqui eu escolhi "Nome de usuário / Senha".

Na página "Adicionar provedor de autenticação: nome de usuário / senha", você pode revisar configurações mais detalhadas e clicar no botão "Adicionar provedor".

Você pode adicionar mais provedores de autenticação da mesma maneira, mas por enquanto, clique no link "Você tem X problemas de instalação não resolvidos ..." para lidar com outros problemas.

Problema 3: Daemons do Phabricator não estão sendo executados

Clique no link "Os daemons do phabricador não estão em execução" para entrar na página de detalhes.

Para resolver esse problema, execute o comando abaixo no seu terminal SSH:

cd /var/www/html/phabricator/phabricator/
./bin/phd start

Clique no botão "Recarregar página" para confirmar o resultado.

Problema 4: PHP post_max_sizenão configurado

Execute os seguintes comandos no seu terminal SSH para corrigir esse problema:

sudo sed -i "s/post_max_size = 8M/post_max_size = 32M/" /etc/php.ini
sudo systemctl restart httpd.service

Clique no botão "Recarregar página" para confirmar suas modificações.

Edição 5-10: Problemas relacionados ao MySQL

Existem seis problemas relacionados ao MySQL no total:

  • MySQL pequeno " pacote permitido máximo "
  • MySQL STRICT ALL TABLES Mode Not Set
  • MySQL está usando o arquivo de palavras de parada padrão
  • MySQL está usando o comprimento mínimo padrão da palavra
  • MySQL está usando a sintaxe booleana padrão
  • MySQL pode executar lentamente

Por uma questão de conveniência, vamos corrigi-los em um lote.

No seu terminal SSH, edite o arquivo de configuração do MySQL com vi:

sudo vi /etc/my.cnf

Sob as três linhas no topo:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

Adicione as seis linhas abaixo:

max_allowed_packet=32M
sql_mode=STRICT_ALL_TABLES
ft_stopword_file=/var/www/html/phabricator/phabricator/resources/sql/stopwords.txt
ft_min_word_len=3
ft_boolean_syntax=' |-><()~*:""&^'
innodb_buffer_pool_size=1600M        # about 40% of your system memory

Aviso: Você precisa definir um tamanho de buffer pool adequado do Innodb de acordo com o tamanho do servidor específico. Geralmente, o tamanho do buffer pool do Innodb deve ser de aproximadamente 40% da quantidade de memória da sua máquina. Por exemplo, se você estiver usando uma máquina com memória 4G, o tamanho razoável do buffer pool do Innodb seria 1600M. Caso esteja usando uma máquina com pouca memória (como 768M), pode ser necessário atribuir um tamanho menor que 40% da quantidade de memória da sua máquina (por exemplo, 220M) para economizar mais memória para o sistema.

Salve e saia:

:wq

Reinicie o serviço MariaDB:

sudo systemctl restart mariadb.service

Por fim, execute o seguinte comando:

mysql -u root -p -e "REPAIR TABLE phabricator_search.search_documentfield"

Clique no botão "Recarregar página" para examinar seus esforços.

Problema 11: instalar pigmentos para melhorar o destaque da sintaxe

No CentOS 7, os pigmentos foram instalados, mas não ativados por padrão, você precisa ativá-lo manualmente:

Clique no link: Editar "pygments.enabled", escolha "Use Pygments" no menu suspenso "Database Value" e clique no botão "Save Config Entry".

Problema 12: fuso horário do servidor não configurado

Modifique o php.iniarquivo:

sudo vi /etc/php.ini

Substitua a linha:

;date.timezone =

Com:

date.timezone = America/Los_Angeles

Salve e saia:

:wq

Nota: "America / Los_Angeles" é o valor do fuso horário da minha máquina. Você precisa encontrar o valor apropriado do fuso horário para sua própria instância do servidor aqui .

Reinicie o serviço Apache:

sudo systemctl restart httpd.service

Clique no botão "Recarregar página" para examinar o resultado.

Problema 13: armazenamento de arquivos grandes não configurado

Você precisa implantar uma solução adequada de armazenamento de arquivos grandes, de acordo com sua própria configuração. Por enquanto, você pode clicar no botão "Ignorar problema de instalação" para pular.

Problema 14: domínio de arquivo alternativo não configurado

Digamos que você configurou um domínio de arquivo alternativo ou uma CDN e, no terminal SSH:

cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set security.alternate-file-domain <https://files.example.com>

Clique no botão "Recarregar página" para examinar o resultado.

Problema 15: caminho local do repositório ausente

Use os seguintes comandos para resolver esse problema:

sudo mkdir /var/repo
sudo chown apache: /var/repo

Clique no botão "Recarregar página" para examinar o resultado.

Problema 16: extensão PHP 'APC' não instalada

sudo yum install php-pear php-devel httpd-devel pcre-devel gcc make
sudo pecl install apc

Durante o processo de instalação do APC, sempre pressione Enter para usar a opção padrão.

sudo vi /etc/php.ini

Adicione as quatro linhas ao final do arquivo:

extension=apc.so
apc.write_lock = On
apc.slam_defense = Off
apc.stat = Off

Salve e saia:

:wq

Reinicie o serviço Apache:

sudo systemctl restart httpd.service

Clique no botão "Recarregar página" para verificar o resultado.

Isso é tudo. Feliz codificação!

Deixar um comentário

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.