GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal Perangkat Lunak Forum Wacana di Ubuntu 18.04 Tanpa Docker

Tutorial ini akan menunjukkan cara menginstal Discourse di server Ubuntu 18.04. Dibuat oleh pendiri StackExchange Jeff Atwood, Discourse adalah forum Internet open source (alias papan pesan online) dan perangkat lunak manajemen milis, dengan tujuan merevolusi diskusi forum. Ini ditulis dengan Ember.js dan Ruby on Rails, menggunakan PostgreSQL sebagai sistem manajemen database back-end.

Fitur Wacana

  • Pengguliran tanpa batas. Tidak ada halaman berikutnya di utas. Cukup gulir ke bawah untuk membaca lebih lanjut.
  • pembaruan langsung, seret dan lepas lampiran.
  • Utas forum dapat diberi peringkat berdasarkan popularitas.
  • Tampilan "utas terbaik" dapat menampilkan balasan terbaik untuk rangkaian pesan tertentu.
  • Kemampuan untuk mengingat di mana Anda membaca dalam sebuah utas.
  • Memperluas URL untuk memberikan ringkasan URL.
  • Pengguna dapat membalas melalui email.
  • Sistem penandaan secara otomatis menyembunyikan postingan yang tidak pantas hingga dapat ditinjau oleh anggota staf.
  • Moderator dapat membagi, menggabungkan, melokalkan, atau mengarsipkan topik apa pun.
  • Berdasarkan tingkat kepercayaan, pengguna dapat dipromosikan sebagai moderator, atau diturunkan pangkatnya sebagai troll, aktor jahat, atau spammer untuk menjaga forum tetap beradab. Perlindungan dan heuristik spam Akismet bawaan termasuk sandboxing pengguna baru, pemblokiran bendera pengguna, dan nofollow standar.
  • Sistem lencana dapat menunjukkan apa yang telah dicapai pengguna.
  • Desain web responsif dan mobile-friendly. Pengguna dapat membaca atau memposting dari laptop, tablet, dan ponsel.
  • 100% sumber terbuka gratis. Tidak ada versi komersial berbayar dengan fitur yang lebih baik atau lebih lengkap.
  • Sistem masuk tunggal. Integrasikan Wacana dengan sistem login situs Anda yang sudah ada.
  • Login sosial. Mudah menambahkan login sosial umum seperti Google, Facebook, Twitter, dll.
  • Aplikasi iOS dan Android tersedia.
  • Tersedia dalam lebih dari 30 bahasa.
  • Autentikasi dua faktor untuk meningkatkan keamanan akun.
  • Dan masih banyak lagi.

Prasyarat Menginstal Wacana di Ubuntu 18.04 Tanpa Docker

Metode resmi untuk menginstal Discourse adalah dengan Docker, yang sangat bagus untuk mereka yang ingin menjalankan dan menjalankan aplikasi dengan cepat. Tapi Docker juga haus sumber daya. Coba pikirkan:Jika Anda telah menjalankan dan menjalankan beberapa komponen seperti server database PostgreSQL, metode Docker akan tetap menjalankan database PostgreSQL terpisah di dalam wadah, yang merupakan pemborosan sumber daya server. Anda memerlukan server RAM 2GB untuk menjalankan Discourse dengan Docker. Saya akan menunjukkan cara menjalankan Discourse di server RAM 1GB tanpa buruh pelabuhan.

Untuk menjalankan Discourse, Anda memerlukan server dengan setidaknya 1GB RAM. Anda dapat mengklik tautan rujukan ini untuk membuat akun di Vultr untuk mendapatkan kredit gratis $50 (hanya untuk pengguna baru). Setelah Anda memiliki akun di Vultr, instal Ubuntu 18.04 di server Anda dan ikuti petunjuk di bawah ini.

Anda juga memerlukan nama domain. Saya mendaftarkan nama domain saya di NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

Pemberitahuan :Saya menginstal Wacana dengan pengguna Sudo di Ubuntu 18.04. Untuk hasil terbaik, Anda juga harus mengikuti tutorial ini dengan pengguna sudo, bukan root.

Untuk menambahkan pengguna sudo, cukup jalankan

sudo adduser username
sudo adduser username sudo

Kemudian beralih ke pengguna baru.

su - username

Langkah 1:Konfigurasikan Server Database PostgreSQL

Masuk ke server Anda melalui SSH, lalu jalankan perintah berikut untuk menginstal PostgreSQL dari repositori perangkat lunak default Ubuntu.

sudo apt install postgresql

Server database PostgreSQL akan secara otomatis memulai dan mendengarkan 127.0.0.1:5432 , seperti yang dapat dilihat dengan perintah berikut. (Jika server Ubuntu Anda tidak memiliki netstat perintah, Anda dapat menjalankan sudo apt install net-tools perintah untuk menginstalnya.)

sudo netstat -lnpt | grep postgres

Jika Anda tidak melihat output apa pun dari perintah di atas, mungkin karena server PostgreSQL tidak berjalan. Anda dapat memulai server PostgreSQL dengan mengeluarkan perintah berikut.

sudo systemctl start postgresql

postgres pengguna akan dibuat di OS selama proses instalasi. Ini adalah pengguna super untuk server database PostgreSQL. Secara default, pengguna ini tidak memiliki kata sandi dan tidak perlu menyetelnya karena Anda dapat menggunakan sudo untuk beralih ke postgres pengguna dan masuk ke konsol PostgreSQL.

sudo -u postgres psql

Buat database untuk Wacana.

CREATE DATABASE discourse;

Buat pengguna basis data.

CREATE USER discourse_user;

Tetapkan kata sandi untuk pengguna ini.

ALTER USER discourse_user WITH ENCRYPTED PASSWORD 'your_preferred_password';

Tetapkan pengguna ini sebagai pemilik basis data wacana.

ALTER DATABASE discourse OWNER TO discourse_user;

Hubungkan ke database wacana.

\c discourse;

Buat hstore dan pg_trgm ekstensi.

CREATE EXTENSION hstore;

CREATE EXTENSION pg_trgm;

Keluar dari konsol PostgreSQL.

\q

Langkah 2:Instal Ruby di Ubuntu 18.04

Wacana membutuhkan Ruby 2.7 atau lebih tinggi. Namun, repositori Ubuntu 18.04 hadir dengan Ruby 2.5.1. Versi terbaru Ruby adalah 3.0.1. Namun, saya tidak menyarankan menggunakan versi terbaru, karena mungkin tidak kompatibel dengan Discourse. Untuk kompatibilitas terbaik, saya sarankan menginstal Ruby 2.7 dari PPA.

sudo apt install software-properties-common

sudo apt-add-repository ppa:brightbox/ruby-ng

sudo apt install ruby2.7

Untuk memeriksa nomor versi Ruby Anda, jalankan

ruby -v

Keluaran:

ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux-gnu]

Langkah 3:Unduh dan Konfigurasi Wacana

Instal alat git.

sudo apt install git

Dengan asumsi Anda berada di direktori home Anda, jalankan perintah berikut untuk mengkloning repositori kode Wacana dari Github.

git clone https://github.com/discourse/discourse.git

Buat direktori /var/www/, jika belum dibuat.

sudo mkdir /var/www/

Pindahkan direktori wacana ke /var/www/ .

sudo mv discourse/ /var/www/

Ubah direktori dan gunakan rilis stabil terbaru dari Wacana. Anda dapat membuka halaman rilis Github untuk melihat versi stabil terbaru. Saya sekarang menggunakan v2.5.0.

cd /var/www/discourse/

git checkout v2.5.0

Instal bundler:pengelola ketergantungan Ruby.

sudo /usr/bin/gem install bundler

Instal paket berikut untuk mengkompilasi kode sumber.

sudo apt-get install gcc build-essential ruby2.7-dev libxslt-dev libxml2-dev zlib1g-dev libpq-dev imagemagick

Kemudian instal dependensi Wacana. Proses ini dapat menggunakan banyak RAM.

RAILS_ENV=production /usr/local/bin/bundle config set path '/var/www/discourse/vendor/bundle/'
RAILS_ENV=production /usr/local/bin/bundle install

Salin file konfigurasi default ke file baru.

cp config/discourse_defaults.conf config/discourse.conf

Edit file baru.

nano config/discourse.conf

Konfigurasikan koneksi database.

# host address for db server
# This is set to blank so it tries to use sockets first
db_host = localhost

# port running db server, no need to set it
db_port = 5432

# database name running discourse
db_name = discourse

# username accessing database
db_username = discourse_user

# password used to access the db
db_password = your_password

Ubah nama domain yang digunakan dengan forum Wacana Anda.

# hostname running the forum
hostname = "community.example.com"

Simpan dan tutup file.

Langkah 4:Dapatkan Kunci Lisensi MaxMind Gratis

Wacana dilengkapi dengan alat analisis web bawaan. Jika Anda ingin mengetahui informasi geografis pengunjung Anda, Anda memerlukan kunci lisensi MaxMind.

Buat akun di MaxMind. Maxmind akan mengirimi Anda email. Klik tautan di email untuk mengatur kata sandi, lalu masuk ke akun MaxMind Anda. Selanjutnya, pilih My License Key di bilah kiri.

Klik Buat Kunci Lisensi Baru tombol.

Beri nama kunci lisensi Anda. Kemudian pilih No , karena kita tidak perlu menggunakan geoipupdate program. Kemudian klik tombol Confirm tombol.

Setelah kunci lisensi dibuat, salin kunci lisensi. Buka file konfigurasi Wacana.

nano config/discourse.conf

Temukan baris berikut dan tambahkan kunci lisensi Anda di sini.

maxmind_license_key=

Simpan dan tutup file.

Langkah 5:Mulai Wacana

Instal paket yang diperlukan.

sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs npm

sudo npm install -g svgo

Edit file konfigurasi lingkungan produksi.

nano /var/www/discourse/config/environments/production.rb

Tambahkan kode berikut sebagai baris kelima.

require 'uglifier'

Kemudian temukan baris berikut.

config.assets.js_compressor = :uglifier

Ganti dengan:

config.assets.js_compressor = Uglifier.new(:harmony => true)

Simpan dan tutup file. Kemudian jalankan perintah berikut untuk menginisialisasi database. Jika Anda melihat kesalahan selama langkah ini, jalankan kembali perintah tersebut.

RAILS_ENV=production /usr/local/bin/bundle exec rake db:migrate

Selanjutnya, kita akan mengkompilasi aset statis seperti JavaScript, tetapi sebelum melakukan itu, kita perlu mengedit file.

nano /var/www/discourse/lib/tasks/assets.rake

Kita perlu menemukan baris yang mengandung brotli dan beri komentar untuk menonaktifkan kompresi Brotili, karena file JavaScript akan dikompresi dengan Gzip. Jika kompresi Gzip dan Brotili keduanya diaktifkan, akan ada beberapa kesalahan yang mengganggu saat kami mengkompilasi aset. Temukan baris berikut (baris 281) dan beri komentar.

brotli(path, max_compress)

Simpan dan tutup file. Selanjutnya, jalankan perintah berikut untuk mengkompilasi aset. Proses ini dapat menggunakan banyak RAM seperti 1GB.

RAILS_ENV=production /usr/local/bin/bundle exec rake assets:precompile

Selanjutnya, edit puma.rb berkas

nano /var/www/discourse/config/puma.rb

Temukan baris berikut.

APP_ROOT = '/home/discourse/discourse'

Ubah jalur aplikasi menjadi

APP_ROOT = '/var/www/discourse'

Simpan dan tutup file. Kemudian buat soket dan direktori proses ID.

mkdir /var/www/discourse/tmp/sockets/ /var/www/discourse/tmp/pids/

Mulai Wacana.

RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rb

Contoh keluaran:

[24161] Puma starting in cluster mode...
[24161] * Version 4.3.1 (ruby 2.7.1-p146), codename: Mysterious Traveller
[24161] * Min threads: 8, max threads: 32
[24161] * Environment: development
[24161] * Process workers: 4
[24161] * Preloading application
[24161] * Listening on unix:///var/www/discourse/tmp/sockets/puma.sock
[24161] ! WARNING: Detected 4 Thread(s) started in app boot:
[24161] ! #<Thread:[email protected]/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:38 sleep_forever> - /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:40:in `pop'
[24161] ! #<Thread:[email protected]/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus.rb:667 sleep> - /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/connection/ruby.rb:68:in `select'
[24161] ! #<Thread:[email protected]/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:38 sleep> - /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:123:in `sleep'
[24161] ! #<Thread:[email protected]/discourse.rb:708 sleep> - lib/discourse.rb:711:in `sleep'
[24161] * Daemonizing...

Wacana sedang mendengarkan di soket Unix:/var/www/discourse/tmp/sockets/puma.sock .

Langkah 6:Konfigurasikan Nginx Reverse Proxy

Instal server web Nginx dari repositori perangkat lunak default Ubuntu 18.04.

sudo apt install nginx

Salin contoh file konfigurasi virtual host Nginx.

sudo cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf

Edit file baru.

sudo nano /etc/nginx/conf.d/discourse.conf

Temukan baris berikut dan beri komentar karena kita akan menggunakan Puma.

upstream discourse {
  server unix:/var/www/discourse/tmp/sockets/nginx.http.sock;
  server unix:/var/www/discourse/tmp/sockets/nginx.https.sock;
}

Temukan baris berikut dan batalkan komentarnya.

# upstream discourse {
#       server unix:/var/www/discourse/tmp/sockets/puma.sock;
# }

Temukan baris berikut.

server_name enter.your.web.hostname.here;

Ubah nama servernya. Jangan lupa untuk menambahkan DNS A record untuk nama domain.

server_name community.example.com;

Nginx secara default tidak mendukung kompresi Brotli, jadi beri komentar di baris berikut.

brotli_static on;

Simpan dan tutup file. Buat direktori cache.

sudo mkdir -p /var/nginx/cache/

Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Sekarang Anda seharusnya dapat melihat forum Wacana di http://community.example.com .

Langkah 7:Aktifkan HTTPS

Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu 18.04.

sudo apt install certbot python3-certbot-nginx

Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d community.example.com

Dimana

  • --nginx :Gunakan plugin nginx.
  • --agree-tos :Menyetujui persyaratan layanan.
  • --redirect :Memaksa HTTPS dengan pengalihan 301.
  • --hsts : Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.
  • --staple-ocsp : Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.

Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.

Dan Anda dapat mengakses forum Wacana melalui HTTPS (https://community.example.com ).

Jika Firefox menampilkan segitiga kuning di bilah alamat browser, itu karena beberapa gambar masih disajikan pada protokol HTTP. Untuk mengatasi masalah ini, Anda dapat mengedit file konfigurasi Discourse Nginx.

sudo nano /etc/nginx/conf.d/discourse.conf

Tambahkan baris berikut di blok server SSL untuk meningkatkan permintaan yang tidak aman.

add_header Content-Security-Policy upgrade-insecure-requests;

Simpan dan tutup file. Dan muat ulang Nginx.

sudo nginx -t
sudo systemctl reload nginx

Langkah 8:Buat Akun Admin

Buka direktori wacana (/var/www/discourse/ ) dan jalankan perintah berikut untuk membuat akun admin.

RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create

Anda akan diminta untuk memasukkan alamat email dan kata sandi untuk akun admin.

Setelah itu, mulai ulang Wacana.

RAILS_ENV=production /usr/local/bin/bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid restart

Sekarang segarkan halaman web Wacana dan Anda akan dapat masuk.

Jika Anda melihat error 502 bad gateway, maka perintah restart tidak berhasil, Anda harus memulai Discourse dengan:

RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rb

Setelah masuk, Anda dapat memulai wizard pengaturan. (https://community.example.com/wizard) dan ikuti petunjuk untuk menyelesaikan penginstalan. Jika Anda menggunakan Cloudflare CDN, maka Anda harus pergi ke pengaturan -> keamanan -> kebijakan keamanan konten src dan tambahkan URL ini:https://community.example.com/cdn-cgi/

Langkah 9:Konfigurasikan Layanan Pemrosesan latar belakang:Sidekiq

Sidekiq adalah penjadwal pekerjaan sumber terbuka. Banyak tugas, seperti mengirim email, dijalankan secara asinkron oleh sidekiq. Edit sidekiq.yml berkas.

nano /var/www/discourse/config/sidekiq.yml

Tambahkan baris berikut ke akhir file. Konfigurasi ini cocok untuk forum Wacana dengan aktivitas pengguna dan RAM yang rendah. Jika ada banyak aktivitas pengguna, pertimbangkan untuk menggandakan konkurensi dan jumlah antrian.

production:
  :concurrency: 2
  :queues:
    - [critical, 4]
    - [default, 2]
    - [low]
    - [ultra_low]

Simpan dan tutup file. Kemudian buat layanan Systemd untuk sidekiq.

sudo nano /etc/systemd/system/discourse-sidekiq.service

Tambahkan baris berikut dalam file. Ganti nama pengguna dengan nama pengguna asli Anda.

[Unit]
Description=Discourse sidekiq background processing service
After=multi-user.target

[Service]
Type=simple
User=username
PIDFile=/var/www/discourse/tmp/pids/sidekiq.pid
WorkingDirectory=/var/www/discourse
Environment=RAILS_ENV=production
ExecStart=/usr/local/bin/bundle exec sidekiq -C /var/www/discourse/config/sidekiq.yml
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Kemudian mulai dan aktifkan layanan ini.

sudo systemctl start discourse-sidekiq
sudo systemctl enable discourse-sidekiq

Periksa statusnya. Pastikan itu berjalan.

sudo systemctl status discourse-sidekiq

Dasbor Sidekiq tersedia di https://community.example.com/sidekiq .

Langkah 10:Buat Layanan Systemd untuk Wacana

Pertama, hentikan proses Wacana saat ini dengan

cd /var/www/discourse/
RAILS_ENV=production /usr/local/bin/bundle exec pumactl -P /var/www/discourse/tmp/pids/puma.pid stop

Kemudian edit puma.rb berkas.

nano /var/www/discourse/config/puma.rb

Beri komentar pada dua baris berikut (Tambahkan # simbol di awal setiap baris) karena Systemd akan menangani ID proses dan daemonisasi.

pidfile "#{APP_ROOT}/tmp/pids/puma.pid"

daemonize true

Selanjutnya, buat layanan Systemd untuk Wacana.

sudo nano /etc/systemd/system/discourse.service

Tambahkan baris berikut dalam file. Ganti nama pengguna dengan nama pengguna asli Anda.

[Unit]
Description=Discourse service

[Service]
Type=simple
User=username
PIDFile=/var/www/discourse/tmp/pids/puma.pid
WorkingDirectory=/var/www/discourse
Environment=RAILS_ENV=production
ExecStart=/usr/local/bin/bundle exec puma -C config/puma.rb
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Kemudian mulai dan aktifkan layanan ini.

sudo systemctl start discourse
sudo systemctl enable discourse

Periksa statusnya. Pastikan itu berjalan.

sudo systemctl status discourse

Langkah 11:Konfigurasi SMTP

Wacana perlu mengirim email agar pengunjung dapat mendaftarkan akun di forum Anda dan menerima pemberitahuan. Untuk mengedit pengaturan SMTP, buka discourse.conf berkas.

nano /var/www/discourse/config/discourse.conf

Anda dapat menemukan baris berikut untuk mengkonfigurasi server SMTP. Biasanya Anda ingin menggunakan 587 sebagai port SMTP.

# address of smtp server used to send emails
smtp_address =
# port of smtp server used to send emails
smtp_port = 25

# domain passed to smtp server
smtp_domain =

# username for smtp server
smtp_user_name =

# password for smtp server
smtp_password =

# smtp authentication mechanism
smtp_authentication = plain

# enable TLS encryption for smtp connections
smtp_enable_start_tls = true

Anda mungkin juga ingin menambahkan Dari: alamat di file ini seperti di bawah ini.

# From: address
notification_email = [email protected]

Untuk cara mengatur server email Anda sendiri, silakan lihat tutorial berikut. Catatan bahwa saya sangat merekomendasikan menjalankan server email iRedMail pada OS bersih yang baru. Menginstal iRedMail pada OS yang memiliki aplikasi web lain dapat gagal, dan kemungkinan merusak aplikasi yang ada.

  • Cara mudah menyiapkan server email berfitur lengkap di Ubuntu 18.04 dengan iRedMail

Jika Anda lebih suka menggunakan layanan relai SMTP pihak ketiga, saya merekomendasikan Sendinblue, yang memungkinkan Anda mengirim 9000 email per bulan secara gratis.

Setelah menyimpan pengaturan SMTP, mulai ulang layanan Wacana.

sudo systemctl restart discourse discourse-sidekiq

Kemudian Anda dapat menguji pengiriman email di dasbor admin Wacana Anda.

Anda dapat pergi ke mail-tester.com, yang akan memberi Anda alamat email yang unik. Kirim email percobaan dari Wacana Anda ke alamat email ini untuk mengetahui skor pengirim Anda.

Tidak Dapat Mengirim Email

Jika instance Discourse Anda tidak mengirim email dan Anda melihat pesan berikut di halaman web Discourse,

All outgoing email has been globally disabled by an administrator. No email notifications of any kind will be sent.

Anda harus membuka Setelan -> Email (bukan Email), setel nonaktifkan email untuk tidak . Simpan pengaturan dan mulai ulang Wacana.

sudo systemctl restart discourse discourse-sidekiq

Jika Wacana Anda masih tidak dapat mengirim email, periksa apakah Wacana dapat melakukan ping ke server email. Juga, buka https://community.example.com/sidekiq/retries , ini akan menunjukkan kepada Anda email yang gagal dan mengapa pengiriman email gagal.

Terkadang, discourse-sidekiq.service bisa gagal dan menyebabkan email tidak terkirim, jadi Anda mungkin ingin memeriksa apakah layanan ini berjalan

sudo systemctl status discourse-sidekiq

Optimalkan Penggunaan RAM

Konfigurasi default puma membuat Discourse menggunakan banyak RAM. Secara default, Wacana saya menggunakan 4 pekerja, 8 utas minimal, 32 utas maksimal. Jika RAM Anda tidak cukup, server redis akan dihentikan. Untuk mengurangi penggunaan RAM, Anda dapat mengurangi jumlah pekerja dan thread di puma.rb berkas.

nano /var/www/discourse/config/puma.rb

Temukan dua baris berikut.

workers "#{num_workers}"
threads 8, 32

Anda dapat mengubah nilai seperti di bawah ini, yang memberi tahu puma untuk menggunakan 2 pekerja, 4 utas minimal, dan 16 utas maksimal. Pengaturan ini cocok untuk server dengan RAM hanya 1 GB.

workers 2
threads 4, 16

Simpan dan tutup file. Kemudian restart layanan Wacana.

sudo systemctl restart discourse

Tingkatkan Wacana

Anda dapat berlangganan umpan RSS rilis Wacana untuk tetap mendapat informasi dengan versi terbaru. Sebelum memutakhirkan Wacana, saya sangat menyarankan untuk melakukan pencadangan basis data manual di dasbor admin Wacana dan mengunduhnya ke hard disk Anda.

Catatan :Peningkatan browser sekali klik (https://community.domainanda.com/admin/upgrade) tidak berfungsi jika Anda menginstal Discourse tanpa Docker. Anda harus mengikuti petunjuk di bawah ini.

Untuk meningkatkan Discourse, hentikan layanan terlebih dahulu.

sudo systemctl stop discourse

Buka direktori instalasi Wacana.

cd /var/www/discourse/

Dapatkan tag baru dari repositori Github.

git fetch --tags

Sebelum memeriksa versi stabil terbaru, saya sarankan untuk mencadangkan file konfigurasi ke direktori home Anda.

cp config/puma.rb ~
cp config/environments/production.rb ~
cp config/sidekiq.yml ~
cp config/discourse.conf ~

Kemudian hapus file Gemfile.lock.

rm Gemfile.lock

Dan periksa versi stabil terbaru. Misalnya,

git checkout v2.3.4

Jika Anda melihat pesan kesalahan berikut.

Please commit your changes or stash them before you switch branches.
Aborting

Kemudian jalankan perintah berikut

git stash

Kemudian jalankan kembali perintah git checkout.

Instal dependensi untuk versi Wacana baru. Proses ini dapat menggunakan banyak RAM.

RAILS_ENV=production /usr/local/bin/bundle install --path vendor/bundle/

Edit file assets.rake.

nano /var/www/discourse/lib/tasks/assets.rake

Temukan baris berikut (baris 273) dan beri komentar.

brotli(path, max_compress)

Simpan dan tutup file. Selanjutnya, jalankan perintah berikut untuk mempersiapkan produksi.

RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile

Kemudian Anda dapat memeriksa apakah puma.rb baru file konfigurasi telah menambahkan beberapa baris baru, dibandingkan dengan file aslinya. Jika tidak ada yang baru, Anda cukup mengganti file tersebut dengan yang asli.

mv ~/puma.rb /var/www/discourse/config/puma.rb
mv ~/production.rb /var/www/discourse/config/environments/production.rb
mv ~/sidekiq.yml /var/www/discourse/config/sidekiq.yml
mv ~/discourse.conf /var/www/discourse/config/discourse.conf

Akhirnya, mulai Wacana.

sudo systemctl start discourse

Sekarang Anda dapat memeriksa versi Wacana dari dasbor admin.

Penyesuaian Tema Wacana

Jika Anda tidak menyukai tema putih default, Anda dapat menyesuaikannya melalui dasbor Admin -> Sesuaikan -> Tema . Ada 3 tema yang diinstal secara default.

  • Warna Biru
  • Gelap
  • Cahaya

Saya memilih tema Shades of Blue. Anda juga dapat menambahkan CSS khusus dengan mengeklik Edit CSS/HTML tombol. Di bawah ini adalah CSS yang saya tambahkan untuk Wacana saya.

html {
    background-color:#ececec;
}

#main-outlet {
    background-color: #fff;
    padding-left: 20px;
}

.d-header {
    background-color:rgb(45, 45, 45);
}


a:visited {
    color: blueviolet;
}

a {
    color: blueviolet;
}

Cara Memindahkan Wacana ke Server Baru

Pertama, buat cadangan forum Wacana asli Anda, dan unduh file tar.gz. (Jangan mengubah nama file.)

Kemudian Anda perlu menginstal Wacana di server baru dengan mengikuti langkah 1 hingga langkah 11. Selanjutnya, unggah file cadangan ke /var/www/discourse/public/backups/default/ direktori di server baru.

Buka direktori /var/www/discourse/ di server baru.

cd /var/www/discourse/

Instal dependensi.

sudo gem install thor

Buka Dasbor Admin Wacana -> Setelan -> Cadangan , centang izinkan pemulihan .

Selanjutnya, jalankan perintah berikut untuk memulihkan situs dari cadangan.

RAILS_ENV=production script/discourse restore file-name-of-the-backup-file.tar.gz

Setelah pemulihan selesai, mulai ulang Wacana.

sudo systemctl restart discourse discourse-sidekiq

Segarkan halaman web Wacana, dan Anda akan melihat forum Wacana asli Anda kembali online.

Jika Anda melihat kesalahan berikut,

You must use Bundler 2 or greater with this lockfile.

Maka Anda perlu memperbarui bundler.

gem install bundler

Perbarui gemfile.lock

RAILS_ENV=production bundle update --bundler

Anda juga dapat menghapus file Gemfile.lock sehingga Anda tidak akan melihat kesalahan ini.

Cara Menghapus Instalasi Wacana

Hapus server database PostgreSQL.

sudo apt remove postgresql

Hapus direktori webroot.

sudo rm /var/www/discourse/ -rf

Hapus file konfigurasi Nginx.

sudo rm /etc/nginx/conf.d/discourse.conf

Hapus sertifikat SSL Let's Encrypt.

sudo certbot revoke --cert-name community.example.com

Hapus layanan SystemD.

sudo rm /etc/systemd/system/discourse.service
sudo rm /etc/systemd/system/discourse-sidekiq.service

Memantau Kesehatan Instance Wacana Anda

Anda harus mengawasi log kesalahan wacana, yang dapat Anda temukan melalui dasbor Admin -> Log -> Log Kesalahan . Jika server Anda mendapatkan banyak lalu lintas, Anda mungkin memerlukan lebih banyak RAM untuk menjalankan Discourse. Log berikut menunjukkan server saya kehabisan memori.

Cara Menghadapi Pengguna yang Sulit dalam Wacana

Jika ada pengguna tertentu di forum Wacana Anda yang membuat hidup Anda lebih sulit, Anda dapat mengunci pengguna ini ke 0: new user tingkat kepercayaan, lalu buka Wacana Admin -> Settings -> Posting dan memerlukan posting/topik yang dibuat oleh 0: new user untuk disetujui sebelum dapat dipublikasikan.

Kesimpulan

Saya harap artikel ini membantu Anda menginstal perangkat lunak forum Wacana di Ubuntu 18.04 tanpa menggunakan Docker. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati


Ubuntu
  1. Cara Menginstal Wacana di Ubuntu 20.04 LTS

  2. Instal Server 18.04 Tanpa Koneksi Jaringan?

  3. Bagaimana Cara Menginstal Server Ubuntu Tanpa Koneksi Jaringan?

  1. Cara Menginstal Docker CE (Edisi Komunitas) di Server Ubuntu

  2. Cara Menginstal Wacana di Ubuntu 20.04

  3. Cara menginstal server PostgreSQL di Ubuntu 18.04

  1. Cara Menginstal Forum Wacana dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal Perangkat Lunak Buletin Mailtrain di Ubuntu 18.04

  3. Cara Memasang Forum Wacana di Ubuntu 20.04 LTS