Debian 10 安装 AskBot

Askbot 是一个免费的开源问答论坛应用程序,用 Python 和 Django 编写。 它简单、高度可定制,并且与包括 StackOverflow 和 YahooAnswers 在内的其他论坛软件非常相似。 它有一些不错的功能,包括基于业力的内容系统、投票和内容审核。 目前,它被 Fedora 和 LibreOffice 等开源项目使用。

在这篇文章中,我们将向我们展示 Debian 10 上安装 Askbot 论坛软件。

先决条件

  • 云平台上的全新 Debian 10 服务器
  • 指向我们的服务器的有效域名
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Debian 10 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 Debian 10 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

第 2 步 – 安装所需的依赖项

在开始之前,我们需要在服务器中安装一些 Python 依赖项。 我们可以通过运行以下命令来安装所有这些:

apt-get install python-dev python-setuptools python-pip sudo python-psycopg2 libpq-dev -y

安装完所有依赖项后,我们可以继续下一步。

第 3 步 – 安装和配置 PostgreSQL

Askbot 使用 PostgreSQL 或 MariaDB 作为数据库后端,因此我们需要在系统中安装任何数据库软件。 我们可以使用以下命令安装 PostgreSQL 数据库:

apt-get install postgresql -y

安装后,使用以下命令连接到 PostgreSQL shell:

su - postgres
[postgres@centos8 ~]$ psql

接下来,使用以下命令为 Askbot 创建数据库和用户:

postgres=# create database askbot;
postgres=# create user askbot with password 'password';

接下来,使用以下命令授予 askbot 的所有权限:

postgres=# grant all privileges on database askbot to askbot;

最后,使用以下命令退出 PostgreSQL shell:

postgres=# \q
exit

接下来,我们将需要编辑 PostgreSQL 主配置文件并启用 md5 身份验证。

nano /etc/postgresql/11/main/pg_hba.conf

更改以下行:

# "local" is for Unix domain socket connections only
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

保存并关闭文件,然后重新启动 PostgreSQL 以应用更改:

systemctl restart postgresql

第 4 步 – 安装 Askbot

首先,为 Askbot 创建一个用户并使用以下命令设置密码:

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

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

usermod -a -G sudo askbot

接下来,使用以下命令安装 python virtualenv 包:

pip install virtualenv six

安装后,将用户更改为 askbot 并使用以下命令为 Askbot 创建一个新的虚拟环境:

su - askbot
virtualenv askbot

接下来,将目录更改为 askbot 并使用以下命令激活虚拟环境:

cd askbot
source bin/activate

接下来,使用以下命令将 pip 升级到最新版本:

pip install --upgrade pip

接下来,使用以下命令安装 Askbot、Six 和 PostgreSQL 模块:

pip install six==1.10.0
pip install askbot==0.10.3 psycopg2

接下来,为我们的应用程序创建一个目录:

mkdir myapp

接下来,将目录更改为 myapp 并使用以下命令设置 Askbot:

cd myapp
askbot-setup

系统会要求我们提供安装路径:

Deploying Askbot - Django Q&A forum application
Problems installing? -> please email admin@askbot.org

To CANCEL - hit Ctr-C at any time

Enter directory path (absolute or relative) to deploy
askbot. To choose current directory - enter "."
> .

类型 。 并按 Enter 继续。 我们应该看到以下输出:

Please select database engine:
1 - for postgresql, 2 - for sqlite, 3 - for mysql, 4 - oracle
type 1/2/3/4: 1

输入 1 选择一个 postgresql 数据库引擎,然后按 Enter 继续。 我们应该看到以下输出:

Please enter database name (required)
> askbot

Please enter database user (required)
> askbot

Please enter database password (required)
> password

Press Enter for all other values

提供我们的 Askbot 数据库详细信息,然后按 Enter 完成设置。

接下来,使用以下命令生成静态文件:

python manage.py collectstatic

接下来,使用以下命令迁移数据库:

python manage.py migrate

接下来,使用以下命令启动 Askbot 服务器:

python manage.py runserver 0.0.0.0:8080 &

我们应该得到以下输出:

Performing system checks...

System check identified no issues (0 silenced).
March 24, 2021 - 03:07:43
Django version 1.8.19, using settings 'settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

按 CTRL+C 停止服务器。

第 5 步 – 安装和配置 Uwsgi

确保我们已从 virtualenv 退出到 root shell – 键入 exit

接下来,我们将需要安装 Uwsgi 来管理 Askbot 服务。 我们可以使用以下命令与 Nginx 一起安装它:

pip install uwsgi
apt-get install nginx -y

接下来,为 Uwsqi 创建一个站点目录并创建一个 askbok.ini 文件:

mkdir -p /etc/uwsgi/sites
nano /etc/uwsgi/sites/askbot.ini

添加以下行:

[uwsgi]

chdir = /home/askbot/askbot/myapp
home = /home/askbot/askbot
static-map = /m=/home/askbot/askbot/myapp/static
wsgi-file = /home/askbot/askbot/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 = www-data
vacuum = true
# uWSGI Log file
logto = /var/log/uwsgi.log

完成后保存并关闭文件。

第 6 步 – 为 Askbot 创建一个 Systemd 服务文件

接下来,我们需要创建一个 systemd 服务文件来管理 Askbot 服务。

nano /etc/systemd/system/uwsgi.service

添加以下行:

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

接下来,启动 Askbot 服务并使其在系统重新启动时启动:

systemctl start uwsgi
systemctl enable uwsgi

我们还可以使用以下命令验证 Askbot 的状态:

systemctl status uwsgi

我们应该得到以下输出:

● uwsgi.service - uWSGI service
   Loaded: loaded (/etc/systemd/system/uwsgi.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-03-24 09:12:55 UTC; 6s ago
  Process: 13609 ExecStartPre=/bin/bash -c mkdir -p /run/uwsgi; chown askbot:www-data /run/uwsgi (code=exited, status=0/SUCCESS)
 Main PID: 13612 (uwsgi)
   Status: "The Emperor is governing 1 vassals"
    Tasks: 7 (limit: 2359)
   Memory: 65.4M
   CGroup: /system.slice/uwsgi.service
           ├─13612 /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
           ├─13613 /usr/local/bin/uwsgi --ini askbot.ini
           ├─13617 /usr/local/bin/uwsgi --ini askbot.ini
           ├─13618 /usr/local/bin/uwsgi --ini askbot.ini
           ├─13619 /usr/local/bin/uwsgi --ini askbot.ini
           ├─13620 /usr/local/bin/uwsgi --ini askbot.ini
           └─13621 /usr/local/bin/uwsgi --ini askbot.ini

Mar 24 09:12:55 debian10 uwsgi[13612]: wer processes number limit is 7865
Mar 24 09:12:55 debian10 uwsgi[13612]: wer memory page size is 4096 bytes
Mar 24 09:12:55 debian10 uwsgi[13612]: detected max file descriptor number: 1024
Mar 24 09:12:55 debian10 systemd[1]: Started uWSGI service.
Mar 24 09:12:55 debian10 uwsgi[13612]: *** starting uWSGI Emperor ***
Mar 24 09:12:55 debian10 uwsgi[13612]: *** has_emperor mode detected (fd: 7) ***
Mar 24 09:12:55 debian10 uwsgi[13612]: [uWSGI] getting INI configuration from askbot.ini
Mar 24 09:12:55 debian10 uwsgi[13612]: [uwsgi-static] added mapping for /m => /home/askbot/askbot/myapp/static
Mar 24 09:12:56 debian10 uwsgi[13612]: Wed Mar 24 09:12:56 2021 - [emperor] vassal askbot.ini has been spawned
Mar 24 09:12:56 debian10 uwsgi[13612]: Wed Mar 24 09:12:56 2021 - [emperor] vassal askbot.ini is ready to accept requests

第 7 步 – 为 Askbot 配置 Nginx

接下来,我们需要配置 Nginx 来托管 Askbot 应用程序。

为此,请创建一个 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/askbot.conf

添加以下行:

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

保存并关闭文件,然后使用以下命令验证 Nginx 是否存在任何语法错误:

nginx -t

如果我们收到此错误:nginx: [emerg] 无法构建 server_names_hash,我们应该增加 server_names_hash_bucket_size: 32
nginx:配置文件 /etc/nginx/nginx.conf 测试失败类型:

纳米 /etc/nginx/nginx.conf

确保 server_names_hash_bucket_size 64; 未注释

接下来,重新启动 Nginx 以应用配置更改:

systemctl start nginx

第 8 步 – 访问 Askbot

现在,打开我们的 Web 浏览器并使用 URL http://askbot.example.com 访问 Askbot Web UI。 我们将被重定向到以下页面:

单击“登录”按钮。 我们应该看到以下页面;

提供我们的登录名、电子邮件和密码,然后单击“注册”按钮。 我们应该在以下页面上看到 Askbot 仪表板:

恭喜! 我们已在 Debian 10 上成功安装了带有 Nginx 的 Askbot。我们现在可以使用 Askbot 创建自己的问答论坛。 今天就在 的专用服务器上试试吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论