如何在CentOS 7上使用Nginx安装和配置Askbot

Askbot是一个基于Python Django框架创建问答论坛的开源软件。它基本上是一个问答系统,如StackOverflow、Yahoo Answers等。由Mike Chan和Sailing Cai于2009年创建,在Ubuntu和CentOS等Linux系统上易于安装和配置。许多大型开源软件项目,如Fedora和LibreOffice,都在使用它。

在本教程中,我们将向您展示如何在CentOS 7系统上使用uWSGI和Nginx web服务器安装Askbot Python Django应用程序。至于数据库,我们将使用PostgreSQL进行Askbot安装。

准备做什么
安装依赖项
安装并配置PostgreSQL
安装并配置Askbot
安装并配置uWSGI
安装并配置Nginx Web服务器
测试设置

条件
CentOS 7服务器
Root权限

步骤1-安装依赖项
在此步骤中,我们将安装一些成功安装Askbot所需的软件包。这些工具包括“开发工具”、Epel存储库和一些与python相关的工具(用于管理python包)。那么,让我们开始吧。

首先,使用下面的yum group命令安装CentOS的“开发工具”。

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
图片[1]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

步骤2-安装和配置PostgreSQL
现在我们需要PostgreSQL数据库,它可以在CentOS存储库中找到。在本节中,我们将讨论如何安装PostgreSQL数据库,更改postgres密码用户,为Askbot安装创建新的用户和数据库,最后更改postgress身份验证配置。

因此,让我们从使用下面的yum命令从存储库安装PostgreSQL开始。

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”目录并使用vim编辑“pg_hba.conf”文件来完成。

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,并使用virtualenv python。那么,让我们开始吧。

首先,创建一个新用户“askbot”,并给用户一个新密码。

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

然后将“askbot”用户添加到“wheel”组以访问sudo命令(不确定“sudo”是什么?在此处了解更多信息)。

usermod -a -G wheel askbot
图片[2]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

现在将pip升级到最新版本并安装python-virtualenv包。

pip install --upgrade pip
pip install virtualenv six
图片[3]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

下一个。以askbot用户身份登录,使用virtualenv创建新的python虚拟环境hakaselabs。

su - askbot
virtualenv hakase-labs/

转到“hakase-labs”目录并激活Askbot安装的虚拟环境。

cd hakase-labs/
source bin/activate

现在,在“hakase-labs”虚拟环境中使用pip命令安装askbot和其他python包。

pip install six 
pip install askbot psycopg2
图片[4]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

接下来,为“Askbot”项目创建一个新目录。请确保您没有使用“askbot”作为目录名。例如,在我们的例子中,我们创建了一个名为“myapp”的新目录

mkdir myapp/

转到myapp目录并运行“askbot setup”命令。

cd myapp/
askbot-setup

“askbot setup”命令将询问您某些问题。例如,系统会询问您部署Askbot的目录路径,您可以键入“”然后按Enter键继续。同样,当被问及数据库引擎时,键入“1”以使用postgresql并按Enter键。有关数据库的详细信息,请输入数据库名称为“askbotdb”,数据库用户为“hakaselabs”,密码为“hagase123”。

图片[5]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

因此,Askbot现在安装在“myapp”目录中。现在我们需要生成Askbot Django静态文件和数据库。

运行以下命令生成Askbot Django静态文件。

python manage.py collectstatic

当系统要求确认时,键入“yes”并按Enter键。

图片[6]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

现在,要生成数据库,请按如下方式运行syncdb。

python manage.py syncdb

系统将询问您如何创建管理员用户和密码。因此,当被询问时,键入用户名、电子邮件和密码进行管理员配置。

图片[7]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

至此,Askbot已安装,静态文件已生成,数据库配置已完成。

您可以使用下面的runserver命令测试Askbot安装。

python manage.py runserver 0.0.0.0:8080

打开Web浏览器并键入服务器IP地址,您应该会看到类似以下内容的页面:

图片[8]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

步骤4-安装和配置uWSGI
我们将使用uWSGI作为Askbot Django项目的服务。具体来说,我们将使用uWSGI和Nginx web服务器进行Askbot安装。那么,让我们开始吧。

首先,使用pip命令安装uWSGI,如下所示。

sudo pip install uwsgi

安装完成后,为uWSGI虚拟主机文件创建一个新目录。例如,在我们的例子中,我们创建了“/etc/uwsgi/sites”。

mkdir -p /etc/uwsgi/sites

转到新创建的目录,使用vim创建新的askbot uWSGI配置。

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”目录中。转到目录并使用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: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
图片[9]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

因此,uWSGI已经安装,您应该看到它作为服务运行。

步骤5-安装并配置Nginx Web服务器
因此,Askbot现在已安装,并在uWSGI sock文件“Askbot.sock”下运行。在这一步中,我们将使用Nginx web服务器作为uWSGI应用程序“Askbot”的反向代理。

首先,使用yum命令安装Nginx。

yum -y install nginx

现在转到Nginx的conf.d目录,使用vim编辑器创建新的虚拟主机文件askbot.conf。

cd /etc/nginx/conf.d/
vim askbot.conf
图片[10]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

将以下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
图片[11]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

因此,Nginx现在被安装为uWSGI应用程序“Askbot”的反向代理。

步骤6-测试设置
打开您的网络浏览器,访问Askbot域名:Askbot.me,您将看到主页,如下所示。

图片[12]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

这是Askbot用户登录页面:

图片[13]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

Askbot用户仪表板:

图片[14]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

Askbot管理员设置:

图片[15]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

Askbot Django管理员登录:

图片[16]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

Askbot Django管理仪表板:

图片[17]_如何在CentOS 7上使用Nginx安装和配置Askbot_马特资源网

因此,问答系统应用程序“Askbot”已成功安装在CentOS 7服务器上的uWSGI和Nginx web服务器上。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容