Как да инсталирате и конфигурирате 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

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

Забележка: Трябва да замените admin@example.com, 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 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>

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

: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

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

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

Оставете коментар

Възходът на машините: Реални приложения на 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 машини. Прочетете тази статия, за да научите повече