如何在 Ubuntu 16.04 上安装和配置 Askbot如何在 Ubuntu 16.04 上安装和配置 Askbot如何在 Ubuntu 16.04 上安装和配置 Askbot如何在 Ubuntu 16.04 上安装和配置 Askbot
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 16.04 上安装和配置 Askbot

在此页

  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 由 Mike Chan 和 Sailing Cai 于 2009 年创建,在 Ubuntu 和 CentOS 等 Linux 系统上易于安装和配置。

在本教程中,我们将向您展示如何使用 uWSGI 和 Nginx Web 服务器逐步安装 Askbot Django App,我们将使用 Ubuntu 16.04 Xenial Xerus 作为我们的主要操作系统。

我们将要做什么:

  1. 安装依赖
  2. 安装和配置 PostgreSQL 数据库
  3. 安装和配置 Askbot
  4. 安装和配置 uWSGI
  5. 安装和配置 Nginx
  6. 测试

先决条件

  • Ubuntu 16.04
  • 根权限

第 1 步 - 安装依赖项

我们必须做的第一步是安装安装 Askbot 所需的软件包。那么让我们开始吧。使用 SSH 连接到您的 Ubuntu 服务器。

ssh 

接下来,使用以下 apt 命令安装 python-dev、pip 等软件包。

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 安装创建一个新的数据库和用户。

使用以下 apt 命令安装 PostgreSQL 数据库。

apt install -y postgresql postgresql-contrib

现在使用 vim 编辑 pg_hba.conf 文件以配置本地用户身份验证。

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

使用 md5 更改所有本地用户身份验证,如下所示。

local   all             all                                     md5

保存并退出。现在,重新启动 PostgreSQL 服务并使其在系统启动时自动启动。

systemctl restart postgresql
systemctl enable postgresql

接下来,我们需要为 Askbot 安装创建一个新的数据库和用户。对于我们的案例,我们将使用用户名 hakaselabs 和密码 hakase123 创建一个新的数据库 askbotdb。

以 postgres 用户身份登录并访问 PostgreSQL shell psql。

su - postgres
psql

使用您自己的密码更改 postgres 用户密码。

\password postgres

并使用以下查询创建新数据库 askbotdb 和密码为 hakase123 的新用户 hakaselabs。

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

已创建用于 Askbot 安装的新 PostgreSQL 数据库。

第 3 步 - 安装和配置 Askbot Django 应用程序

安装 Askbot 所需的所有软件包均已安装,并且已创建 PostgreSQL 数据库。现在,下一步是安装和配置 Askbot。

我们需要为 Askbot 安装创建一个新用户,因为我们不会为此使用 root 用户。创建一个名为 askbot 的新用户并为该用户指定一个新密码。

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

接下来,使用以下 usermod 命令将 askbot 用户添加到 sudo 组。

usermod -a -G sudo askbot

已创建新用户。现在我们需要更新 python-pip 并安装 virtualenv 包。使用以下 pip 命令安装这些包。

pip install --upgrade pip
pip install virtualenv

现在,使用 su 命令以 askbot 用户身份登录,然后安装 Askbot。

su - askbot

我们想为我们的 askbot 安装创建一个新的虚拟环境。使用 virtualenv 命令创建一个新的虚拟环境。

virtualenv hakase-labs

转到 hakase-labs 目录并激活 virtualenv。

cd hakase-labs/
source bin/activate

使用 pip 安装 Askbot Django 应用程序,包括用于 PostgreSQL 数据库连接的 psycopg2。

pip install askbot psycopg2

安装完成后,您将看到如下所示的结果。

接下来,为 Askbot Django 应用程序创建一个新目录 - 我们将使用名称 myapp。创建目录并在其中安装 Askbot。

mkdir myapp/
cd myapp

使用以下命令安装 Askbot。

askbot-setup

当系统询问 Askbot 安装目录时,只需提供单个 .然后按 Enter。同样,对于数据库配置,通过选择数字 1 选择 PostgreSQL。输入数据库名称 askbotdb,用户名 hakaselabs 和密码 hakase123。

现在,使用以下命令生成静态文件目录。

python manage.py collectstatic

输入 yes 并按 Enter 键继续。

使用 syncdb 选项生成 PostgreSQL 数据库。

python manage.py syncdb

系统将询问您是否创建管理员用户 - 输入是,然后输入您的管理员用户、电子邮件和密码。

Askbot现在安装在askbot用户虚拟环境下的系统上。您可以通过运行下面的 runserver 命令来测试 Askbot 安装。

python manage.py runserver 0.0.0.0:8080

打开您的网络浏览器并输入端口为 8080 的服务器 IP,您将看到 Askbot 页面,如下所示。

第 4 步 - 安装和配置 uWSGI

uWSGI 支持基于 Python、Perl 和 Ruby 的应用程序。在本教程中,我们将使用 uWSGI 和 Nginx 网络服务器来安装 Askbot。使用以下 pip 命令安装 uWSGI。

sudo pip install uwsgi

现在为 uWSGI 站点配置创建一个新目录 /etc/uwsgi/sites。

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

将新的 uWSGI 配置文件 askbot.ini 添加到 sites 目录并使用 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/ 目录并使用 vim 创建一个新的 uwsgi.service 文件。

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 现已安装,并在 uWSGI sock 文件 askbot.sock 下运行。在这一步中,我们将使用 Nginx 网络服务器作为 uWSGI 应用程序 Askbot 的反向代理。

使用以下 apt 命令从存储库安装 Nginx。

apt install nginx

安装完成后,进入nginx配置目录/etc/nginx/,添加新的nginx虚拟主机文件askbot.conf。

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 文件创建一个指向 sites-enabled 目录的符号链接来启用 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

现在通过使用以下 netstat 命令检查 uWSGI sock 文件来检查 askbot。

netstat -pl | grep askbot

已为 Askbot Python Django 应用程序安装和配置 Nginx Web 服务器。

第 6 步 - 测试

打开您的网络浏览器并访问 Askbot 域名:askbot.me,您应该会看到如下所示的主页。

Askbot 用户登录。

Askbot 用户仪表板。

询问机器人设置。

Askbot Django 管理员登录。

Askbot Django 管理仪表板。

问答系统应用 Askbot 已在 Ubuntu 16.04 服务器上安装了 uWSGI 和 Nginx Web 服务器。

参考

©2015-2025 艾丽卡 support@alaica.com