GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Askbot con Nginx e proteggere con Lets Encrypt su CentOS 8

Askbot è un software per forum di domande e risposte gratuito, open source e altamente personalizzabile scritto in Python e Django. È semplice, leggero e molto simile ad altri software per forum StackOverflow e YahooAnswers. Askbot offre un sacco di funzionalità tra cui tag e categorie, notifiche e-mail, sistema basato sul karma, votazione, moderazione dei contenuti e molto altro.

In questo tutorial, ti mostreremo come installare il software del forum Askbot su CentOS 8 con Let's Encrypt SSL.

Prerequisiti

  • Un server che esegue CentOS 8.
  • Una password di root è impostata sul tuo server.

Installa le dipendenze richieste

Prima di iniziare, dovrai installare alcune dipendenze richieste nel tuo sistema.

Innanzitutto, installa gli "Strumenti di sviluppo" con il seguente comando:

dnf group install 'Development Tools'

Quindi, installa il repository EPEL e altre dipendenze Python con il seguente comando:

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

Una volta installati tutti i pacchetti richiesti, puoi procedere al passaggio successivo.

Installa e configura PostgreSQL

Askbot utilizza PostgreSQL per archiviare i propri dati. Quindi dovrai installarlo nel tuo sistema. Puoi installarlo con il seguente comando:

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

Una volta installato, inizializzare il database con il seguente comando:

postgresql-setup initdb

Dovresti ottenere il seguente output:

WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Quindi, avvia il servizio PostgreSQL e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:

systemctl start postgresql
systemctl enable postgresql

Quindi, accedi alla shell di PostgreSQL con il seguente comando:

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

Uscita:

psql (10.6)
Type "help" for help.
postgres=# 

Quindi, crea un database e un utente per Askbot con il seguente comando:

postgres=# create database askbot;
postgres=# create user askbot with password 'password';

Quindi, concedi tutti i privilegi all'askbot con il seguente comando:

postgres=# grant all privileges on database askbot to askbot;

Infine, esci dalla shell di PostgreSQL con il seguente comando:

postgres=# \q

Successivamente, dovrai configurare l'autenticazione utente locale per PostgreSQL. Puoi farlo modificando il file pg_hba.conf:

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

Sostituisci peer con md5 nelle seguenti righe:

local   all             all                                    md5  
host    all             all             127.0.0.1/32           md5  
host    all             all             ::1/128                md5  

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio PostgreSQL per applicare le modifiche:

systemctl restart postgresql

Installa e configura Askbot

Prima di installare Askbot, dovrai creare un utente per Askbot. Puoi creare un nuovo utente Askbot e impostare una password con il seguente comando:

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

Quindi, aggiungi l'utente Askbot al gruppo di ruote per l'accesso al comando sudo:

usermod -a -G wheel askbot

Quindi, installa il pacchetto virtualenv python con il seguente comando:

pip2 install virtualenv six

Una volta installato, cambia l'utente in askbot e crea un nuovo ambiente virtuale per Askbot con il seguente comando:

su - askbot
virtualenv askbot

Dovresti vedere il seguente output:

created virtual environment CPython2.7.16.final.0-64 in 663ms
  creator CPython2Posix(dest=/home/askbot/askbot, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/tmp/tmp9YFr7B/seed-app-data/v1)
  activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator

Quindi, cambia la directory in askbot e attiva l'ambiente virtuale con il seguente comando:

cd askbot
source bin/activate

Uscita:

(askbot) [[email protected] askbot]$

Quindi, installa Askbot e le altre dipendenze richieste con il seguente comando:

pip2 install six==1.10.0
pip2 install askbot psycopg2

Quindi, crea una nuova directory per la tua applicazione, cambia la directory nella tua applicazione e configura Askbot con il seguente comando:

mkdir myapp
cd myapp
askbot-setup

Dovresti vedere il seguente output:

Deploying Askbot - Django Q&A forum application
Problems installing? -> please email [email protected]

To CANCEL - hit Ctr-C at any time

Enter directory path (absolute or relative) to deploy
askbot. To choose current directory - enter "."
> .

Tipo "." e premi Invio continuare. Dovresti vedere il seguente output:

Please select database engine:
1 - for postgresql, 2 - for sqlite, 3 - for mysql, 4 - oracle
type 1/2/3/4: 1

Digita 1 per selezionare un motore di database postgresql e premi Invio per continuare. Dovresti vedere il seguente output:

Please enter database name (required)
> askbot

Please enter database user (required)
> askbot

Please enter database password (required)
> password

Fornisci i dettagli del tuo database Askbot e premi Invio . Al termine dell'installazione, dovresti vedere il seguente output:

Copying files: 
* __init__.py 
* manage.py 
* urls.py 
* django.wsgi 
Creating settings file
settings file created

copying directories:  * doc
* cron
* upfiles

Done. Please find further instructions at http://askbot.org/doc/

Quindi, genera file statici e database Askbot Django con il seguente comando:

python manage.py collectstatic
python manage.py syncdb

Fornisci il nome utente, l'e-mail e la password dell'amministratore desiderati come mostrato di seguito:

You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'askbot'): askbotadmin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

Installa e configura uWSGI

Successivamente, dovrai installare uWSGI sul tuo sistema. uWSGI è uno strumento software utilizzato per eseguire applicazioni Web basate su Python. Puoi installarlo con il seguente comando:

pip2 install uwsgi

Dopo aver installato uWSGI, crea una nuova directory per uWSGI con il seguente comando:

mkdir -p /etc/uwsgi/sites

Quindi, crea un nuovo file di configurazione uWSGI come mostrato di seguito:

nano /etc/uwsgi/sites/askbot.ini

Aggiungi le seguenti righe:

[uwsgi]

chdir = /home/askbot/askbot/myapp
home = /home/askbot/askbot
static-map = /m=/home/askbot/askbot/myapp/static
wsgi-file = /home/askbot/askbot/myapp/django.wsgi
master = true
processes = 5
# Askbot will running under the sock file
socket = /run/uwsgi/askbot.sock
chmod-socket = 664
uid = askbot
gid = nginx
vacuum = true
# uWSGI Log file
ogto = /var/log/uwsgi.log

Crea un file di servizio Systemd per uWSGI

Successivamente, dovrai creare un file di servizio systemd per gestire il servizio uWSGI. Puoi crearlo con il seguente comando:

nano /etc/systemd/system/uwsgi.service

Aggiungi le seguenti righe:

[Unit]
Description=uWSGI service

[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown askbot:nginx /run/uwsgi'
ExecStart=/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target

Salva e chiudi il file quando hai finito. Quindi, ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Installa e configura Nginx

Successivamente, dovrai installare e configurare Nginx per servire la tua applicazione Askbot.

Innanzitutto, installa il server web Nginx con il seguente comando:

dnf install nginx -y

Una volta installato, crea un nuovo file di configurazione dell'host virtuale per Askbot:

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

Aggiungi le seguenti righe:

server {
         listen 80;
         server_name askbot.linuxbuz.com;
         location / {
         include         uwsgi_params;
         uwsgi_pass	 unix:/run/uwsgi/askbot.sock;
    }
 }

Salva e chiudi il file. Quindi, avvia il servizio Nginx e uWSGI e abilita l'avvio dopo il riavvio del sistema con il seguente comando:

systemctl start nginx
systemctl enable nginx
systemctl start uwsgi
systemctl enable uwsgi

Proteggi Askbot con Let's Encrypt SSL

Successivamente, dovrai installare l'utilità Certbot nel tuo sistema per scaricare e installare Let's Encrypt SSL per il dominio Askbot.

Puoi installare il client Certbot con il seguente comando:

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

Successivamente, ottieni e installa un certificato SSL per il tuo dominio Askbot con il seguente comando:

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

Il comando precedente installerà prima tutte le dipendenze richieste sul tuo server. Una volta installato, ti verrà chiesto di fornire un indirizzo email e di accettare i termini del servizio come mostrato di seguito:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for askbot.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/askbot.conf

Quindi, seleziona se reindirizzare o meno il traffico HTTP su HTTPS come mostrato di seguito:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Digita 2 e premi Invio continuare. Al termine dell'installazione, dovresti vedere il seguente output:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/askbot.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://askbot.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=askbot.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/askbot.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/askbot.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-06-11. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Configura Firewall e SELinux

Successivamente, dovrai creare una regola firewall per consentire il servizio HTTP e HTTPS da reti esterne. Puoi consentirlo con il seguente comando:

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

Per impostazione predefinita, SELinux è abilitato in CentOS 8. Si consiglia di disabilitarlo per far funzionare correttamente Askbot. Puoi disabilitarlo modificando il file /etc/selinux/config:

nano /etc/selinux/config

Trova la riga seguente:

SELINUX=enforcing

E sostituiscilo con la seguente riga:

SELINUX=disabled

Salva e chiudi il file. Quindi, riavvia il sistema per applicare le modifiche:

Accedi ad Askbot

Ora apri il tuo browser web e digita l'URL https://askbot.linuxbuz.com. Verrai reindirizzato alla seguente schermata:

Fai clic sul segno dentro pulsante. Dovresti vedere la pagina di accesso di Askbot nella schermata seguente:

Fornisci il nome utente e la password dell'amministratore Askbot e fai clic su Firma dentro pulsante. Dovresti vedere la dashboard di Askbot nella schermata seguente:

Conclusione

Congratulazioni! hai installato e configurato correttamente il forum Askbot su CentOS 8 e lo hai protetto con Let's Encrypt SSL. Ora puoi iniziare a creare una domanda e una risposta con Askbot.


Cent OS
  1. Proteggi Nginx con Lets Encrypt su CentOS 7

  2. Come installare e configurare Askbot con Nginx su CentOS 7

  3. Come installare Shopware con NGINX e Lets Encrypt su CentOS 7

  4. Come installare WonderCMS con Nginx e Lets Encrypt SSL su CentOS 7

  5. Come installare e configurare Varnish Cache 6 con Nginx su CentOS 8

Come installare OpenCart con Nginx e Lets Encrypt su Debian 10

Come installare ElkArte Forum con Apache e Lets Encrypt SSL su CentOS 8

Come installare Shopware 6 con NGINX e Lets Encrypt su CentOS 8

Come installare PrestaShop con Apache e Lets Encrypt SSL su CentOS 8

Come installare Moodle con Nginx e Lets Encrypt SSL su Ubuntu 20.04

Come installare MediaWiki con Nginx e Lets Encrypt SSL su Ubuntu 20.04