Kako namestiti in konfigurirati Phabricator na CentOS 7

Phabricator je napredna odprtokodna razvojna platforma programske opreme, ki se lahko uporablja za:

  • Pregledna in revizijska koda.
  • Host Git/Hg/SVN repo.
  • Sledite napakam.
  • Upravljajte projekte.
  • Komunicirajte s člani ekipe.
  • In naredite še veliko več!

Zahvaljujoč svojim bogatim funkcijam in izjemni zmogljivosti, Phabricator postaja vse bolj priljubljen v skupnosti odprtokodne programske opreme.

V tem članku vam bom pokazal, kako namestiti Phabricator na primerek strežnika Vultr CentOS 7.

Predpogoji

  • Namestite primerek strežnika Vultr CentOS 7 iz nič;
  • Prijavite se s terminala SSH z nekorenskim uporabnikom sudo.

1. korak: posodobitev sistema

Posodobite svoj sistem CentOS 7 in ga znova zaženite:

yum update -y && shutdown -r now

Ko se sistem zažene, se prijavite kot nekorenski uporabnik z dostopom sudo.

2. korak: Namestite MariaDB

Namestite strežnik MariaDB:

sudo yum install mariadb mariadb-server

Zaženite in omogočite storitev MariaDB:

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

Za varnostne namene zaženite pripomoček za varno namestitev MySQL:

sudo /usr/bin/mysql_secure_installation

Ta postopek zaključite v skladu s spodnjimi navodili:

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

3. korak: Namestite Apache

Namestite spletni strežnik Apache s pomočjo YUM:

sudo yum install httpd

Spremenite privzeto konfiguracijo, da povečate varnost:

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

Zaženite in omogočite storitev Apache:

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

4. korak: Namestite PHP

Namesti PHP in potrebne razširitve:

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

5. korak: Namestite git

sudo yum install git

6. korak: Prenesite in namestite 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

7. korak: Nastavite navideznega gostitelja za Phabricator

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

Izpolnite naslednji segment kode:

Opomba: zamenjati morate admin@example.com, phabricator.example.com, www.phabricator.example.com, /var/log/httpd/phabricator.example.com-error_log, in /var/log/httpd/phabricator.example.com-access_logz lastnimi vrednostmi.

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

Shrani in zapusti:

:wq

Znova zaženite storitev Apache, da bodo vaše spremembe začele veljati:

sudo systemctl restart httpd.service

8. korak: Nastavite poverilnice MariaDB za Phabricator

Preden lahko uporabite Phabricator, morate nastaviti poverilnice 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>

Napolnite sheme Phabricator:

./bin/storage upgrade

Med tem postopkom morate dvakrat vnesti "y":

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

9. korak: Spremenite pravila požarnega zidu in nastavite skrbniški račun Phabricator

Dovoliti morate vhodni promet na privzetih vratih HTTP 80:

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

Nato s spletnim brskalnikom obiščite:

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

Predstavljena vam bo spletna stran za registracijo Phabricator. Ustvarite skrbniški račun za dnevno upravljanje.

Zdaj pa si poglejmo, kako konfigurirati Phabricator.

10. korak: Odpravite nerešene težave z nastavitvijo

Preden lahko mirno uporabljate Phabricator, morate odpraviti več težav z nastavitvijo. Število težav pri nastavitvi je različno, v mojem primeru jih je bilo 16. Rešimo jih enega za drugim.

1. težava: Osnovni URI ni konfiguriran

Kliknite povezavo »Osnovni URI ni konfiguriran«, da odprete stran s podrobnostmi o težavi, na kateri lahko izveste več o tej težavi.

Če želite odpraviti to težavo, morate na terminalu SSH izvesti naslednje ukaze. Prepričajte se, da uporabljate ustrezen naslov IP.

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

Nato v spletnem brskalniku kliknite gumb »Znova naloži stran« na strani s podrobnostmi o težavi. Če je vaše popravilo uspelo, bo besedilo na strani postalo »Težava rešena«. Kliknite povezavo »Nazaj na odprt seznam težav«, da raziščete druge težave.

2. težava: ni konfiguriran noben ponudnik preverjanja pristnosti

Kliknite povezavo »Ni konfiguriranih ponudnikov preverjanja pristnosti«, da odprete stran s podrobnostmi o težavi.

Če želite odpraviti to težavo, morate določiti ponudnika preverjanja pristnosti.

Kliknite povezavo "Avth Application" in nato gumb "+ Add Provider", da pridete na stran "Add Auth Provider". Izberite ustreznega ponudnika preverjanja pristnosti in kliknite gumb »Nadaljuj«. Tukaj sem izbral "Uporabniško ime/geslo".

Na strani »Dodaj ponudnika avtorizacije: uporabniško ime/geslo« si lahko ogledate podrobnejše nastavitve, nato pa kliknete gumb »Dodaj ponudnika«.

Na enak način lahko dodate več ponudnikov preverjanja pristnosti, vendar zaenkrat kliknite povezavo »Imate X nerešenih težav z nastavitvijo ...«, da odpravite druge težave.

3. težava: Demoni Phabricatorja ne delujejo

Kliknite povezavo »Demoni Phabricator ne delujejo«, da odprete stran s podrobnostmi.

Če želite rešiti to težavo, zaženite spodnji ukaz na vašem terminalu SSH:

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

Kliknite gumb »Ponovno naloži stran«, da potrdite rezultat.

4. težava: PHP post_max_sizeni konfiguriran

Zaženite naslednje ukaze na terminalu SSH, da odpravite to težavo:

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

Kliknite gumb »Znova naloži stran«, da potrdite svoje spremembe.

Vprašanje 5-10: Težave, povezane z MySQL

Skupno je šest težav, povezanih z MySQL:

  • Majhen MySQL "največji dovoljeni paket"
  • Način MySQL STRICT ALL TABLES ni nastavljen
  • MySQL uporablja privzeto datoteko za zaustavitev
  • MySQL uporablja privzeto najmanjšo dolžino besede
  • MySQL uporablja privzeto logično sintakso
  • MySQL lahko deluje počasi

Zaradi udobja jih popravimo v eni seriji.

Na vašem terminalu SSH uredite konfiguracijsko datoteko MySQL z vi:

sudo vi /etc/my.cnf

Pod tremi vrsticami na vrhu:

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

Dodajte naslednjih šest vrstic:

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

Opozorilo: Nastaviti morate ustrezno velikost medpomnilnika Innodb glede na velikost vašega strežnika. Običajno mora biti velikost medpomnilnika Innodb približno 40 % količine pomnilnika vašega računalnika. Na primer, če uporabljate napravo s pomnilnikom 4G, bi bila razumna velikost medpomnilnika Innodb 1600M. V primeru, da uporabljate napravo z malo pomnilnika (na primer 768M), boste morda morali dodeliti velikost, manjšo od 40 % količine pomnilnika vaše naprave (recimo 220M), da prihranite več pomnilnika za sistem.

Shrani in zapusti:

:wq

Znova zaženite storitev MariaDB:

sudo systemctl restart mariadb.service

Na koncu zaženite naslednji ukaz:

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

Kliknite gumb »Znova naloži stran«, da preverite svoja prizadevanja.

11. težava: Namestite Pygments za izboljšanje poudarjanja sintakse

V CentOS 7 je bil Pygments nameščen, vendar privzeto ni omogočen, omogočite ga morate ročno:

Kliknite povezavo: Uredi "pygments.enabled", v spustnem meniju "Vrednost baze podatkov" izberite "Uporabi Pygments", nato kliknite gumb "Shrani vnos konfiguracije".

12. težava: Časovni pas strežnika ni konfiguriran

Spremenite php.inidatoteko:

sudo vi /etc/php.ini

Zamenjaj vrstico:

;date.timezone =

z:

date.timezone = America/Los_Angeles

Shrani in zapusti:

:wq

Opomba: "Amerika / Los_Angeles" je časovni pas vrednost mojega stroja, morate najti ustrezen časovni pas vrednost za svoj strežnik na primer tukaj .

Znova zaženite storitev Apache:

sudo systemctl restart httpd.service

Kliknite gumb »Znova naloži stran«, da pregledate rezultat.

13. težava: velika shramba datotek ni konfigurirana

Razmestiti morate ustrezno rešitev za shranjevanje velikih datotek v skladu z lastnimi nastavitvami. Zaenkrat lahko kliknete gumb »Prezri težavo pri nastavitvi«, da preskočite.

14. težava: nadomestna domena datoteke ni konfigurirana

Recimo, da ste nastavili nadomestno datotečno domeno ali CDN, nato v terminalu SSH:

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

Kliknite gumb »Znova naloži stran«, da pregledate rezultat.

15. težava: Manjka lokalna pot repozitorija

Za rešitev te težave uporabite naslednje ukaze:

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

Kliknite gumb »Znova naloži stran«, da pregledate rezultat.

16. težava: Razširitev PHP »APC« ni nameščena

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

Med postopkom namestitve APC vedno pritisnite Enter, da uporabite privzeto možnost.

sudo vi /etc/php.ini

Dodajte štiri vrstice na konec datoteke:

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

Shrani in zapusti:

:wq

Znova zaženite storitev Apache:

sudo systemctl restart httpd.service

Kliknite gumb »Znova naloži stran«, da preverite rezultat.

To je vse. Srečno kodiranje!

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več