Cara Memasang dan Mengkonfigurasi Phabricator di CentOS 7

Phabricator adalah platform pengembangan perisian sumber terbuka maju yang boleh digunakan untuk:

  • Semak dan audit kod.
  • Hos repos Git / Hg / SVN.
  • Jejak pepijat.
  • Urus projek.
  • Berkomunikasi dengan ahli pasukan.
  • Dan buat banyak lagi!

Berkat ciri dan prestasi yang luar biasa, Phabricator semakin popular di komuniti perisian sumber terbuka.

Dalam artikel ini, saya akan menunjukkan cara memasang Phabricator pada instance pelayan Vultr CentOS 7.

Prasyarat

  • Terapkan instance pelayan Vultr CentOS 7 dari awal;
  • Log masuk dari terminal SSH menggunakan pengguna sudo bukan root.

Langkah 1: Kemas kini sistem

Kemas kini sistem CentOS 7 anda, kemudian reboot:

yum update -y && shutdown -r now

Selepas sistem boot, log masuk sebagai pengguna bukan root dengan akses sudo.

Langkah 2: Pasang MariaDB

Pasang pelayan MariaDB:

sudo yum install mariadb mariadb-server

Mulakan dan aktifkan perkhidmatan MariaDB:

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

Untuk tujuan keselamatan, jalankan utiliti pemasangan selamat MySQL:

sudo /usr/bin/mysql_secure_installation

Selesaikan proses ini mengikut arahan di bawah:

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

Langkah 3: Pasang Apache

Pasang pelayan web Apache menggunakan YUM:

sudo yum install httpd

Ubah konfigurasi lalai untuk meningkatkan keselamatan:

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

Mulakan dan aktifkan perkhidmatan Apache:

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

Langkah 4: Pasang PHP

Pasang PHP dan sambungan yang diperlukan:

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

Langkah 5: Pasang git

sudo yum install git

Langkah 6: Muat turun dan pasang 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

Langkah 7: Sediakan hos maya untuk Phabricator

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

Isi segmen kod berikut:

Nota: Anda perlu menggantikan [email protected], phabricator.example.com, www.phabricator.example.com, /var/log/httpd/phabricator.example.com-error_log, dan /var/log/httpd/phabricator.example.com-access_logdengan nilai-nilai anda.

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

Simpan dan tutup:

:wq

Mulakan semula perkhidmatan Apache untuk melaksanakan pengubahsuaian anda:

sudo systemctl restart httpd.service

Langkah 8: Siapkan kelayakan MariaDB untuk Phabricator

Sebelum anda dapat menggunakan Phabricator, anda perlu menyediakan kelayakan 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>

Isi skema Phabricator:

./bin/storage upgrade

Semasa proses ini, anda perlu memasukkan "y" dua kali:

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

Langkah 9: Ubah peraturan firewall dan sediakan akaun pentadbir Phabricator

Anda perlu membenarkan lalu lintas masuk pada port HTTP lalai 80:

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

Kemudian gunakan penyemak imbas web anda untuk melawat:

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

Anda akan diberikan halaman web pendaftaran Phabricator. Buat akaun pentadbir untuk pengurusan harian.

Sekarang, mari kita lihat bagaimana mengkonfigurasi Phabricator.

Langkah 10: Selesaikan masalah persediaan yang tidak dapat diselesaikan

Sebelum anda dapat menggunakan Phabricator dengan tenang, anda harus menyelesaikan beberapa masalah persediaan. Jumlah masalah persediaan berbeza-beza, dalam kes saya, ada 16. Mari kita selesaikan satu persatu.

Isu 1: URI Asas Tidak Dikonfigurasi

Klik pautan "URI Asas Tidak Dikonfigurasi" untuk masuk ke halaman butiran masalah di mana anda dapat mengetahui lebih lanjut mengenai masalah ini.

Untuk menyelesaikan masalah ini, anda perlu melaksanakan perintah berikut di terminal SSH anda. Pastikan anda menggunakan alamat IP yang betul.

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

Kemudian di penyemak imbas web anda, klik butang "Muat Semula Halaman" di halaman butiran masalah. Sekiranya pembaikan anda berjaya, teks di halaman akan menjadi "Masalah Diselesaikan". Klik pautan "Kembali ke Open Issue List" untuk menyiasat masalah lain.

Isu 2: Tiada Penyedia Pengesahan Dikonfigurasi

Klik pautan "Penyedia Pengesahan Tanpa Pengesahan" untuk masuk ke halaman butiran masalah.

Untuk menyelesaikan masalah ini, anda perlu menentukan penyedia pengesahan.

Klik pautan "Auth Application" dan kemudian butang "+ Add Provider" untuk masuk ke halaman "Add Auth Provider". Pilih penyedia pengesahan yang sesuai, dan kemudian klik butang "Teruskan". Di sini saya memilih "Nama Pengguna / Kata Laluan".

Di halaman "Tambah Penyedia Auth: Nama Pengguna / Kata Laluan", anda boleh menyemak tetapan yang lebih terperinci, kemudian klik butang "Tambah Penyedia".

Anda boleh menambahkan lebih banyak penyedia pengesahan dengan cara yang sama, tetapi buat masa ini, klik pautan "Anda mempunyai X masalah persediaan yang tidak dapat diselesaikan ..." untuk menangani masalah lain.

Isu 3: Daemon Phabricator Tidak Berjalan

Klik pautan "Phabricator Daemons Not Running" untuk memasuki halaman butiran.

Untuk menyelesaikan masalah ini, jalankan arahan di bawah di terminal SSH anda:

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

Klik butang "Muat Semula Halaman" untuk mengesahkan hasilnya.

Isu 4: PHP post_max_sizeTidak Dikonfigurasi

Jalankan arahan berikut di terminal SSH anda untuk menyelesaikan masalah ini:

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

Klik butang "Muat Semula Halaman" untuk mengesahkan pengubahsuaian anda.

Isu 5-10: Masalah berkaitan MySQL

Terdapat enam masalah berkaitan MySQL secara keseluruhan:

  • MySQL kecil "maksimum paket yang dibenarkan "
  • MySQL STRICT ALL TABLES Mode Tidak Ditetapkan
  • MySQL Menggunakan Fail Kata Henti Lalai
  • MySQL Menggunakan Panjang Kata Minimum Lalai
  • MySQL Menggunakan Sintaks Boolean Lalai
  • MySQL Boleh Berjalan Dengan Perlahan

Untuk kemudahan, mari kita perbaiki dalam satu kumpulan.

Di terminal SSH anda, edit fail konfigurasi MySQL dengan vi:

sudo vi /etc/my.cnf

Di bawah tiga baris di bahagian atas:

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

Tambahkan enam baris di bawah:

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

Amaran: Anda perlu menetapkan ukuran kolam penyangga Innodb yang betul mengikut ukuran pelayan khusus anda. Biasanya, ukuran kolam penyangga Innodb mestilah sekitar 40% dari jumlah memori mesin anda. Sebagai contoh, jika anda menggunakan mesin dengan memori 4G, ukuran kolam penyangga Innodb yang berpatutan adalah 1600M. Sekiranya anda menggunakan mesin dengan sedikit memori (seperti 768M), anda mungkin perlu memberikan ukuran kurang dari 40% dari jumlah memori mesin anda (katakanlah 220M) untuk menyimpan lebih banyak memori untuk sistem.

Simpan dan tutup:

:wq

Mulakan semula perkhidmatan MariaDB:

sudo systemctl restart mariadb.service

Akhirnya, jalankan arahan berikut:

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

Klik butang "Muat Semula Halaman" untuk memeriksa usaha anda.

Isu 11: Pasang Pigmen untuk Meningkatkan Sorotan Sintaks

Pada CentOS 7, Pygments telah dipasang tetapi tidak diaktifkan secara lalai, anda perlu mengaktifkannya secara manual:

Klik pautan: Edit "pygments.enabled", Pilih "Use Pygments" dari menu drop-down "Database Value", kemudian klik butang "Save Config Entry".

Isu 12: Zon Waktu Pelayan Tidak Dikonfigurasi

Ubah suai php.inifail:

sudo vi /etc/php.ini

Gantikan garis:

;date.timezone =

Dengan:

date.timezone = America/Los_Angeles

Simpan dan tutup:

:wq

Catatan: "America / Los_Angeles" adalah nilai zon waktu mesin saya, anda perlu mencari nilai zon waktu yang sesuai untuk contoh pelayan anda sendiri di sini .

Mulakan semula perkhidmatan Apache:

sudo systemctl restart httpd.service

Klik butang "Muat Semula Halaman" untuk memeriksa hasilnya.

Isu 13: Penyimpanan Fail Besar Tidak Dikonfigurasi

Anda perlu menggunakan penyelesaian penyimpanan fail besar yang betul sesuai dengan tetapan anda sendiri. Buat masa ini, anda boleh mengklik butang "Abaikan Masalah Persediaan" untuk melangkau.

Isu 14: Domain Fail Alternatif Tidak Dikonfigurasi

Katakan anda telah menyediakan domain fail alternatif atau CDN, kemudian di terminal SSH:

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

Klik butang "Muat Semula Halaman" untuk memeriksa hasilnya.

Isu 15: Laluan Lokal Repositori Hilang

Gunakan arahan berikut untuk menyelesaikan masalah ini:

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

Klik butang "Muat Semula Halaman" untuk memeriksa hasilnya.

Isu 16: Pelanjutan PHP 'APC' Tidak Dipasang

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

Semasa proses pemasangan APC, selalu tekan Enter untuk menggunakan pilihan lalai.

sudo vi /etc/php.ini

Tambahkan empat baris ke hujung fail:

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

Simpan dan tutup:

:wq

Mulakan semula perkhidmatan Apache:

sudo systemctl restart httpd.service

Klik butang "Muat Semula Halaman" untuk memeriksa hasilnya.

Itu sahaja. Selamat pengekodan!



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut