웹사이트 검색

CentOS 7에서 Nginx로 Askbot을 설치하고 구성하는 방법


이 페이지에서

  1. 우리가 할 일\n
  2. 전제 조건
  3. 1단계 - 종속성 설치
  4. 2단계 - PostgreSQL 설치 및 구성
  5. 3단계 - Askbot 설치 및 구성
  6. 4단계 - uWSGI 설치 및 구성
  7. 5단계 - Nginx 웹서버 설치 및 구성
  8. 6단계 - 설정 테스트
  9. 참조

Askbot은 Python Django Framework를 기반으로 Q&A 포럼을 만들기 위한 오픈 소스 소프트웨어입니다. 기본적으로 StackOverflow, Yahoo Answers 등과 같은 Q&A 시스템입니다. Mike Chan과 Sailing Cai가 2009년에 만들었으며 Ubuntu 및 CentOS와 같은 Linux 시스템에 쉽게 설치하고 구성할 수 있습니다. Fedora 및 LibreOffice와 같은 많은 대규모 오픈 소스 소프트웨어 프로젝트에서 이를 사용하고 있습니다.

이 튜토리얼에서는 CentOS 7 시스템에서 uWSGI 및 Nginx 웹 서버를 사용하여 Askbot Python Django 애플리케이션을 설치하는 방법을 보여줍니다. 데이터베이스의 경우 Askbot 설치를 위해 PostgreSQL을 사용할 것입니다.

우리가 할 일

  1. 종속성 설치
  2. PostgreSQL 설치 및 구성
  3. Askbot 설치 및 구성
  4. uWSGI 설치 및 구성
  5. Nginx 웹서버 설치 및 구성
  6. 설정 테스트

전제 조건

  • CentOS 7 서버
  • 루트 권한\n

1단계 - 종속성 설치

이 단계에서는 성공적인 Askbot 설치에 필요한 일부 패키지를 설치합니다. 여기에는 개발 도구, Epel 리포지토리 및 일부 Python 관련 도구(Python 패키지 관리용)가 포함됩니다. 시작하겠습니다.

먼저 아래의 yum group 명령으로 CentOS 개발 도구를 설치합니다.

yum group install 'Development Tools'

그런 다음 Epel 저장소를 설치하십시오.

yum -y install epel-release

마지막으로 python pip, python-devel 및 python six를 포함한 python 패키지를 설치합니다.

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

2단계 - PostgreSQL 설치 및 구성

이제 CentOS 저장소에서 사용할 수 있는 PostgreSQL 데이터베이스가 필요합니다. 이 섹션에서는 PostgreSQL 데이터베이스를 설치하고, postgres 암호 사용자를 변경하고, Askbot 설치를 위한 새 사용자 및 데이터베이스를 만들고, 마지막으로 postgres 인증 구성을 변경하는 방법에 대해 설명합니다.

따라서 아래의 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에 대한 새 데이터베이스와 사용자를 만듭니다. 예를 들어 hakase123이라는 암호와 askbotdb라는 데이터베이스를 사용하여 새 사용자 hakaselabs를 생성하려고 합니다. 다음 postgres 쿼리는 이러한 모든 것을 생성하는 데 도움이 됩니다.

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

이제 Askbot 설치를 위한 데이터베이스와 사용자가 생성되었습니다. 다음 단계는 pgsql/data 디렉터리로 이동하고 vim으로 pg_hba.conf 파일을 편집하여 인증 설정을 위한 postgres 구성을 편집하는 것입니다.

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이라는 사용자로 virtualenv python을 사용하여 Askbot을 설치합니다. 시작하겠습니다.

먼저 새 사용자 askbot을 만들고 사용자에게 새 비밀번호를 제공합니다.

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

그런 다음 sudo 명령 액세스를 위해 휠 그룹에 askbot 사용자를 추가합니다(sudo가 무엇인지 잘 모르시겠습니까? 여기에서 자세히 알아보세요).

usermod -a -G wheel askbot

이제 pip를 최신 버전으로 업그레이드하고 python virtualenv 패키지를 설치하십시오.

pip install --upgrade pip
pip install virtualenv six

다음. askbot 사용자로 로그인하고 virtualenv로 새로운 파이썬 가상 환경 hakase-labs를 만듭니다.

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

다음으로 Askbot 프로젝트를 위한 새 디렉터리를 만듭니다. 디렉토리 이름으로 askbot을 사용하지 않도록 하십시오. 예를 들어 우리의 경우 myapp이라는 새 디렉토리를 만들었습니다.

mkdir myapp/

myapp 디렉터리로 이동하여 askbot-setup 명령을 실행합니다.

cd myapp/
askbot-setup

askbot-setup 명령은 특정 사항을 묻습니다. 예를 들어 Askbot을 배포할 디렉터리 경로에 대해 묻는 메시지가 표시됩니다. 를 입력할 수 있습니다. 계속하려면 Enter 키를 누릅니다. 마찬가지로 데이터베이스 엔진에 대해 물으면 postgresql을 사용하려면 1을 입력하고 Enter 키를 누릅니다. 데이터베이스 관련 세부 정보를 보려면 데이터베이스 이름을 askbotdb로, 데이터베이스 사용자를 hakaselabs로, 암호를 hakase123으로 입력하십시오.

이제 Askbot이 myapp 디렉토리에 설치되었습니다. 이제 Askbot Django 정적 파일과 데이터베이스를 생성해야 합니다.

Askbot Django 정적 파일을 생성하려면 아래 명령을 실행하십시오.

python manage.py collectstatic

확인을 요청하면 yes를 입력하고 Enter 키를 누릅니다.

이제 데이터베이스를 생성하기 위해 아래와 같이 syncdb를 실행합니다.

python manage.py syncdb

관리 사용자 및 암호 생성에 대한 메시지가 표시됩니다. 따라서 요청을 받으면 관리자 구성을 위한 사용자 이름, 이메일 및 비밀번호를 입력하십시오.

이제 Askbot이 설치되었고 정적 파일이 생성되었으며 데이터베이스 구성이 완료되었습니다.

아래 runserver 명령으로 Askbot 설치를 테스트할 수 있습니다.

python manage.py runserver 0.0.0.0:8080

웹 브라우저를 열고 서버 IP 주소를 입력하면 다음과 유사한 페이지가 표시됩니다.

4단계 - uWSGI 설치 및 구성

우리는 Askbot Django 프로젝트의 서비스로 uWSGI를 사용할 것입니다. 특히 Askbot 설치를 위해 Nginx 웹 서버와 함께 uWSGI를 사용할 것입니다. 시작하겠습니다.

먼저 아래와 같이 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

이것으로 uWSGI가 설치되었고 서비스로 실행되는 것을 볼 수 있습니다.

5단계 - Nginx 웹 서버 설치 및 구성

이제 Askbot이 설치되고 uWSGI 양말 파일 askbot.sock에서 실행됩니다. 이 단계에서는 Nginx 웹 서버를 uWSGI 애플리케이션 Askbot의 리버스 프록시로 사용합니다.

먼저 yum 명령으로 Nginx를 설치합니다.

yum -y install nginx

이제 Nginx conf.d 디렉토리로 이동하여 vim 편집기로 새로운 가상 호스트 파일 askbot.conf를 생성합니다.

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 관리 대시보드:

따라서 Q&A 시스템 애플리케이션 Askbot이 CentOS 7 서버에 uWSGI 및 Nginx 웹 서버와 함께 성공적으로 설치되었습니다.

참조

  • https://askbot.org/en/