Com instal·lar i configurar Phabricator a CentOS 7

Phabricator és una plataforma avançada de desenvolupament de programari de codi obert que es pot utilitzar per:

  • Codi de revisió i auditoria.
  • Host Git/Hg/SVN repositoris.
  • Seguiment d'errors.
  • Gestionar projectes.
  • Comunicar-se amb els membres de l'equip.
  • I fer molt més!

Gràcies a les seves abundants característiques i un rendiment excepcional, Phabricator és cada cop més popular a la comunitat de programari de codi obert.

En aquest article, us mostraré com instal·lar Phabricator en una instància del servidor Vultr CentOS 7.

Requisits previs

  • Desplegueu una instància de servidor Vultr CentOS 7 des de zero;
  • Inicieu sessió des del terminal SSH amb un usuari sudo que no sigui root.

Pas 1: actualització del sistema

Actualitzeu el vostre sistema CentOS 7 i, a continuació, reinicieu:

yum update -y && shutdown -r now

Un cop arrenqui el sistema, inicieu sessió com a usuari no root amb accés sudo.

Pas 2: instal·leu MariaDB

Instal·leu el servidor MariaDB:

sudo yum install mariadb mariadb-server

Inicieu i activeu el servei MariaDB:

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

Per motius de seguretat, executeu la utilitat d'instal·lació segura de MySQL:

sudo /usr/bin/mysql_secure_installation

Finalitzeu aquest procés d'acord amb les instruccions següents:

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

Pas 3: instal·leu Apache

Instal·leu el servidor web Apache mitjançant YUM:

sudo yum install httpd

Modifiqueu la configuració per defecte per millorar la seguretat:

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

Inicieu i activeu el servei Apache:

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

Pas 4: instal·leu PHP

Instal·leu PHP i les extensions necessàries:

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

Pas 5: instal·leu git

sudo yum install git

Pas 6: Baixeu i instal·leu 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

Pas 7: configureu un host virtual per a Phabricator

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

Omple el següent segment de codi:

Nota: Cal substituir admin@example.com, phabricator.example.com, www.phabricator.example.com, /var/log/httpd/phabricator.example.com-error_log, i /var/log/httpd/phabricator.example.com-access_logamb els seus propis valors.

<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>

Desa i surt:

:wq

Reinicieu el servei Apache per tal de posar en pràctica les vostres modificacions:

sudo systemctl restart httpd.service

Pas 8: configureu les credencials de MariaDB per a Phabricator

Abans de poder utilitzar Phabricator, heu de configurar les credencials de 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>

Ompliu els esquemes Phabricator:

./bin/storage upgrade

Durant aquest procés, heu d'introduir "y" dues vegades:

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

Pas 9: modifiqueu les regles del tallafoc i configureu un compte d'administrador de Phabricator

Heu de permetre el trànsit entrant al port HTTP predeterminat 80:

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

A continuació, utilitzeu el vostre navegador web per visitar:

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

Se us presentarà la pàgina web de registre de Phabricator. Creeu un compte d'administrador per a la gestió diària.

Ara, fem una ullada a com configurar Phabricator.

Pas 10: solucioneu els problemes de configuració no resolts

Abans de poder utilitzar Phabricator amb tranquil·litat, heu de solucionar diversos problemes de configuració. El nombre de problemes de configuració varia, en el meu cas, n'hi havia 16. Anem a resoldre'ls un per un.

Problema 1: URI base no configurat

Feu clic a l'enllaç "URI base no configurat" per accedir a la pàgina de detalls del problema en què podeu obtenir més informació sobre aquest problema.

Per solucionar aquest problema, heu d'executar les ordres següents al vostre terminal SSH. Assegureu-vos d'utilitzar l'adreça IP adequada.

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

A continuació, al navegador web, feu clic al botó "Recarrega la pàgina" a la pàgina de detalls del problema. Si la reparació ha funcionat, el text de la pàgina es convertirà en "Problema resolt". Feu clic a l'enllaç "Torna a la llista oberta de problemes" per investigar altres problemes.

Problema 2: no s'ha configurat cap proveïdor d'autenticació

Click the "No Authentication Providers Configured" link to get into the issue details page.

In order to fix this issue, you need to specify the authentication provider.

Click the "Auth Application" link and then the "+ Add Provider" button to get into the "Add Auth Provider" page. Choose an appropriate authentication provider, and then click the "Continue" button. Here I chose "Username/Password".

In the "Add Auth Provider: Username/Password" page, you can review more detailed settings, then click the "Add Provider" button.

You can add more authentication providers in the same fashion, but for now, click the "You have X unresolved setup issues..." link to handle other issues.

Issue 3: Phabricator Daemons Are Not Running

Feu clic a l'enllaç "Els dimonis Phabricator no s'executen" per entrar a la pàgina de detalls.

Per resoldre aquest problema, executeu l'ordre següent al vostre terminal SSH:

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

Feu clic al botó "Recarrega la pàgina" per confirmar el resultat.

Problema 4: PHP post_max_sizeno configurat

Executeu les ordres següents al vostre terminal SSH per solucionar aquest problema:

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

Feu clic al botó "Recarrega la pàgina" per confirmar les vostres modificacions.

Problema 5-10: problemes relacionats amb MySQL

Hi ha sis problemes relacionats amb MySQL en total:

  • Petit " paquet màxim permès " de MySQL
  • MySQL STRICT ALL TABLES Mode no establert
  • MySQL està utilitzant el fitxer de paraules clau predeterminat
  • MySQL està utilitzant la longitud mínima de paraula predeterminada
  • MySQL està utilitzant la sintaxi booleana predeterminada
  • MySQL pot funcionar lentament

Per comoditat, arreglem-los en un sol lot.

Al vostre terminal SSH, editeu el fitxer de configuració de MySQL amb vi:

sudo vi /etc/my.cnf

Sota les tres línies de la part superior:

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

Afegeix les sis línies següents:

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

Avís: heu d'establir una mida adequada del grup de memòria intermèdia Innodb segons la mida específica del vostre servidor. Normalment, la mida de l'agrupació de memòria intermèdia d'Innodb hauria de ser al voltant del 40% de la quantitat de memòria de la vostra màquina. Per exemple, si utilitzeu una màquina amb memòria 4G, la mida raonable del grup de memòria intermèdia Innodb seria de 1600 M. En cas que utilitzeu una màquina amb poca memòria (com ara 768M), potser haureu d'assignar una mida inferior al 40% de la quantitat de memòria de la vostra màquina (per exemple, 220M) per estalviar més memòria per al sistema.

Desa i surt:

:wq

Reinicieu el servei MariaDB:

sudo systemctl restart mariadb.service

Finalment, executeu l'ordre següent:

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

Feu clic al botó "Recarrega la pàgina" per examinar els vostres esforços.

Problema 11: instal·leu Pygments per millorar el ressaltat sintaxi

A CentOS 7, Pygments s'ha instal·lat però no s'ha habilitat de manera predeterminada, cal que l'habiliteu manualment:

Feu clic a l'enllaç: Editeu "pygments.enabled", trieu "Utilitza Pygments" al menú desplegable "Valor de la base de dades" i, a continuació, feu clic al botó "Desa l'entrada de configuració".

Problema 12: la zona horària del servidor no està configurada

Modifica el php.inifitxer:

sudo vi /etc/php.ini

Substitueix la línia:

;date.timezone =

Amb:

date.timezone = America/Los_Angeles

Desa i surt:

:wq

Nota: "Amèrica / Los_Angeles" és el valor de zona horària de la meva màquina, cal trobar el valor de zona horària corresponent a la seva pròpia instància de servidor aquí .

Reinicieu el servei Apache:

sudo systemctl restart httpd.service

Feu clic al botó "Recarrega la pàgina" per examinar el resultat.

Problema 13: emmagatzematge de fitxers grans no configurat

Heu de desplegar una solució adequada d'emmagatzematge de fitxers grans segons la vostra pròpia configuració. De moment, podeu fer clic al botó "Ignora el problema de configuració" per saltar-lo.

Problema 14: domini de fitxers alternatiu no configurat

Suposem que heu configurat un domini de fitxer alternatiu o un CDN i, a continuació, al terminal SSH:

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

Feu clic al botó "Recarrega la pàgina" per examinar el resultat.

Problema 15: Falta la ruta local del repositori

Utilitzeu les ordres següents per resoldre aquest problema:

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

Feu clic al botó "Recarrega la pàgina" per examinar el resultat.

Problema 16: l'extensió PHP 'APC' no està instal·lada

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

Durant el procés d'instal·lació d'APC, premeu sempre Intro per utilitzar l'opció predeterminada.

sudo vi /etc/php.ini

Afegiu les quatre línies al final del fitxer:

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

Desa i surt:

:wq

Reinicieu el servei Apache:

sudo systemctl restart httpd.service

Feu clic al botó "Recarrega la pàgina" per comprovar el resultat.

Això és tot. Feliç codificació!

Deixa un comentari

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació