Как установить и настроить Askbot в Ubuntu 16.04
На этой странице
- Предпосылки
- Шаг 1. Установите зависимости
- Шаг 2. Установите и настройте базу данных PostgreSQL.
- Шаг 3. Установите и настройте приложение Askbot Django.
- Шаг 4. Установите и настройте uWSGI
- Шаг 5. Установите и настройте Nginx
- Шаг 6. Тестирование
- Справочник
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 в качестве нашей основной операционной системы.
Что мы будем делать:
- Установить зависимости
- Установка и настройка базы данных PostgreSQL.
- Установите и настройте Askbot
- Установите и настройте uWSGI.
- Установите и настройте Nginx.
- Тестирование
Предпосылки
- Убунту 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.