Requisits previs
Pas 1: actualització del sistema
Pas 2: instal·leu MariaDB
Pas 3: instal·leu Apache
Pas 4: instal·leu PHP
Pas 5: instal·leu git
Pas 6: Baixeu i instal·leu Phabricator
Pas 7: configureu un host virtual per a Phabricator
Pas 8: configureu les credencials de MariaDB per a Phabricator
Pas 9: modifiqueu les regles del tallafoc i configureu un compte d'administrador de Phabricator
Pas 10: solucioneu els problemes de configuració no resolts
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ó!