Как да инсталирате и конфигурирате Phabricator на CentOS 7

Phabricator е усъвършенствана платформа за разработка на софтуер с отворен код, която може да се използва за:

  • Код за преглед и одит.
  • Хост Git/Hg/SVN репозитории.
  • Проследяване на бъгове.
  • Управлявайте проекти.
  • Общувайте с членовете на екипа.
  • И направете много повече!

Благодарение на изобилието от функции и изключителна производителност, Phabricator става все по-популярен в общността на софтуера с отворен код.

В тази статия ще ви покажа как да инсталирате Phabricator на сървърен екземпляр Vultr CentOS 7.

Предпоставки

  • Разгръщане на сървърен екземпляр Vultr CentOS 7 от нулата;
  • Влезте от SSH терминала, като използвате sudo потребител без root права.

Стъпка 1: Актуализация на системата

Актуализирайте вашата CentOS 7 система, след което рестартирайте:

yum update -y && shutdown -r now

След като системата стартира, влезте като потребител без root права с sudo достъп.

Стъпка 2: Инсталирайте MariaDB

Инсталирайте сървъра MariaDB:

sudo yum install mariadb mariadb-server

Стартирайте и активирайте услугата MariaDB:

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

От съображения за сигурност стартирайте помощната програма за защитена инсталация на MySQL:

sudo /usr/bin/mysql_secure_installation

Завършете този процес в съответствие с инструкциите по-долу:

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: Инсталирайте Apache

Инсталирайте уеб сървъра Apache с помощта на YUM:

sudo yum install httpd

Променете конфигурацията по подразбиране, за да подобрите сигурността:

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

Стартирайте и активирайте услугата Apache:

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

Стъпка 4: Инсталирайте PHP

Инсталирайте PHP и необходимите разширения:

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

Стъпка 5: Инсталирайте git

sudo yum install git

Стъпка 6: Изтеглете и инсталирайте 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: Настройте виртуален хост за Phabricator

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

Попълнете следния сегмент от кода:

Забележка: Трябва да замените [email protected], phabricator.example.com, www.phabricator.example.com, /var/log/httpd/phabricator.example.com-error_log, и /var/log/httpd/phabricator.example.com-access_logсъс свои собствени стойности.

<VirtualHost *:80>
    ServerAdmin [email protected]
    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>

Запазете и излезте:

:wq

Рестартирайте услугата Apache, за да приложите промените си:

sudo systemctl restart httpd.service

Стъпка 8: Настройте идентификационните данни на MariaDB за Phabricator

Преди да можете да използвате Phabricator, трябва да настроите идентификационните данни на 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>

Попълване на схеми на Phabricator:

./bin/storage upgrade

По време на този процес трябва да въведете "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: Променете правилата на защитната стена и настройте администраторски акаунт на Phabricator

Трябва да разрешите входящия трафик на HTTP порт 80 по подразбиране:

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

След това използвайте вашия уеб браузър, за да посетите:

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

Ще ви бъде представена уеб страницата за регистрация на Phabricator. Създайте администраторски акаунт за ежедневно управление.

Сега, нека да разгледаме как да конфигурирате Phabricator.

Стъпка 10: Поправете неразрешени проблеми с настройката

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.

На вашия SSH терминал редактирайте конфигурационния файл на MySQL с vi:

sudo vi /etc/my.cnf

Под трите реда в горната част:

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

Добавете шестте реда по-долу:

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

Предупреждение: Трябва да зададете правилен размер на буферния пул на Innodb според конкретния размер на сървъра. Обикновено размерът на буферния пул на Innodb трябва да бъде около 40% от обема на паметта на вашата машина. Например, ако използвате машина с 4G памет, разумният размер на буферния пул на Innodb ще бъде 1600M. В случай, че използвате машина с малко памет (като 768M), може да се наложи да зададете размер, по-малък от 40% от размера на паметта на вашата машина (да речем 220M), за да спестите повече памет за системата.

Запазете и излезте:

:wq

Рестартирайте услугата MariaDB:

sudo systemctl restart mariadb.service

Накрая изпълнете следната команда:

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

Щракнете върху бутона „Презареждане на страницата“, за да проверите усилията си.

Проблем 11: Инсталирайте Pygments, за да подобрите подчертаването на синтаксиса

На CentOS 7 Pygments е инсталиран, но не е активиран по подразбиране, трябва да го активирате ръчно:

Щракнете върху връзката: Редактиране на "pygments.enabled", Изберете "Използване на Pygments" от падащото меню "Стойност на базата данни", след което щракнете върху бутона "Запазване на записа в конфигурацията".

Проблем 12: Часовата зона на сървъра не е конфигурирана

Променете php.iniфайла:

sudo vi /etc/php.ini

Сменете реда:

;date.timezone =

с:

date.timezone = America/Los_Angeles

Запазете и излезте:

:wq

Забележка: "Америка / Los_Angeles" е стойността на часовата зона на моята машина, трябва да се намери подходящата часова зона стойност за вашия собствен сървър, например тук .

Рестартирайте услугата Apache:

sudo systemctl restart httpd.service

Щракнете върху бутона „Презареждане на страницата“, за да проверите резултата.

Проблем 13: Голямо хранилище за файлове не е конфигурирано

Трябва да разгърнете подходящо решение за съхранение на големи файлове според вашите собствени настройки. Засега можете да щракнете върху бутона „Игнориране на проблема с настройката“, за да пропуснете.

Проблем 14: Алтернативен файлов домейн не е конфигуриран

Да речем, че сте настроили алтернативен файлов домейн или CDN, след което в SSH терминала:

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

Щракнете върху бутона „Презареждане на страницата“, за да проверите резултата.

Проблем 15: Липсващ локален път на хранилището

Използвайте следните команди, за да разрешите този проблем:

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

Щракнете върху бутона „Презареждане на страницата“, за да проверите резултата.

Проблем 16: PHP разширението „APC“ не е инсталирано

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

По време на процеса на инсталиране на APC, винаги натискайте Enter, за да използвате опцията по подразбиране.

sudo vi /etc/php.ini

Добавете четирите реда в края на файла:

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

Запазете и излезте:

:wq

Рестартирайте услугата Apache:

sudo systemctl restart httpd.service

Щракнете върху бутона „Презареждане на страницата“, за да проверите резултата.

Това е всичко. Приятно кодиране!


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече