GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Askbot en Ubuntu 16.04

Askbot es un software de código abierto para crear un foro de preguntas y respuestas basado en Python Django Framework. Es similar a otros sistemas de preguntas y respuestas como StackOverflow y Yahoo Answers. La herramienta ha sido utilizada por grandes proyectos de software de código abierto como Fedora y LibreOffice. Askbot fue creado por Mike Chan y Sailing Cai en 2009 y es fácil de instalar y configurar en sistemas Linux como Ubuntu y CentOS.

En este tutorial, le mostraremos cómo instalar la aplicación Askbot Django paso a paso usando uWSGI y el servidor web Nginx, y usaremos Ubuntu 16.04 Xenial Xerus como nuestro sistema operativo principal.

Qué haremos:

  1. Instalar dependencias
  2. Instalar y configurar la base de datos PostgreSQL
  3. Instalar y configurar Askbot
  4. Instalar y configurar uWSGI
  5. Instalar y configurar Nginx
  6. Pruebas

Requisitos

  • Ubuntu 16.04
  • Privilegios de raíz

Paso 1 - Instalar dependencias

El primer paso que debemos hacer es instalar los paquetes necesarios para la instalación de Askbot. Así que empecemos. Conéctese a su servidor Ubuntu mediante SSH.

ssh [email protected]

A continuación, instale paquetes como python-dev, pip, etc. con el siguiente comando apt.

apt install -y build-essential python-pip python-dev python-flup libpng12-dev zlib1g-dev libpng-dev libjpeg-dev python-setuptools

Todos los paquetes requeridos han sido instalados.

Paso 2:instalar y configurar la base de datos PostgreSQL

Askbot ofrece soporte para muchos sistemas de bases de datos como MySQL, SQLite y PostreSQL. En este tutorial, usaremos PostgreSQL como nuestro sistema de base de datos.

Instalaremos PostgreSQL, configuraremos la autenticación para el usuario local y luego crearemos una nueva base de datos y un nuevo usuario para la instalación de Askbot.

Instale la base de datos PostgreSQL usando el siguiente comando apt.

apt install -y postgresql postgresql-contrib

Ahora edite el pg_hba.conf archivo con vim para configurar la autenticación de usuario local.

vim /etc/postgresql/9.5/main/pg_hba.conf

Cambie toda la autenticación de usuario local usando md5 como se muestra a continuación.

local   all             all                                     md5

Guardar y Salir. Ahora, reinicie los servicios de PostgreSQL y habilítelos para que se inicien automáticamente al arrancar el sistema.

systemctl restart postgresql
systemctl enable postgresql

A continuación, debemos crear una nueva base de datos y un nuevo usuario para la instalación de Askbot. Para nuestro caso, crearemos una nueva base de datos 'askbotdb ' con nombre de usuario 'hakaselabs ' y contraseña 'hakase123 '.

Inicie sesión como postgres usuario y acceda al shell de PostgreSQL 'psql'.

su - postgres
psql

Cambiar el postgres contraseña de usuario con su propia contraseña.

\password postgres

Y cree una nueva base de datos 'askbotdb ' y un nuevo usuario 'hakaselabs ' con contraseña 'hakase123 ' usando las siguientes consultas.

create database askbotdb;
create user hakaselabs with password 'hakase123';
grant all privileges on database askbotdb to hakaselabs;
\q

Se ha creado una nueva base de datos PostgreSQL para la instalación de Askbot.

Paso 3:instalar y configurar la aplicación Askbot Django

Se han instalado todos los paquetes necesarios para la instalación de Askbot y se ha creado la base de datos PostgreSQL. Ahora, el siguiente paso es instalar y configurar Askbot.

Necesitamos crear un nuevo usuario para la instalación de Askbot, ya que no usaremos el usuario root para ello. Cree un nuevo usuario llamado 'askbot ' y dale a ese usuario una nueva contraseña.

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

A continuación, agregue el askbot usuario al grupo sudo usando el siguiente comando usermod.

usermod -a -G sudo askbot

Se ha creado un nuevo usuario. Ahora necesitamos actualizar python-pip e instalar el paquete virtualenv. Instale estos paquetes usando los siguientes comandos pip.

pip install --upgrade pip
pip install virtualenv

Ahora, inicie sesión como el usuario 'askbot' con el comando su y luego instale Askbot.

su - askbot

Y queremos crear un nuevo entorno virtual para nuestra instalación de askbot. Cree un nuevo entorno virtual con el comando virtualenv.

virtualenv hakase-labs

Ir a los hakase-labs directorio y active el virtualenv.

cd hakase-labs/
source bin/activate

Instale la aplicación Askbot Django con pip, incluido psycopg2 para la conexión a la base de datos PostgreSQL.

pip install askbot psycopg2

Una vez completada la instalación, verá el resultado como se muestra a continuación.

A continuación, cree un nuevo directorio para la aplicación Askbot Django:usaremos el nombre 'myapp'. Cree el directorio e instale Askbot en él.

mkdir myapp/
cd myapp

Instale Askbot con el siguiente comando.

askbot-setup

Cuando se le pregunte sobre el directorio de instalación de Askbot, simplemente proporcione el único '. ' y presione 'Entrar'. De manera similar, para la configuración de la base de datos, elija PostgreSQL eligiendo el número '1 '. Ingrese el nombre de la base de datos 'askbotdb ', nombre de usuario 'hakaselabs ' con contraseña 'hakase123 '.

Ahora, genera un directorio de archivos estáticos con el siguiente comando.

python manage.py collectstatic

Escribe 'sí' y presiona Enter para continuar.

Genere la base de datos PostgreSQL con la opción syncdb.

python manage.py syncdb

Y se le preguntará acerca de la creación del usuario administrador:escriba 'sí' y luego escriba su usuario administrador, correo electrónico y contraseña.

Askbot ahora está instalado en el sistema bajo el entorno virtual de usuario 'askbot'. Puede probar la instalación de Askbot ejecutando el siguiente comando runserver.

python manage.py runserver 0.0.0.0:8080

Abra su navegador web y escriba la IP del servidor con el puerto 8080, y verá la página 'Askbot', como se muestra a continuación.

Paso 4:instalar y configurar uWSGI

uWSGI admite aplicaciones basadas en Python, Perl y Ruby. En este tutorial, usaremos uWSGI con el servidor web Nginx para nuestra instalación de Askbot. Instale uWSGI con el siguiente comando pip.

sudo pip install uwsgi

Ahora cree un nuevo directorio para la configuración del sitio uWSGI '/etc/uwsgi/sites'.

mkdir -p /etc/uwsgi/sites
/etc/uwsgi/sites

Agregue el nuevo archivo de configuración de uWSGI 'askbot.ini' al directorio 'sites' y edítelo con vim.

vim askbot.ini

Allí, pegue la siguiente configuración de uWSGI.

[uwsgi]

# Project directory, Python directory
chdir = /home/askbot/hakase-labs/myapp
home = /home/askbot/hakase-labs/
static-map = /m=/home/askbot/hakase-labs/myapp/static
wsgi-file = /home/askbot/hakase-labs/myapp/django.wsgi

master = true
processes = 5

# Askbot will running under the sock file
socket = /home/askbot/hakase-labs/myapp/askbot.sock
chmod-socket = 664
uid = askbot
gid = www-data
vacuum = true

# uWSGI Log file
logto = /var/log/uwsgi.log

Eso es todo. Guardar y salir.

A continuación, debemos crear un nuevo archivo de servicio para uWSGI. Vaya al directorio '/etc/systemd/system/' y cree un nuevo archivo uwsgi.service usando vim.

cd /etc/systemd/system/
vim uwsgi.service

Pegue la siguiente configuración del servicio uWSGI allí.

[Unit]
Description=uWSGI Emperor service

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

[Install]
WantedBy=multi-user.target

Guardar y Salir. Luego, vuelva a cargar los servicios de systemd.

systemctl daemon-reload

Ahora, inicie el servicio uWSGI y habilítelo para que se inicie automáticamente al arrancar el sistema.

systemctl start uwsgi
systemctl enable uwsgi

uWSGI se instaló y configuró para nuestra aplicación Askbot y se está ejecutando como un servicio del sistema.

Paso 5:instalar y configurar Nginx

Askbot ahora está instalado y se ejecuta bajo el archivo sock de uWSGI 'askbot.sock'. En este paso, utilizaremos el servidor web Nginx como proxy inverso para la aplicación uWSGI Askbot.

Instale Nginx desde el repositorio usando el siguiente comando apt.

apt install nginx

Una vez completada la instalación, vaya al directorio de configuración de nginx '/etc/nginx/' y agregue un nuevo archivo de host virtual nginx 'askbot'.

cd /etc/nginx
vim sites-available/askbot

Pegue la siguiente configuración de host virtual askbot nginx.

server {
        listen 80;
        server_name askbot.me www.askbot.me;
        location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/home/askbot/hakase-labs/myapp/askbot.sock;
   }
}

Guardar y salir.

Ahora habilite el archivo de host virtual de Askbot creando un enlace simbólico para el archivo 'askbot' en el directorio 'habilitado para sitios' y pruebe la configuración de nginx.

ln -s /etc/nginx/sites-available/askbot /etc/nginx/sites-enabled/
nginx -t

El host virtual de Askbot está habilitado. Ahora reinicie los servicios nginx y permita que se inicien automáticamente al iniciar el sistema.

systemctl restart nginx
systemctl enable nginx

La configuración de Nginx se ha completado y se está ejecutando en el puerto 80. Verifíquelo con el comando netstat, como se muestra a continuación.

netstat -plntu

Ahora verifique askbot revisando el archivo sock de uWSGI usando el siguiente comando netstat.

netstat -pl | grep askbot

El servidor web Nginx se instaló y configuró para la aplicación Askbot Python Django.

Paso 6 - Prueba

Abra su navegador web y visite el nombre de dominio de Askbot:askbot.me, y debería obtener la página de inicio como se muestra a continuación.

Inicio de sesión de usuario de Askbot.

Panel de usuario de Askbot.

Configuración de Askbot.

Inicio de sesión de administrador de Askbot Django.

Panel de administración de Askbot Django.

La aplicación del sistema de preguntas y respuestas 'Askbot' se instaló con el servidor web uWSGI y Nginx en el servidor Ubuntu 16.04.


Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar y configurar Samba en Ubuntu 18.04

  4. Cómo instalar y configurar Redis en Ubuntu 20.04

  5. Cómo instalar y configurar Mariadb 10 en Ubuntu 20.04

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Ubuntu SDK en Ubuntu 16.04 y 14.04

Cómo instalar y configurar PostgreSQL en Ubuntu

Cómo instalar y configurar Hadoop en Ubuntu 20.04

Cómo instalar y configurar Jenkins en Ubuntu

Cómo instalar y configurar Jenkins en Ubuntu 20.04