웹사이트 검색

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를 기반으로 Q&A 포럼을 만들기 위한 오픈 소스 소프트웨어입니다. StackOverflow 및 Yahoo Answers와 같은 다른 Q&A 시스템과 유사합니다. 이 도구는 Fedora 및 LibreOffice와 같은 대규모 오픈 소스 소프트웨어 프로젝트에서 사용되었습니다. Askbot은 Mike Chan과 Sailing Cai가 2009년에 만들었으며 Ubuntu 및 CentOS와 같은 Linux 시스템에 쉽게 설치하고 구성할 수 있습니다.

이 튜토리얼에서는 uWSGI 및 Nginx 웹 서버를 사용하여 Askbot Django 앱을 단계별로 설치하는 방법을 보여주고 Ubuntu 16.04 Xenial Xerus를 기본 운영 체제로 사용합니다.

우리가 할 일:

  1. 종속성 설치
  2. PostgreSQL 데이터베이스 설치 및 구성
  3. Askbot 설치 및 구성
  4. uWSGI 설치 및 구성
  5. Nginx 설치 및 구성
  6. 테스트

전제 조건

  • 우분투 16.04
  • 루트 권한\n

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 셸 psql에 액세스합니다.

su - postgres
psql

자신의 비밀번호로 postgres 사용자 비밀번호를 변경하십시오.

\password postgres

그리고 다음 쿼리를 사용하여 암호가 hakase123인 새 데이터베이스 askbotdb 및 새 사용자 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 설치를 위해 루트 사용자를 사용하지 않기 때문에 새 사용자를 생성해야 합니다. 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

PostgreSQL 데이터베이스 연결용 psycopg2를 포함하여 pip로 Askbot Django 앱을 설치합니다.

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 기반 애플리케이션을 지원합니다. 이 튜토리얼에서는 Askbot 설치를 위해 Nginx 웹 서버와 함께 uWSGI를 사용할 것입니다. 다음 pip 명령으로 uWSGI를 설치합니다.

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/ 디렉토리로 이동하고 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 양말 파일 askbot.sock에서 실행됩니다. 이 단계에서는 Nginx 웹 서버를 uWSGI 애플리케이션 Askbot의 리버스 프록시로 사용합니다.

다음 apt 명령을 사용하여 리포지토리에서 Nginx를 설치합니다.

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 파일에 대한 symlink를 사이트 활성화 디렉토리에 생성하여 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

Nginx 웹 서버가 Askbot Python Django 앱용으로 설치 및 구성되었습니다.

6단계 - 테스트

웹 브라우저를 열고 Askbot 도메인 이름: askbot.me를 방문하면 아래와 같이 홈페이지가 나타납니다.

Askbot 사용자 로그인.

Askbot 사용자 대시보드.

애스크봇 설정.

Askbot Django 관리자 로그인.

Askbot Django 관리자 대시보드.

Q&A 시스템 앱 Askbot은 Ubuntu 16.04 서버에 uWSGI 및 Nginx 웹 서버와 함께 설치되었습니다.

참조