Askbotは、Python Django Frameworkに基づくQ&Aフォーラムを作成するためのオープンソースソフトウェアです。基本的には、StackOverflowやYahoo AnswersなどのQ&Aシステムです。 2009年にMikeChanとSailingCaiによって作成され、UbuntuやCentOSなどのLinuxシステムに簡単にインストールして構成できます。 FedoraやLibreOfficeのような多くの大規模なオープンソースソフトウェアプロジェクトがそれを使用しています。
このチュートリアルでは、CentOS7システムでuWSGIとNginxWebサーバーを使用してAskbotPythonDjangoアプリケーションをインストールする方法を示します。データベースに関しては、AskbotのインストールにPostgreSQLを使用します。
- 依存関係をインストールする
- PostgreSQLのインストールと構成
- Askbotのインストールと構成
- uWSGIをインストールして構成する
- NginxWebサーバーをインストールして構成する
- セットアップをテストする
- CentOS7サーバー
- root権限
このステップでは、Askbotのインストールを成功させるために必要ないくつかのパッケージをインストールします。これらには、「開発ツール」、Epelリポジトリ、およびいくつかのPython関連ツール(Pythonパッケージを管理するため)が含まれます。それでは始めましょう。
まず、以下のyumgroupコマンドを使用してCentOSの「開発ツール」をインストールします。
yum groupinstall'開発ツール'
次に、Epelリポジトリをインストールします。
yum -y install epel-release
そして最後に、python pip、python-devel、pythonsixなどのpythonパッケージをインストールします。
yum -y install python-pip python-devel python-six
ここで、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の新しいデータベースとユーザーを作成します。たとえば、新しいユーザー' hakaselabsを作成したいとします。 'パスワード付き'hakase123 '、および' askbotdbという名前のデータベース '。次のpostgresクエリは、これらすべてを作成するのに役立ちます。
データベースaskbotdbを作成します;
パスワード'hakase123'でユーザーhakaselabsを作成します;
データベースaskbotdbのすべての権限をhakaselabsに付与します;
これで、Askbotをインストールするためのデータベースとユーザーが作成されました。次のステップは、認証セットアップのpostgres構成を編集することです。これは、「pgsql / data」ディレクトリに移動し、「pg_hba.conf」ファイルをvimで編集することで実行できます。
cd /var/lib/pgsql/data/
vim pg_hba.conf
ファイル内に入ると、以下に示すように、すべての認証をmd5に変更します。
<前>地元すべてすべてのMD5#IPv4のローカル接続:
ホストすべてすべて127.0.0.1/32 md5の
#IPv6のローカル接続:すべてすべて
ホスト::1/128 md5
ここで、ファイルを保存して終了し、postgresサービスを再起動します。
systemctl restart postgresql
これで、PostgreSQLデータベースがインストールされました。 Askbotインストール用のデータベースが作成されました。また、postgresユーザー認証方法がmd5に変更されました。
このステップでは、Askbotのインストールと構成について説明します。 「askbot」という名前のユーザーの下で、virtualenvpythonを使用してAskbotをインストールします。それでは始めましょう。
まず、新しいユーザー「askbot」を作成し、ユーザーに新しいパスワードを与えます。
useradd -m -s / bin / bash askbot
passwd askbot
次に、「askbot」ユーザーを「wheel」グループに追加して、sudoコマンドにアクセスします(「sudo」が何であるかわからない場合は、こちらで詳細を確認してください)。
usermod -a -G Wheel askbot
次に、pipを最新バージョンにアップグレードし、pythonvirtualenvパッケージをインストールします。
pip install --upgrade pip
pip install virtualenv six
次。 'askbot'ユーザーとしてログインし、virtualenvを使用して新しいpython仮想環境'hakase-labs'を作成します。
su --askbot
virtualenv hakase-labs /
'hakase-labs'ディレクトリに移動し、Askbotをインストールするための仮想環境をアクティブ化します。
cd hakase-labs /
source bin / activate
次に、pipコマンドを使用してaskbotおよびその他のPythonパッケージを「hakase-labs」仮想環境にインストールします。
pip install six
pip install askbot psycopg2
次に、「Askbot」プロジェクトの新しいディレクトリを作成します。ディレクトリ名として「askbot」を使用しないように注意してください。たとえば、この例では、「myapp」という名前の新しいディレクトリを作成しました
mkdir myapp /
myappディレクトリに移動し、「askbot-setup」コマンドを実行します。
cd myapp /
askbot-setup
'askbot-setup'コマンドは、特定のことを尋ねます。たとえば、Askbotをデプロイするためのディレクトリパスについて尋ねられます。「。」と入力できます。 Enterキーを押して続行します。同様に、データベースエンジンについて尋ねられたら、「1」と入力してpostgresqlを使用し、Enterキーを押します。データベース関連の詳細については、データベース名を「askbotdb」、データベースユーザーを「hakaselabs」、パスワードを「hakase123」と入力してください。
これで、Askbotが「myapp」ディレクトリにインストールされました。次に、AskbotDjango静的ファイルとデータベースを生成する必要があります。
以下のコマンドを実行して、AskbotDjango静的ファイルを生成します。
python manage.py collectstatic
確認を求められたら、「はい」と入力してEnterキーを押します。
ここで、データベースを生成するには、以下のようにsyncdbを実行します。
python manage.py syncdb
管理者ユーザーとパスワードの作成について尋ねられます。したがって、尋ねられたら、管理者設定用のユーザー名、電子メール、およびパスワードを入力します。
これで、Askbotがインストールされ、静的ファイルが生成され、データベースの構成が完了しました。
以下のrunserverコマンドを使用してAskbotのインストールをテストできます。
python manage.py runserver 0.0.0.0:8080
Webブラウザを開き、サーバーのIPアドレスを入力すると、次のようなページが表示されます。
AskbotDjangoプロジェクトのサービスとしてuWSGIを使用します。具体的には、AskbotのインストールにNginxWebサーバーでuWSGIを使用します。それでは始めましょう。
まず、以下に示すように、pipコマンドを使用してuWSGIをインストールします。
sudo pip install uwsgi
インストールが完了したら、uWSGI仮想ホストファイル用の新しいディレクトリを作成します。たとえば、この例では、「/ etc / uwsgi/sites」を作成しました。
mkdir -p / etc / uwsgi / sites
新しく作成されたディレクトリに移動し、vimを使用して新しいaskbotuWSGI構成を作成します。
cd / etc / uwsgi / sites
vim askbot.ini
次の構成をファイルに貼り付けます。
[uwsgi]
#プロジェクトディレクトリ、Pythonディレクトリ
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
プロセス=5
#Askbotはsockファイルの下で実行されます
socket =/run/uwsgi/askbot.sock
chmod- socket =664
uid =askbot
gid =nginx
vacuum =true
#uWSGIログファイル
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
Reset =always
KillSignal =SIGQUIT
Type =notify
NotifyAccess =all
[インストール]
WantedBy =multi-user.target
保存して終了します。
次に、systemdサービスをリロードし、起動時にuWSGIが自動的に起動できるようにします。
systemctlデーモン-リロード
systemctlenable uwsgi
これで、uWSGIがインストールされ、サービスとして実行されていることがわかります。
これでAskbotがインストールされ、uWSGIソックスファイル「askbot.sock」で実行されます。このステップでは、NginxWebサーバーをuWSGIアプリケーション「Askbot」のリバースプロキシとして使用します。
まず、yumコマンドを使用してNginxをインストールします。
yum -y install nginx
次に、Nginxの「conf.d」ディレクトリに移動し、vimエディターで新しい仮想ホストファイル「askbot.conf」を作成します。
cd /etc/nginx/conf.d/
vim askbot.conf
次のAskbotNginx構成をファイルに貼り付けます。
server {
listen 80;
server_name askbot.me www.askbot.me;
場所/{
include include uwsgi_params;
ix uwsgi_params;
uwsgi / askbot.sock;
}
}
ファイルを保存して、エディターを終了します。次に、構成をテストして、エラーがないことを確認します。
nginx -t
次に、NginxおよびuWSGIサービスを開始します。
systemctl start nginx
systemctl start uwsgi
また、起動時に自動的に起動できるようにします。
systemctl enable nginx
systemctl enable uwsgi
そのため、NginxはuWSGIアプリケーション「Askbot」のリバースプロキシとしてインストールされます。
Webブラウザーを開き、Askbotドメイン名:askbot.meにアクセスすると、以下に示すようなホームページが表示されます。
Askbotユーザーのログインページは次のとおりです。
Askbotユーザーダッシュボード:
Askbot管理者設定:
Askbot Django管理者ログイン:
Askbot Django管理ダッシュボード:
そのため、Q&Aシステムアプリケーション「Askbot」は、CentOS7サーバー上のuWSGIおよびNginxWebサーバーとともに正常にインストールされました。