Προαπαιτούμενα
Βήμα 1: Ενημέρωση συστήματος
Βήμα 2: Εγκαταστήστε το MariaDB
Βήμα 3: Εγκαταστήστε το Apache
Βήμα 4: Εγκαταστήστε την PHP
Βήμα 5: Εγκαταστήστε το git
Βήμα 6: Λήψη και εγκατάσταση του Phabricator
Βήμα 7: Ρυθμίστε έναν εικονικό κεντρικό υπολογιστή για το Phabricator
Βήμα 8: Ρυθμίστε τα διαπιστευτήρια MariaDB για το Phabricator
Βήμα 9: Τροποποιήστε τους κανόνες του τείχους προστασίας και ρυθμίστε έναν λογαριασμό διαχειριστή Phabricator
Βήμα 10: Διορθώστε ανεπίλυτα ζητήματα εγκατάστασης
Το Phabricator είναι μια προηγμένη πλατφόρμα ανάπτυξης λογισμικού ανοιχτού κώδικα που μπορεί να χρησιμοποιηθεί για:
- Κωδικός ελέγχου και ελέγχου.
- Host Git/Hg/SVN repos.
- Παρακολούθηση σφαλμάτων.
- Διαχείριση έργων.
- Επικοινωνήστε με τα μέλη της ομάδας.
- Και κάνε πολλά περισσότερα!
Χάρη στις άφθονες δυνατότητες και την εξαιρετική του απόδοση, το 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: Διορθώστε ανεπίλυτα ζητήματα εγκατάστασης
Για να μπορέσετε να χρησιμοποιήσετε το Phabricator με ηρεμία, πρέπει να διορθώσετε αρκετά προβλήματα εγκατάστασης. Ο αριθμός των προβλημάτων εγκατάστασης ποικίλλει, στην περίπτωσή μου ήταν 16. Ας τα λύσουμε ένα προς ένα.
Θέμα 1: Το βασικό URI δεν έχει διαμορφωθεί
Κάντε κλικ στο σύνδεσμο "Base URI Not Configured" για να μεταβείτε στη σελίδα λεπτομερειών του ζητήματος, όπου μπορείτε να μάθετε περισσότερα σχετικά με αυτό το ζήτημα.
Για να επιλύσετε αυτό το ζήτημα, πρέπει να εκτελέσετε τις ακόλουθες εντολές στο τερματικό SSH. Βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή διεύθυνση IP.
cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set phabricator.base-uri 'http://<your-Vultr-server-IP>'
Στη συνέχεια, στο πρόγραμμα περιήγησής σας, κάντε κλικ στο κουμπί "Επαναφόρτωση σελίδας" στη σελίδα λεπτομερειών του ζητήματος. Εάν η επισκευή σας λειτούργησε, το κείμενο στη σελίδα θα γίνει "Το ζήτημα επιλύθηκε". Κάντε κλικ στο σύνδεσμο "Επιστροφή στην Ανοιχτή λίστα ζητημάτων" για να διερευνήσετε άλλα ζητήματα.
Θέμα 2: Δεν έχουν διαμορφωθεί πάροχοι ελέγχου ταυτότητας
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
Κάντε κλικ στο σύνδεσμο "Phabricator Daemons Are Not Running" για να εισέλθετε στη σελίδα λεπτομερειών.
Για να επιλύσετε αυτό το ζήτημα, εκτελέστε την παρακάτω εντολή στο τερματικό SSH:
cd /var/www/html/phabricator/phabricator/
./bin/phd start
Κάντε κλικ στο κουμπί "Επαναφόρτωση σελίδας" για να επιβεβαιώσετε το αποτέλεσμα.
Θέμα 4: Η PHP post_max_sizeδεν έχει ρυθμιστεί
Εκτελέστε τις ακόλουθες εντολές στο τερματικό SSH για να διορθώσετε αυτό το πρόβλημα:
sudo sed -i "s/post_max_size = 8M/post_max_size = 32M/" /etc/php.ini
sudo systemctl restart httpd.service
Κάντε κλικ στο κουμπί "Επαναφόρτωση σελίδας" για να επιβεβαιώσετε τις τροποποιήσεις σας.
Τεύχος 5-10: Ζητήματα που σχετίζονται με τη MySQL
Υπάρχουν έξι ζητήματα που σχετίζονται με τη MySQL συνολικά:
- Μικρό MySQL "μέγιστο επιτρεπόμενο πακέτο"
- MySQL STRICT ALL TABLES Η λειτουργία δεν έχει οριστεί
- Η MySQL χρησιμοποιεί το προεπιλεγμένο αρχείο ενδιάμεσων λέξεων
- Η MySQL χρησιμοποιεί το προεπιλεγμένο ελάχιστο μήκος λέξεων
- Η MySQL χρησιμοποιεί την προεπιλεγμένη δυαδική σύνταξη
- Η MySQL μπορεί να εκτελείται αργά
Για λόγους ευκολίας, ας τα φτιάξουμε σε μία παρτίδα.
Στο τερματικό 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
Προειδοποίηση: Πρέπει να ορίσετε ένα κατάλληλο μέγεθος χώρου αποθήκευσης buffer Innodb σύμφωνα με το συγκεκριμένο μέγεθος διακομιστή σας. Συνήθως, το μέγεθος του χώρου αποθήκευσης buffer Innodb θα πρέπει να είναι περίπου το 40% της ποσότητας της μνήμης του μηχανήματός σας. Για παράδειγμα, εάν χρησιμοποιείτε μηχάνημα με μνήμη 4G, το λογικό μέγεθος πισίνας buffer 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
Σημείωση: "America/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
Κάντε κλικ στο κουμπί "Επαναφόρτωση σελίδας" για να ελέγξετε το αποτέλεσμα.
Αυτό είναι όλο. Καλή κωδικοποίηση!