Поиск по сайту:

Как установить и настроить Askbot в Ubuntu 16.04


На этой странице

  1. Предпосылки
  2. Шаг 1. Установите зависимости
  3. Шаг 2. Установите и настройте базу данных PostgreSQL.
  4. Шаг 3. Установите и настройте приложение Askbot Django.
  5. Шаг 4. Установите и настройте uWSGI
  6. Шаг 5. Установите и настройте Nginx
  7. Шаг 6. Тестирование
  8. Справочник

Askbot — это программное обеспечение с открытым исходным кодом для создания форума вопросов и ответов на основе Python Django Framework. Он похож на другие системы вопросов и ответов, такие как StackOverflow и Yahoo Answers. Этот инструмент использовался крупными проектами программного обеспечения с открытым исходным кодом, такими как Fedora и LibreOffice. Askbot был создан Майком Чаном и Sailing Cai в 2009 году, и его легко установить и настроить в системах Linux, таких как Ubuntu и CentOS.

В этом руководстве мы покажем вам, как шаг за шагом установить приложение Askbot Django с использованием uWSGI и веб-сервера Nginx, и мы будем использовать Ubuntu 16.04 Xenial Xerus в качестве нашей основной операционной системы.

Что мы будем делать:

  1. Установить зависимости
  2. Установка и настройка базы данных PostgreSQL.
  3. Установите и настройте Askbot
  4. Установите и настройте uWSGI.
  5. Установите и настройте Nginx.
  6. Тестирование

Предпосылки

  • Убунту 16.04
  • Привилегии root

Шаг 1 — Установите зависимости

Первый шаг, который мы должны сделать, это установить пакеты, необходимые для установки Askbot. Итак, начнем. Подключитесь к вашему серверу Ubuntu с помощью SSH.

ssh 

Затем установите такие пакеты, как python-dev, pip и т. д., с помощью следующей команды apt.

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

Все необходимые пакеты установлены.

Шаг 2. Установите и настройте базу данных PostgreSQL.

Askbot предлагает поддержку многих систем баз данных, таких как MySQL, SQLite и PostreSQL. В этом руководстве мы будем использовать PostgreSQL в качестве нашей системы баз данных.

Мы установим PostgreSQL, настроим аутентификацию для локального пользователя, а затем создадим новую базу данных и пользователя для установки Askbot.

Установите базу данных PostgreSQL с помощью следующей команды apt.

apt install -y postgresql postgresql-contrib

Теперь отредактируйте файл pg_hba.conf с помощью vim, чтобы настроить локальную аутентификацию пользователей.

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

Измените аутентификацию всех локальных пользователей с помощью md5, как показано ниже.

local   all             all                                     md5

Сохранить и выйти. Теперь перезапустите службы PostgreSQL и включите их автоматический запуск при загрузке системы.

systemctl restart postgresql
systemctl enable postgresql

Далее нам нужно создать новую базу данных и пользователя для установки Askbot. В нашем случае мы создадим новую базу данных askbotdb с именем пользователя hakaselabs и паролем hakase123.

Войдите в систему как пользователь postgres и получите доступ к psql оболочки PostgreSQL.

su - postgres
psql

Измените пароль пользователя postgres на свой собственный.

\password postgres

И создайте новую базу данных askbotdb и нового пользователя hakaselabs с паролем hakase123, используя следующие запросы.

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

Создана новая база данных PostgreSQL для установки Askbot.

Шаг 3. Установите и настройте приложение Askbot Django.

Все пакеты, необходимые для установки Askbot, установлены, база данных PostgreSQL создана. Теперь следующий шаг — установить и настроить Askbot.

Нам нужно создать нового пользователя для установки Askbot, так как мы не будем использовать для этого пользователя root. Создайте нового пользователя с именем askbot и дайте этому пользователю новый пароль.

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

Затем добавьте пользователя askbot в группу sudo с помощью следующей команды usermod.

usermod -a -G sudo askbot

Создан новый пользователь. Теперь нам нужно обновить python-pip и установить пакет virtualenv. Установите эти пакеты, используя следующие команды pip.

pip install --upgrade pip
pip install virtualenv

Теперь войдите в систему как пользователь askbot с помощью команды su, а затем установите Askbot.

su - askbot

И мы хотим создать новую виртуальную среду для нашей установки askbot. Создайте новую виртуальную среду с помощью команды virtualenv.

virtualenv hakase-labs

Перейдите в каталог hakase-labs и активируйте файл virtualenv.

cd hakase-labs/
source bin/activate

Установите приложение Askbot Django с pip, включая psycopg2 для подключения к базе данных PostgreSQL.

pip install askbot psycopg2

После завершения установки вы увидите результат, как показано ниже.

Затем создайте новый каталог для приложения Askbot Django — мы будем использовать имя myapp. Создайте каталог и установите в него Askbot.

mkdir myapp/
cd myapp

Установите Askbot с помощью команды ниже.

askbot-setup

Когда вас спросят о каталоге установки Askbot, просто дайте единственный . и нажмите Enter. Точно так же для конфигурации базы данных выберите PostgreSQL, выбрав номер 1. Введите имя базы данных askbotdb, имя пользователя hakaselabs с паролем hakase123.

Теперь создайте каталог статических файлов с помощью следующей команды.

python manage.py collectstatic

Введите yes и нажмите Enter, чтобы продолжить.

Создайте базу данных PostgreSQL с параметром syncdb.

python manage.py syncdb

И вас спросят о создании пользователя-администратора — введите «да», а затем введите пользователя-администратора, адрес электронной почты и пароль.

Askbot теперь установлен в системе в виртуальной среде пользователя askbot. Вы можете протестировать установку Askbot, выполнив приведенную ниже команду runserver.

python manage.py runserver 0.0.0.0:8080

Откройте веб-браузер и введите IP-адрес сервера с портом 8080, и вы увидите страницу Askbot, как показано ниже.

Шаг 4 — Установите и настройте uWSGI

uWSGI поддерживает приложения на основе Python, Perl и Ruby. В этом руководстве мы будем использовать uWSGI с веб-сервером Nginx для нашей установки Askbot. Установите uWSGI с помощью следующей команды pip.

sudo pip install uwsgi

Теперь создайте новый каталог для конфигурации сайта uWSGI /etc/uwsgi/sites.

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

Добавьте новый файл конфигурации uWSGI askbot.ini в каталог сайтов и отредактируйте его с помощью vim.

vim askbot.ini

Вставьте следующую конфигурацию 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

Вот и все. Сохранить и выйти.

Далее нам нужно создать новый служебный файл для uWSGI. Перейдите в каталог /etc/systemd/system/ и создайте новый файл uwsgi.service с помощью vim.

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

Вставьте туда следующую конфигурацию службы uWSGI.

[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

Сохранить и выйти. Затем перезагрузите службы systemd.

systemctl daemon-reload

Теперь запустите службу uWSGI и включите ее автоматический запуск при загрузке системы.

systemctl start uwsgi
systemctl enable uwsgi

uWSGI был установлен и настроен для нашего приложения Askbot и работает как системная служба.

Шаг 5 — Установите и настройте Nginx

Теперь Askbot установлен и работает под sock-файлом uWSGI askbot.sock. На этом этапе мы будем использовать веб-сервер Nginx в качестве обратного прокси-сервера для приложения uWSGI Askbot.

Установите Nginx из репозитория с помощью следующей команды apt.

apt install nginx

После завершения установки перейдите в каталог конфигурации nginx /etc/nginx/ и добавьте новый файл виртуального хоста nginx askbot.

cd /etc/nginx
vim sites-available/askbot

Вставьте следующую конфигурацию виртуального хоста 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;
   }
}

Сохранить и выйти.

Теперь включите файл виртуального хоста Askbot, создав символическую ссылку для файла askbot на каталог с поддержкой сайтов и протестируйте конфигурацию nginx.

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

Виртуальный хост Askbot включен. Теперь перезапустите службы nginx и включите их автоматический запуск при загрузке системы.

systemctl restart nginx
systemctl enable nginx

Настройка Nginx завершена, и он работает на порту 80. Проверьте это с помощью команды netstat, как показано ниже.

netstat -plntu

Теперь проверьте askbot, проверив файл sock uWSGI с помощью следующей команды netstat.

netstat -pl | grep askbot

Веб-сервер Nginx был установлен и настроен для приложения Askbot Python Django.

Шаг 6 — Тестирование

Откройте веб-браузер и перейдите на доменное имя Askbot: askbot.me, и вы должны открыть домашнюю страницу, как показано ниже.

Логин пользователя Askbot.

Панель пользователя Askbot.

Настройки аскбота.

Вход администратора Askbot Django.

Панель администратора Askbot Django.

Системное приложение вопросов и ответов Askbot было установлено с веб-сервером uWSGI и Nginx на сервере Ubuntu 16.04.

Ссылка