GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar y configurar Askbot con Nginx en CentOS 7

Askbot es un software de código abierto para crear foros de preguntas y respuestas basados ​​en Python Django Framework. Básicamente es un sistema de preguntas y respuestas como StackOverflow, Yahoo Answers y otros. Creado por Mike Chan y Sailing Cai en 2009, es fácil de instalar y configurar en sistemas Linux como Ubuntu y CentOS. Muchos grandes proyectos de software de código abierto como Fedora y LibreOffice lo están utilizando.

En este tutorial, le mostraremos cómo instalar la aplicación Askbot Python Django utilizando uWSGI y el servidor web Nginx en el sistema CentOS 7. En cuanto a la base de datos, utilizaremos PostgreSQL para la instalación de Askbot.

Lo que haremos

  1. Instalar dependencias
  2. Instalar y configurar PostgreSQL
  3. Instalar y configurar Askbot
  4. Instalar y configurar uWSGI
  5. Instalar y configurar el servidor web Nginx
  6. Probar la configuración

Requisitos

  • Servidor CentOS 7
  • Privilegios de raíz

Paso 1 - Instalar dependencias

En este paso, instalaremos algunos paquetes necesarios para una instalación exitosa de Askbot. Estos incluyen 'Herramientas de desarrollo', el repositorio de Epel y algunas herramientas relacionadas con Python (para administrar paquetes de Python). Así que comencemos.

Primero, instale las 'Herramientas de desarrollo' de CentOS con el comando yum group a continuación.

yum group install 'Development Tools'

Luego instale el repositorio de Epel.

yum -y install epel-release

Y finalmente instale los paquetes de python, incluidos python pip, python-devel y python six.

yum -y install python-pip python-devel python-six

Paso 2:instalar y configurar PostgreSQL

Ahora necesitamos la base de datos PostgreSQL, que está disponible en el repositorio de CentOS. En esta sección, discutiremos cómo puede instalar la base de datos PostgreSQL, cambiar el usuario de la contraseña de Postgres, crear un nuevo usuario y base de datos para la instalación de Askbot y, finalmente, cambiar la configuración de autenticación de Postgres.

Entonces, comencemos con la instalación de PostgreSQL desde el repositorio usando el comando yum a continuación.

yum -y install postgresql-server postgresql-devel postgresql-contrib

Una vez que se complete la instalación, debemos inicializar la base de datos, lo que puede hacer con el siguiente comando.

postgresql-setup initdb

Continuando, inicie Postgres y permita que se inicie automáticamente en el momento del arranque.

systemctl start postgresql
systemctl enable postgresql

En este punto, la base de datos PostgreSQL debe estar instalada. A continuación, debemos restablecer la contraseña de usuario de postgres. Para ello, primero inicie sesión como usuario 'postgres' y acceda a la herramienta de línea de comandos psql.

su - postgres
psql

Y luego proporcione al usuario de postgres una nueva contraseña.

\password postgres

Ahora, cree una nueva base de datos y un usuario para Askbot. Por ejemplo, queremos crear un nuevo usuario 'hakaselabs ' con contraseña 'hakase123 ', y la base de datos llamada 'askbotdb '. Las siguientes consultas de postgres nos ayudarán a crear todo esto.

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

Así que ahora se han creado una base de datos y un usuario para la instalación de Askbot. El siguiente paso es editar la configuración de postgres para la configuración de autenticación, lo que puede hacer dirigiéndose al directorio 'pgsql/data' y editando el archivo 'pg_hba.conf' con vim.

cd /var/lib/pgsql/data/
vim pg_hba.conf

Una vez dentro del archivo, cambie toda la autenticación a md5, como se muestra a continuación.

local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Ahora, guarde y salga del archivo, y luego reinicie el servicio postgres.

systemctl restart postgresql

Entonces, por ahora, la base de datos PostgreSQL se ha instalado; se ha creado la base de datos para la instalación de Askbot; y el método de autenticación de usuario de postgres se ha cambiado a md5.

Paso 3:instalar y configurar Askbot

En este paso, discutiremos la instalación y configuración de Askbot. Instalaremos Askbot bajo un usuario llamado 'askbot' y usando virtualenv python. Así que comencemos.

En primer lugar, cree un nuevo usuario 'askbot' y proporcione al usuario una nueva contraseña.

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

Luego agregue el usuario 'askbot' al grupo 'rueda' para acceder al comando sudo (¿no está seguro de qué es 'sudo'? Obtenga más información aquí).

usermod -a -G wheel askbot

Ahora actualice pip a la última versión e instale el paquete python virtualenv.

pip install --upgrade pip
pip install virtualenv six

Próximo. inicie sesión como usuario 'askbot' y cree un nuevo entorno virtual de python 'hakase-labs' con virtualenv.

su - askbot
virtualenv hakase-labs/

Vaya al directorio 'hakase-labs' y active el entorno virtual para la instalación de Askbot.

cd hakase-labs/
source bin/activate

Ahora instale askbot y otros paquetes de python con el comando pip en el entorno virtual 'hakase-labs'.

pip install six 
pip install askbot psycopg2

A continuación, cree un nuevo directorio para el proyecto 'Askbot'. Asegúrese de no utilizar 'askbot' como nombre de directorio. En nuestro caso, por ejemplo, creamos un nuevo directorio llamado 'myapp'

mkdir myapp/

Vaya al directorio myapp y ejecute el comando 'askbot-setup'.

cd myapp/
askbot-setup

El comando 'askbot-setup' le preguntará ciertas cosas. Por ejemplo, se le preguntará sobre la ruta del directorio para implementar Askbot; puede escribir '.' y presione Entrar para continuar. De manera similar, cuando se le pregunte sobre el motor de la base de datos, escriba '1' para usar postgresql y presione Entrar. Para obtener detalles relacionados con la base de datos, ingrese el nombre de la base de datos como 'askbotdb', el usuario de la base de datos como 'hakaselabs' y la contraseña como 'hakase123'.

Entonces Askbot ahora está instalado en el directorio 'myapp'. Ahora necesitamos generar los archivos estáticos de Askbot Django y la base de datos.

Ejecute el siguiente comando para generar archivos estáticos de Askbot Django.

python manage.py collectstatic

Cuando se le solicite confirmación, escriba 'sí' y presione Entrar.

Ahora, para generar la base de datos, ejecute syncdb como se muestra a continuación.

python manage.py syncdb

Se le preguntará acerca de cómo crear el usuario y la contraseña de administrador. Entonces, cuando se le solicite, escriba el nombre de usuario, el correo electrónico y la contraseña para la configuración del administrador.

Por ahora, Askbot se ha instalado, se han generado archivos estáticos y se ha completado la configuración de la base de datos.

Puede probar la instalación de Askbot con el comando runserver a continuación.

python manage.py runserver 0.0.0.0:8080

Abra su navegador web y escriba la dirección IP del servidor; debería ver una página similar a la siguiente:

Paso 4:instalar y configurar uWSGI

Usaremos uWSGI como servicio para el proyecto Askbot Django. Específicamente, usaremos uWSGI con el servidor web Nginx para la instalación de Askbot. Así que comencemos.

En primer lugar, instale uWSGI usando el comando pip, como se muestra a continuación.

sudo pip install uwsgi

Una vez completada la instalación, cree un nuevo directorio para los archivos de host virtual de uWSGI. Por ejemplo, en nuestro caso, creamos '/etc/uwsgi/sites'.

mkdir -p /etc/uwsgi/sites

Vaya al directorio recién creado y cree una nueva configuración uWSGI de askbot con vim.

cd /etc/uwsgi/sites
vim askbot.ini

Pegue la siguiente configuración en el archivo.

[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 = /run/uwsgi/askbot.sock
chmod-socket = 664
uid = askbot
gid = nginx
vacuum = true

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

Eso es todo. Guarde el archivo y salga del editor.

A continuación, agregue un nuevo archivo de script de servicio uWSGI al directorio '/etc/systemd/system'. Vaya al directorio y cree el archivo 'uwsgi.service' con vim.

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

Pegue la siguiente configuración del servicio uWSGI en el archivo.

[Unit]
Description=uWSGI Emperor 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

Guardar y salir.

Ahora, vuelva a cargar los servicios de systemd y habilite uWSGI para que se inicie automáticamente en el momento del arranque.

systemctl daemon-reload
systemctl enable uwsgi

Entonces, con esto, se instaló uWSGI y debería verlo ejecutándose como un servicio.

Paso 5:instalar y configurar el servidor web Nginx

Entonces, 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'.

Para empezar, instala Nginx con el comando yum.

yum -y install nginx

Ahora vaya al directorio 'conf.d' de Nginx y cree un nuevo archivo de host virtual 'askbot.conf' con el editor vim.

cd /etc/nginx/conf.d/
vim askbot.conf

Pegue la siguiente configuración de Askbot Nginx en el archivo.

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

Guarde el archivo y salga del editor. Ahora, pruebe la configuración para asegurarse de que no haya ningún error.

nginx -t

A continuación, inicie los servicios Nginx y uWSGI.

systemctl start nginx
systemctl start uwsgi

Y habilítelos para que se inicien automáticamente en el momento del arranque.

systemctl enable nginx
systemctl enable uwsgi

Entonces, Nginx ahora está instalado como un proxy inverso para la aplicación uWSGI 'Askbot'.

Paso 6:probar la configuración

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

Aquí está la página de inicio de sesión de usuario de Askbot:

Panel de usuario de Askbot:

Configuración de administrador de Askbot:

Inicio de sesión del administrador de Askbot Django:

Panel de administración de Askbot Django:

Por lo tanto, la aplicación del sistema de preguntas y respuestas 'Askbot' se instaló correctamente con el servidor web uWSGI y Nginx en el servidor CentOS 7.


Cent OS
  1. Cómo instalar y configurar Nginx en CentOS 8

  2. Cómo instalar y configurar Nginx en CentOS 7

  3. Cómo instalar y configurar Redis en CentOS 7

  4. Cómo instalar y configurar GitLab en CentOS 7

  5. Cómo instalar y configurar Nextcloud con Apache en CentOS 7

Cómo instalar OwnCloud 8 con Nginx y MariaDB en CentOS 7

Cómo instalar y configurar OpenLiteSpeed ​​con PHP 7 en CentOS 7

Cómo instalar Askbot con Nginx y Secure con Lets Encrypt en CentOS 8

Instalación y configuración de PhpMyAdmin con Nginx en CentOS 7

Cómo instalar OwnCloud 8 con Nginx y PHP-FPM en CentOS 6

Cómo instalar y configurar MariaDB en CentOS/RHEL 7