Απαιτήσεις
Ρύθμιση αρχείου ανταλλαγής
Εγκαταστήστε το Docker
Εγκαταστήστε το Discourse
Διαμόρφωση του Λόγου
Εκκινήστε και ξεκινήστε το Discourse
Ανοίξτε το Discourse στο πρόγραμμα περιήγησής σας
Αντιμετώπιση προβλημάτων
Το Discourse είναι μια νέα λύση φόρουμ ανοιχτού κώδικα που είναι απλή, καθαρή και απλή. Υλοποιείται με το Ruby on Rails, μια βάση δεδομένων Postgres και μια κρυφή μνήμη διακομιστή Redis. Αυτό το σεμινάριο περιγράφει πώς να εγκαταστήσετε το Discourse σε Vultr VPS με CentOS 7.
Απαιτήσεις
- Vultr VPS με ελάχιστη μνήμη RAM 1 GB.
- Το CentOS 7 x64 είναι εγκατεστημένο στο VPS.
Ρύθμιση αρχείου ανταλλαγής
Πρέπει να ρυθμίσετε την ανταλλαγή για VPS RAM 1 GB. Εάν το VPS σας έχει περισσότερο από 1 GB RAM, μπορείτε να παραλείψετε αυτό το βήμα. Θα δημιουργήσουμε ένα αρχείο ανταλλαγής 2 GB για 1 GB RAM VPS.
Δημιουργήστε το αρχείο swap.
dd if=/dev/zero of=/swapfile bs=1M count=2048
mkswap /swapfile
chmod 600 /swapfile
Επεξεργαστείτε το fstab για να προσθέσετε το αρχείο swap στον πίνακα συστημάτων αρχείων.
Ανοίξτε το fstab με vi:
vi /etc/fstab
Προσθέστε την ακόλουθη γραμμή στο αρχείο:
/swapfile swap swap defaults 0 0
Ορίστε την πολιτική χρήσης swap. Χρησιμοποιήστε το swapfile μόνο όταν η μνήμη του συστήματος είναι χαμηλή.
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
sysctl vm.vfs_cache_pressure=60
echo vm.vfs_cache_pressure = 60 | tee -a /etc/sysctl.conf
Ενεργοποιήστε το swapfile.
mount -a
swapon -a
Ελέγξτε την κατάσταση του swapfile.
swapon -s
Εάν το swapfile έχει ενεργοποιηθεί, θα δείτε τις ακόλουθες πληροφορίες.
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
Εγκαταστήστε το Docker
Εκτελέστε την παρακάτω εντολή για να εγκαταστήσετε το Docker στο CentOS 7.
yum install docker
Εάν έχετε απενεργοποιήσει το SELinux, καλύτερα να το απενεργοποιήσετε και στο docker.
vi /etc/sysconfig/docker
Σχολιάστε τη γραμμή 4.
#OPTIONS='--selinux-enabled'
Ξεκινήστε την υπηρεσία docker.
systemctl start docker
systemctl enable docker
Λάβετε υπόψη ότι εάν κάνετε επανεκκίνηση του τείχους προστασίας, θα χρειαστείτε επίσης επανεκκίνηση του docker. Επειδή το τείχος προστασίας θα αφαιρέσει την αλυσίδα docker από τα iptables όταν γίνει επανεκκίνηση.
Εγκαταστήστε το Discourse
Δημιουργήστε ένα φάκελο με το όνομα discourseκάτω /varκαι κλωνοποιήστε το αποθετήριο Discourse.
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Μεταβείτε στο discourseφάκελο.
cd /var/discourse
Αντιγράψτε το αρχείο προτύπου διαμόρφωσης Discourse στο φάκελο κοντέινερ.
cp samples/standalone.yml containers/app.yml
Ανοίξτε το app.ymlμε vi.
vi containers/app.yml
Εάν χρησιμοποιείτε VPS 1 GB, ορίστε το κοινό buffer db ως 128 MB σε app.yml.
db_shared_buffers: "128MB"
Αλλαγή UNICORN_WORKERSσε 2 για παράδειγμα RAM 1 GB.
## With 2GB we recommend 3-4 workers, with 1GB only 2
UNICORN_WORKERS: 2
Ορίστε τη διεύθυνση email σας για τον λογαριασμό διαχειριστή. Θα χρειαστείτε αυτό το email για να εγγραφείτε στον λογαριασμό διαχειριστή στο φόρουμ Discourse σας.
DISCOURSE_DEVELOPER_EMAILS: 'you@youremail.com'
Ορίστε το όνομα τομέα για το Discourse. Για παράδειγμα, το ορίσαμε ως discourse.example.com, που σημαίνει ότι θα ήταν προσβάσιμο στη διεύθυνση URL http://discourse.example.com/.
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
Διαμορφώστε τον διακομιστή αλληλογραφίας σας για Discourse.
Εάν ο διακομιστής αλληλογραφίας σας βρίσκεται στον ίδιο διακομιστή με το Discourse, διαμορφώστε τον ως εξής.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: YOUR_EMAIL_ACCOUNT # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: flase # (optional, default true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Εάν χρησιμοποιείτε απομακρυσμένο διακομιστή SMTP, επεξεργαστείτε το app.ymlως εξής.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: your@example.com # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
Αποθήκευση και έξοδος app.yml.
Εκκινήστε και ξεκινήστε το Discourse
Εκτελέστε την παρακάτω εντολή για να κάνετε bootstrap το Discourse.
./launcher bootstrap app
Αφού ολοκληρωθεί η διαδικασία εκκίνησης, ξεκινήστε το Discourse.
./launcher start app
Ανοίξτε το Discourse στο πρόγραμμα περιήγησής σας
Στον υπολογιστή-πελάτη σας, εισαγάγετε το όνομα τομέα που ρυθμίσατε για το Discourse in app.yml. Θα δείτε το δικό σας παράδειγμα Discourse.
Αντιμετώπιση προβλημάτων
- Από προεπιλογή, το Docker θα ακούει στη θύρα 80. Εάν η θύρα 80 έχει χρησιμοποιηθεί ήδη από το Nginx ή τον Apache, πρέπει να μετακινήσετε αυτήν την υπηρεσία σε άλλη θύρα. ή αλλάξτε το Docker σε άλλη θύρα. Για παράδειγμα, αλλάξτε το "80:80" σε "8080:80" για
app.ymlνα κάνετε το Docker να ακούει στη θύρα 8080.
- Στο VPS RAM 1 GB, ενδέχεται να αποτύχει η ενημέρωση του Discourse στη νέα έκδοση και θα δείτε μια "502 Bad Gateway" κατά την πρόσβαση στο Discourse. Η απλή λύση για αυτό το ζήτημα είναι να τρέξετε
./launcher rebuild appγια να δημιουργήσετε ξανά το στιγμιότυπο Discourse.