Forutsetninger
Trinn 1: Systemoppdatering
Trinn 2: Installer MariaDB
Trinn 3: Installer Apache
Trinn 4: Installer PHP
Trinn 5: Installer git
Trinn 6: Last ned og installer Phabricator
Trinn 7: Sett opp en virtuell vert for Phabricator
Trinn 8: Konfigurer MariaDB-legitimasjonen for Phabricator
Trinn 9: Endre brannmurregler og konfigurer en Phabricator-administratorkonto
Trinn 10: Løs uløste oppsettsproblemer
Phabricator er en avansert åpen kildekode-programvareutviklingsplattform som kan brukes til å:
- Gjennomgang og revisjonskode.
- Host Git/Hg/SVN-repos.
- Spor feil.
- Administrere prosjekter.
- Kommuniser med teammedlemmer.
- Og gjør mye mer!
Takket være dens rikelige funksjoner og eksepsjonelle ytelse, blir Phabricator mer og mer populær i åpen kildekode-programvaresamfunnet.
I denne artikkelen vil jeg vise deg hvordan du installerer Phabricator på en Vultr CentOS 7-serverforekomst.
Forutsetninger
- Distribuer en Vultr CentOS 7-serverforekomst fra bunnen av;
- Logg på fra SSH-terminalen med en ikke-root sudo-bruker.
Trinn 1: Systemoppdatering
Oppdater CentOS 7-systemet, og start deretter på nytt:
yum update -y && shutdown -r now
Etter at systemet har startet, logger du på som en ikke-rootbruker med sudo-tilgang.
Trinn 2: Installer MariaDB
Installer MariaDB-serveren:
sudo yum install mariadb mariadb-server
Start og aktiver MariaDB-tjenesten:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Av sikkerhetshensyn, kjør MySQL sikker installasjonsverktøy:
sudo /usr/bin/mysql_secure_installation
Fullfør denne prosessen i samsvar med instruksjonene nedenfor:
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
Trinn 3: Installer Apache
Installer Apache-nettserveren med YUM:
sudo yum install httpd
Endre standardkonfigurasjonen for å øke sikkerheten:
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
Start og aktiver Apache-tjenesten:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Trinn 4: Installer PHP
Installer PHP og nødvendige utvidelser:
sudo yum install php php-mysqli php-mbstring php-gd php-curl php-cli php-common php-process
Trinn 5: Installer git
sudo yum install git
Trinn 6: Last ned og installer 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
Trinn 7: Sett opp en virtuell vert for Phabricator
sudo vi /etc/httpd/conf.d/phabricator.conf
Fyll inn følgende kodesegment:
Merk: Du må erstatte admin@example.com, phabricator.example.com, www.phabricator.example.com, /var/log/httpd/phabricator.example.com-error_log, og /var/log/httpd/phabricator.example.com-access_logmed dine egne verdier.
<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>
Lagre og avslutt:
:wq
Start Apache-tjenesten på nytt for å sette endringene dine i kraft:
sudo systemctl restart httpd.service
Trinn 8: Konfigurer MariaDB-legitimasjonen for Phabricator
Før du kan bruke Phabricator, må du konfigurere MariaDB-legitimasjonen:
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>
Fyll ut Phabricator-opplegg:
./bin/storage upgrade
Under denne prosessen må du skrive inn "y" to ganger:
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
Trinn 9: Endre brannmurregler og konfigurer en Phabricator-administratorkonto
Du må tillate innkommende trafikk på standard HTTP-port 80:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Bruk deretter nettleseren til å besøke:
http://<your-Vultr-server-IP>
Du vil bli presentert med Phabricator-registreringssiden. Opprett en administratorkonto for daglig ledelse.
La oss nå se på hvordan du konfigurerer Phabricator.
Trinn 10: Løs uløste oppsettsproblemer
Before you can use Phabricator with a peace of mind, you have to fix several setup issues. The number of setup issues varies, in my case, there were 16. Let's solve them one by one.
Issue 1: Base URI Not Configured
Click the "Base URI Not Configured" link to get into the issue details page in which you can learn more about this issue.
In order to fix this issue, you need to execute the following commands on your SSH terminal. Be sure to use the proper IP address.
cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set phabricator.base-uri 'http://<your-Vultr-server-IP>'
Then in your web browser, click the "Reload Page" button on the issue details page. If your repair worked, the text on the page will become "Issue Resolved". Click the "Return to Open Issue List" link to investigate other issues.
Issue 2: No Authentication Providers Configured
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
Click the "Phabricator Daemons Are Not Running" link to enter the details page.
In order to solve this issue, run the command below on your SSH terminal:
cd /var/www/html/phabricator/phabricator/
./bin/phd start
Click the "Reload Page" button to confirm the result.
Issue 4: PHP post_max_size Not Configured
Run the following commands on your SSH terminal to fix this issue:
sudo sed -i "s/post_max_size = 8M/post_max_size = 32M/" /etc/php.ini
sudo systemctl restart httpd.service
Click the "Reload Page" button to confirm your modifications.
Issue 5-10: MySQL-related issues
There are six MySQL-related issues in total:
- Small MySQL "maxallowedpacket"
- MySQL STRICTALLTABLES Mode Not Set
- MySQL is Using Default Stopword File
- MySQL is Using Default Minimum Word Length
- MySQL is Using the Default Boolean Syntax
- MySQL May Run Slowly
As a matter of convenience, let's fix them in one batch.
På SSH-terminalen din, rediger MySQL-konfigurasjonsfilen med vi:
sudo vi /etc/my.cnf
Under de tre linjene på toppen:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
Legg til de seks linjene nedenfor:
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
Advarsel: Du må angi en riktig Innodb-bufferbassengstørrelse i henhold til din spesifikke serverstørrelse. Vanligvis bør Innodb-bufferbassengstørrelsen være omtrent 40 % av mengden av maskinens minne. For eksempel, hvis du bruker en maskin med 4G-minne, vil den rimelige Innodb-bufferbassengstørrelsen være 1600M. I tilfelle du bruker en maskin med lite minne (for eksempel 768M), må du kanskje tilordne en størrelse som er mindre enn 40 % av mengden av maskinens minne (for eksempel 220M) for å spare mer minne for systemet.
Lagre og avslutt:
:wq
Start MariaDB-tjenesten på nytt:
sudo systemctl restart mariadb.service
Til slutt, kjør følgende kommando:
mysql -u root -p -e "REPAIR TABLE phabricator_search.search_documentfield"
Klikk på "Last inn siden på nytt"-knappen for å undersøke innsatsen din.
Utgave 11: Installer Pygments for å forbedre syntaksutheving
På CentOS 7 har Pygments blitt installert, men ikke aktivert som standard, du må aktivere det manuelt:
Klikk på lenken: Rediger "pygments.enabled", velg "Bruk pygmenter" fra rullegardinmenyen "Databaseverdi", og klikk deretter på "Lagre konfigurasjonsoppføring"-knappen.
Problem 12: Servertidssone ikke konfigurert
Endre php.inifilen:
sudo vi /etc/php.ini
Bytt ut linjen:
;date.timezone =
Med:
date.timezone = America/Los_Angeles
Lagre og avslutt:
:wq
Merk: "America/Los_Angeles" er tidssoneverdien til maskinen min, du må finne riktig tidssoneverdi for din egen serverforekomst her .
Start Apache-tjenesten på nytt:
sudo systemctl restart httpd.service
Klikk på "Last inn siden på nytt"-knappen for å undersøke resultatet.
Problem 13: Stor fillagring ikke konfigurert
Du må distribuere en skikkelig lagringsløsning for store filer i henhold til dine egne innstillinger. For nå kan du klikke på "Ignorer oppsettproblem"-knappen for å hoppe over.
Problem 14: Alternativt fildomene ikke konfigurert
La oss si at du har satt opp et alternativt fildomene eller et CDN, og deretter i SSH-terminalen:
cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set security.alternate-file-domain <https://files.example.com>
Klikk på "Last inn siden på nytt"-knappen for å undersøke resultatet.
Utgave 15: Manglende lokal bane for depot
Bruk følgende kommandoer for å løse dette problemet:
sudo mkdir /var/repo
sudo chown apache: /var/repo
Klikk på "Last inn siden på nytt"-knappen for å undersøke resultatet.
Problem 16: PHP-utvidelsen 'APC' ikke installert
sudo yum install php-pear php-devel httpd-devel pcre-devel gcc make
sudo pecl install apc
Under installasjonsprosessen av APC, trykk alltid Enter for å bruke standardalternativet.
sudo vi /etc/php.ini
Legg til de fire linjene på slutten av filen:
extension=apc.so
apc.write_lock = On
apc.slam_defense = Off
apc.stat = Off
Lagre og avslutt:
:wq
Start Apache-tjenesten på nytt:
sudo systemctl restart httpd.service
Klikk på "Last inn siden på nytt"-knappen for å sjekke resultatet.
Det er alt. Lykke til med koding!