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

Как установить и настроить Askbot с Nginx на CentOS 7


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

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

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

В этом руководстве мы покажем вам, как установить приложение Askbot Python Django с использованием веб-сервера uWSGI и Nginx в системе CentOS 7. Что касается базы данных, мы будем использовать PostgreSQL для установки Askbot.

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

  1. Установить зависимости
  2. Установите и настройте PostgreSQL.
  3. Установите и настройте Askbot
  4. Установите и настройте uWSGI.
  5. Установка и настройка веб-сервера Nginx
  6. Проверьте настройку

Предпосылки

  • Сервер CentOS 7
  • Привилегии root

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

На этом этапе мы установим некоторые пакеты, необходимые для успешной установки Askbot. К ним относятся средства разработки, репозиторий Epel и некоторые инструменты, связанные с Python (для управления пакетами Python). Итак, давайте начнем.

Сначала установите CentOS Development Tools с помощью команды yum group ниже.

yum group install 'Development Tools'

Затем установите репозиторий Epel.

yum -y install epel-release

И, наконец, установите пакеты python, включая python pip, python-devel и python six.

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

Шаг 2. Установите и настройте PostgreSQL.

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

Итак, давайте начнем с установки PostgreSQL из репозитория с помощью приведенной ниже команды yum.

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

После завершения установки нам нужно инициализировать базу данных, что вы можете сделать с помощью приведенной ниже команды.

postgresql-setup initdb

Двигаясь дальше, запустите postgres и включите его автоматический запуск во время загрузки.

systemctl start postgresql
systemctl enable postgresql

На этом этапе должна быть установлена база данных PostgreSQL. Далее нам нужно сбросить пароль пользователя postgres. Для этого сначала войдите в систему как пользователь postgres и получите доступ к инструменту командной строки psql.

su - postgres
psql

А затем дайте пользователю postgres новый пароль.

\password postgres

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

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

Итак, база данных и пользователь для установки Askbot созданы. Следующим шагом является редактирование конфигурации postgres для настройки аутентификации, что вы можете сделать, перейдя в каталог pgsql/data и отредактировав файл pg_hba.conf с помощью vim.

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

Оказавшись внутри файла, измените всю аутентификацию на md5, как показано ниже.

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

Теперь сохраните и закройте файл, а затем перезапустите службу postgres.

systemctl restart postgresql

Итак, база данных PostgreSQL уже установлена; создана база данных для установки Askbot; и метод аутентификации пользователя postgres был изменен на md5.

Шаг 3 - Установите и настройте Askbot

На этом этапе мы обсудим установку и настройку Askbot. Мы установим Askbot под пользователем с именем askbot и с использованием python virtualenv. Итак, давайте начнем.

Во-первых, создайте нового пользователя askbot и дайте пользователю новый пароль.

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

Затем добавьте пользователя askbot в группу wheel для доступа к команде sudo (не знаете, что такое sudo? Узнайте больше об этом здесь).

usermod -a -G wheel askbot

Теперь обновите pip до последней версии и установите пакет python virtualenv.

pip install --upgrade pip
pip install virtualenv six

Следующий. войдите в систему как пользователь askbot и создайте новую виртуальную среду Python hakase-labs с помощью virtualenv.

su - askbot
virtualenv hakase-labs/

Перейдите в каталог hakase-labs и активируйте виртуальную среду для установки Askbot.

cd hakase-labs/
source bin/activate

Теперь установите askbot и другие пакеты Python с помощью команды pip в виртуальной среде hakase-labs.

pip install six 
pip install askbot psycopg2

Затем создайте новый каталог для проекта Askbot. Пожалуйста, убедитесь, что вы не используете askbot в качестве имени каталога. В нашем случае, например, мы создали новый каталог с именем myapp

mkdir myapp/

Перейдите в каталог myapp и запустите команду askbot-setup.

cd myapp/
askbot-setup

Команда askbot-setup спросит вас об определенных вещах. Например, вас спросят о пути к каталогу для развертывания Askbot — вы можете ввести . и нажмите Enter, чтобы продолжить. Точно так же, когда вас спросят о движке базы данных, введите 1, чтобы использовать postgresql, и нажмите Enter. Для получения сведений о базе данных введите имя базы данных как askbotdb, пользователя базы данных как hakaselabs и пароль как hakase123.

Итак, Askbot теперь установлен в каталоге myapp. Теперь нам нужно сгенерировать статические файлы Askbot Django и базу данных.

Запустите команду ниже, чтобы сгенерировать статические файлы Askbot Django.

python manage.py collectstatic

При запросе подтверждения введите yes и нажмите Enter.

Теперь, чтобы сгенерировать базу данных, запустите syncdb, как показано ниже.

python manage.py syncdb

Вам будет предложено создать пользователя и пароль администратора. Поэтому, когда вас попросят, введите имя пользователя, адрес электронной почты и пароль для конфигурации администратора.

Итак, на данный момент Askbot установлен, статические файлы сгенерированы, а настройка базы данных завершена.

Вы можете протестировать установку Askbot с помощью команды runserver ниже.

python manage.py runserver 0.0.0.0:8080

Откройте веб-браузер и введите IP-адрес сервера, и вы должны увидеть страницу, похожую на следующую:

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

Мы будем использовать uWSGI в качестве сервиса для проекта Askbot Django. В частности, мы будем использовать uWSGI с веб-сервером Nginx для установки Askbot. Итак, давайте начнем.

Во-первых, установите uWSGI с помощью команды pip, как показано ниже.

sudo pip install uwsgi

После завершения установки создайте новый каталог для файлов виртуального хоста uWSGI. Например, в нашем случае мы создали /etc/uwsgi/sites.

mkdir -p /etc/uwsgi/sites

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

cd /etc/uwsgi/sites
vim askbot.ini

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

[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

Вот и все. Сохраните файл и выйдите из редактора.

Затем добавьте новый файл сценария службы 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:nginx /run/uwsgi'
ExecStart=/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target

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

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

systemctl daemon-reload
systemctl enable uwsgi

Таким образом, uWSGI был установлен, и вы должны увидеть, что он работает как служба.

Шаг 5. Установите и настройте веб-сервер Nginx.

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

Для начала установите Nginx с помощью команды yum.

yum -y install nginx

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

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

Вставьте следующую конфигурацию Askbot Nginx в файл.

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

Сохраните файл и выйдите из редактора. Теперь проверьте конфигурацию, чтобы убедиться в отсутствии ошибок.

nginx -t

Затем запустите службы Nginx и uWSGI.

systemctl start nginx
systemctl start uwsgi

И включить их автоматический запуск во время загрузки.

systemctl enable nginx
systemctl enable uwsgi

Таким образом, Nginx теперь установлен в качестве обратного прокси-сервера для приложения uWSGI Askbot.

Шаг 6 - Проверьте настройку

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

Вот страница входа пользователя Askbot:

Личный кабинет пользователя Askbot:

Настройка администратора Askbot:

Логин администратора Askbot Django:

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

Таким образом, системное приложение вопросов и ответов Askbot было успешно установлено с веб-сервером uWSGI и Nginx на сервере CentOS 7.

Ссылка

  • https://askbot.org/en/