GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal Askbot dengan Nginx dan Mengamankan dengan Lets Encrypt di CentOS 8

Askbot adalah perangkat lunak forum tanya jawab gratis, sumber terbuka, dan sangat dapat disesuaikan yang ditulis dengan Python dan Django. Ini sederhana, ringan, dan sangat mirip dengan perangkat lunak forum lain StackOverflow dan YahooAnswers. Askbot menyediakan banyak fitur termasuk, Tag dan kategori, Notifikasi email, sistem berbasis karma, pemungutan suara, moderasi konten, dan banyak lagi.

Dalam tutorial ini, kami akan menunjukkan cara menginstal perangkat lunak forum Askbot di CentOS 8 dengan Let's Encrypt SSL.

Prasyarat

  • Server yang menjalankan CentOS 8.
  • Kata sandi root telah disiapkan di server Anda.

Instal Dependensi yang Diperlukan

Sebelum memulai, Anda perlu menginstal beberapa dependensi yang diperlukan di sistem Anda.

Pertama, instal “Development Tools” dengan perintah berikut:

dnf group install 'Development Tools'

Selanjutnya, instal repositori EPEL dan dependensi Python lainnya dengan perintah berikut:

dnf install epel-release -y
dnf install python2-pip python2-devel python2-six -y

Setelah semua paket yang diperlukan terinstal, Anda dapat melanjutkan ke langkah berikutnya.

Instal dan Konfigurasi PostgreSQL

Askbot menggunakan PostgreSQL untuk menyimpan data mereka. Jadi, Anda perlu menginstalnya di sistem Anda. Anda dapat menginstalnya dengan perintah berikut:

dnf install postgresql-server postgresql-devel postgresql-contrib -y

Setelah terinstal, inisialisasi database dengan perintah berikut:

postgresql-setup initdb

Anda akan mendapatkan output berikut:

PERINGATAN:menggunakan sintaks argumen usang, coba --helpWARNING:argumen diubah menjadi:postgresql-setup --initdb --unit postgresql * Inisialisasi database di '/var/lib/pgsql/data' * Diinisialisasi, log ada di / var/lib/pgsql/initdb_postgresql.log

Selanjutnya, mulai layanan PostgreSQL dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start postgresql
systemctl aktifkan postgresql

Selanjutnya, masuk ke shell PostgreSQL dengan perintah berikut:

su - postgres
[[email protected] ~]$ psql

Keluaran:

psql (10.6)Ketik "bantuan" untuk bantuan.postgres=# 

Selanjutnya buat database dan user untuk Askbot dengan perintah berikut:

postgres=# create database askbot;
postgres=# buat user askbot dengan password 'password';

Selanjutnya, berikan semua hak istimewa ke askbot dengan perintah berikut:

postgres=# berikan semua hak istimewa pada database askbot ke askbot;

Terakhir, keluar dari shell PostgreSQL dengan perintah berikut:

postgres=# \q

Selanjutnya, Anda perlu mengonfigurasi otentikasi pengguna lokal untuk PostgreSQL. Anda dapat melakukannya dengan mengedit file pg_hba.conf:

nano /var/lib/pgsql/data/pg_hba.conf

Ganti rekan dengan md5 di baris berikut:

lokal semua semua md5 host semua 127.0.0.1/32 md5 host semua semua ::1/128 md5 

Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan PostgreSQL untuk menerapkan perubahan:

systemctl restart postgresql

Instal dan Konfigurasi Askbot

Sebelum menginstal Askbot, Anda harus membuat pengguna untuk Askbot. Anda dapat membuat pengguna Askbot baru dan mengatur kata sandi dengan perintah berikut:

useradd -m -s /bin/bash askbot
passwd askbot

Selanjutnya, tambahkan pengguna Askbot ke grup roda untuk akses perintah sudo:

usermod -a -G wheel askbot

Selanjutnya, instal paket python virtualenv dengan perintah berikut:

pip2 install virtualenv six

Setelah terinstal, ubah pengguna menjadi askbot dan buat lingkungan virtual baru untuk Askbot dengan perintah berikut:

su - askbot
virtualenv askbot

Anda akan melihat output berikut:

membuat lingkungan virtual CPython2.7.16.final.0-64 dalam 663 ms pencipta CPython2Posix(dest=/home/askbot/askbot, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=terbaru, wheel=terbaru, via=copy, app_data_dir=/tmp/tmp9YFr7B/seed-app-data/v1) aktivator PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator

Selanjutnya, ubah direktori menjadi askbot dan aktifkan virtual environment dengan perintah berikut:

cd askbot
source bin/activate

Keluaran:

(askbot) [[email protected] askbot]$

Selanjutnya, instal Askbot dan dependensi lain yang diperlukan dengan perintah berikut:

pip2 install six==1.10.0
pip2 install askbot psycopg2

Selanjutnya, buat direktori baru untuk aplikasi Anda, ubah direktori ke aplikasi Anda dan atur Askbot dengan perintah berikut:

mkdir myapp
cd myapp
askbot-setup

Anda akan melihat output berikut:

Menyebarkan Askbot - Aplikasi forum Tanya Jawab DjangoMasalah pemasangan? -> silakan kirim email ke [email protected]Untuk CANCEL - tekan Ctr-C kapan sajaMasukkan jalur direktori (absolut atau relatif) ke deployaskbot. Untuk memilih direktori saat ini - masukkan "."> .

Jenis "." dan tekan Enter untuk melanjutkan. Anda akan melihat output berikut:

Silakan pilih mesin database:1 - untuk postgresql, 2 - untuk sqlite, 3 - untuk mysql, 4 - oracletype 1/2/3/4:1

Ketik 1 untuk memilih mesin database postgresql dan tekan Enter untuk melanjutkan. Anda akan melihat output berikut:

Silakan masukkan nama basis data (wajib)> askbotMasukkan pengguna basis data (wajib)> askbotMasukkan kata sandi basis data (wajib)> kata sandi

Berikan detail basis data Askbot Anda dan tekan Enter . Setelah instalasi selesai, Anda akan melihat output berikut:

Menyalin file:* __init__.py * manage.py * urls.py * django.wsgi Membuat pengaturan file pengaturan file dibuat menyalin direktori:* doc* cron* upfilesDone. Silakan temukan instruksi lebih lanjut di http://askbot.org/doc/

Selanjutnya, buat file statis Askbot Django dan database dengan perintah berikut:

python manage.py collectstatic
python manage.py syncdb

Berikan nama pengguna, email, dan kata sandi admin yang Anda inginkan seperti yang ditunjukkan di bawah ini:

Anda telah menginstal sistem autentikasi Django, dan tidak memiliki pengguna super yang ditentukan. Apakah Anda ingin membuatnya sekarang? (ya/tidak):yesUsername (kosongkan untuk menggunakan 'askbot'):askbotadminAlamat email:[email protected]Sandi:Sandi (lagi):Pengguna super berhasil dibuat.

Instal dan Konfigurasi uWSGI

Selanjutnya, Anda perlu menginstal uWSGI ke sistem Anda. uWSGI adalah alat perangkat lunak yang digunakan untuk menjalankan aplikasi web berbasis Python. Anda dapat menginstalnya dengan perintah berikut:

pip2 install uwsgi

Setelah menginstal uWSGI, buat direktori baru untuk uWSGI dengan perintah berikut:

mkdir -p /etc/uwsgi/sites

Selanjutnya, buat file konfigurasi uWSGI baru seperti gambar di bawah ini:

nano /etc/uwsgi/sites/askbot.ini

Tambahkan baris berikut:

[uwsgi]chdir =/home/askbot/askbot/myapphome =/home/askbot/askbotstatic-map =/m=/home/askbot/askbot/myapp/staticwsgi-file =/home/askbot/askbot/myapp /django.wsgimaster =trueprocesses =5# Askbot akan berjalan di bawah sock filesocket =/run/uwsgi/askbot.sockchmod-socket =664uid =askbotgid =nginxvacuum =true# uWSGI Log fileogto =/var/log/uwsgi.log 

Buat File Layanan Systemd untuk uWSGI

Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan uWSGI. Anda dapat membuatnya dengan perintah berikut:

nano /etc/systemd/system/uwsgi.service

Tambahkan baris berikut:

[Unit]Deskripsi=layanan uWSGI[Layanan]ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown askbot:nginx /run/uwsgi'ExecStart=/bin/uwsgi --emperor /etc/uwsgi/sitesRestart=alwaysKillSignal=SIGQUITType=notifyNotifyAccess=all[Install]WantedBy=multi-user.target

Simpan dan tutup file setelah Anda selesai. Kemudian, muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Instal dan Konfigurasi Nginx

Selanjutnya, Anda perlu menginstal dan mengkonfigurasi Nginx untuk melayani aplikasi Askbot Anda.

Pertama, instal server web Nginx dengan perintah berikut:

dnf install nginx -y

Setelah terinstal, buat file konfigurasi host virtual baru untuk Askbot:

nano /etc/nginx/conf.d/askbot.conf

Tambahkan baris berikut:

server { dengarkan 80; nama_server askbot.linuxbuz.com; lokasi / { sertakan uwsgi_params; uwsgi_pass unix:/run/uwsgi/askbot.sock; } }

Simpan dan tutup file. Kemudian, mulai layanan Nginx dan uWSGI dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start nginx
systemctl aktifkan nginx
systemctl start uwsgi
systemctl aktifkan uwsgi

Amankan Askbot dengan Let's Encrypt SSL

Selanjutnya, Anda perlu menginstal utilitas Certbot di sistem Anda untuk mengunduh dan menginstal Let's Encrypt SSL untuk domain Askbot.

Anda dapat menginstal klien Certbot dengan perintah berikut:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot- auto
chmod 0755 /usr/local/bin/certbot-auto

Selanjutnya, dapatkan dan instal sertifikat SSL untuk domain Askbot Anda dengan perintah berikut:

certbot-auto --nginx -d askbot.linuxbuz.com

Perintah di atas pertama-tama akan menginstal semua dependensi yang diperlukan di server Anda. Setelah terinstal, Anda akan diminta untuk memberikan alamat email dan menerima persyaratan layanan seperti yang ditunjukkan di bawah ini:

Menyimpan log debug ke /var/log/letsencrypt/letsencrypt.logPlugins dipilih:Authenticator nginx, Installer nginxMasukkan alamat email (digunakan untuk pembaruan mendesak dan pemberitahuan keamanan) (Masukkan 'c' untuk membatalkan):[dilindungi email]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Harap baca Ketentuan Layanan dihttps://letsencrypt.org /documents/LE-SA-v1.2-November-15-2017.pdf. Anda harus setuju untuk mendaftar ke server ACME dihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)setuju/(C)batal:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Apakah Anda bersedia membagikan alamat email Anda dengan Electronic FrontierFoundation, mitra pendiri proyek Let's Encrypt dan organisasi nirlaba yang mengembangkan Certbot? Kami ingin mengirimkan email tentang pekerjaan kami mengenkripsi web, berita EFF, kampanye, dan cara mendukung kebebasan digital.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(T)o:YMemperoleh sertifikat baruMelakukan tantangan berikut:http-01 tantangan untuk askbot.linuxbuz.comMenunggu verifikasi...Membersihkan up challengeMenyebarkan Sertifikat ke VirtualHost /etc/nginx/conf.d/askbot.conf

Selanjutnya, pilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS seperti yang ditunjukkan di bawah ini:

Silakan pilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS atau tidak, menghapus akses HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1:Tidak ada pengalihan - Tidak ada perubahan lebih lanjut pada konfigurasi server web.2:Pengalihan - Membuat semua permintaan dialihkan untuk mengamankan akses HTTPS. Pilih ini untuk situs baru, atau jika Anda yakin situs Anda berfungsi di HTTPS. Anda dapat membatalkan perubahan ini dengan mengedit konfigurasi server web Anda.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Pilih nomor yang sesuai [1-2] lalu [enter] (tekan 'c' untuk membatalkan):2

Ketik 2 dan tekan Enter untuk melanjutkan. Setelah instalasi selesai, Anda akan melihat output berikut:

Mengalihkan semua lalu lintas pada port 80 ke ssl di /etc/nginx/conf.d/askbot.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Selamat! Anda telah berhasil mengaktifkan https://askbot.linuxbuz.comAnda harus menguji konfigurasi Anda di:https://www.ssllabs.com/ssltest/analyze.html?d=askbot.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CATATAN PENTING:- Selamat! Sertifikat dan rantai Anda telah disimpan di:/etc/letsencrypt/live/askbot.linuxbuz.com/fullchain.pem File kunci Anda telah disimpan di:/etc/letsencrypt/live/askbot.linuxbuz.com/privkey.pem Anda cert akan kedaluwarsa pada 11-06-2020. Untuk mendapatkan versi baru atau tweak dari sertifikat ini di masa mendatang, cukup jalankan certbot-auto lagi dengan opsi "certonly". Untuk memperbarui *semua* sertifikat Anda secara non-interaktif, jalankan "certbot-auto renew" - Jika Anda menyukai Certbot, pertimbangkan untuk mendukung pekerjaan kami dengan:Menyumbang ke ISRG / Let's Encrypt:https://letsencrypt.org/donate Menyumbang ke EFF:https://eff.org/donate-le

Konfigurasi Firewall dan SELinux

Selanjutnya, Anda perlu membuat aturan firewall untuk mengizinkan layanan HTTP dan HTTPS dari jaringan eksternal. Anda dapat mengizinkannya dengan perintah berikut:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Secara default, SELinux diaktifkan di CentOS 8. Disarankan untuk menonaktifkannya agar Askbot berfungsi dengan baik. Anda dapat menonaktifkannya dengan mengedit file /etc/selinux/config:

nano /etc/selinux/config

Temukan baris berikut:

SELINUX=menegakkan

Dan, ganti dengan baris berikut:

SELINUX=dinonaktifkan

Simpan dan tutup file. Kemudian, mulai ulang sistem Anda untuk menerapkan perubahan:

Akses Askbot

Sekarang, buka browser web Anda dan ketik URL https://askbot.linuxbuz.com. Anda akan diarahkan ke layar berikut:

Klik pada tanda di tombol. Anda akan melihat halaman login Askbot di layar berikut:

Berikan nama pengguna, kata sandi admin Askbot Anda, dan klik Tanda di tombol. Anda akan melihat dasbor Askbot di layar berikut:

Kesimpulan

Selamat! Anda telah berhasil menginstal dan mengkonfigurasi forum Askbot di CentOS 8 dan mengamankannya dengan Let's Encrypt SSL. Sekarang Anda dapat mulai membuat pertanyaan dan jawaban dengan Askbot.


Cent OS
  1. Amankan Nginx dengan Lets Encrypt di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi Askbot dengan Nginx di CentOS 7

  3. Cara Memasang dan Mengatur Varnish Cache 6 dengan Nginx di CentOS 8

  1. Cara Menginstal Shopware dengan NGINX dan Mengenkripsi di CentOS 7

  2. Cara Menginstal WonderCMS dengan Nginx dan Mengenkripsi SSL di CentOS 7

  3. Cara Instal Pico CMS dengan Nginx dan Lets Encrypt di CentOS 7

  1. Instal Automad CMS dengan Nginx dan Mari Enkripsi SSL di CentOS 7

  2. Cara Menginstal WordPress dengan Nginx dan Mengenkripsi SSL di CentOS 8

  3. Instal dan Konfigurasi Drupal 8 dengan Nginx dan Mari Enkripsi di CentOS 8