CentOS6x86VPSにディアスポラをインストールする方法

提供:Dev Guides
移動先:案内検索

ステータス:非推奨

この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由: CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照:このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

次のDigitalOceanチュートリアルは、CentOS 7サーバーへのDiasporaのインストールの概要を示しているため、すぐに役立つ可能性があります。


CentOS 6x86VPSへのDiasporaのインストール


ディアスポラは、オープンソースの分散型ソーシャルネットワークです。 単一の会社がユーザーのコンテンツを管理および所有する代わりに、Diasporaの「ポッド」は誰でもホストできます。 ポッドは通常、ユーザーが他のパブリックポッドのユーザーと対話できるように構成されます。

ステップ1:OS構成


スワップスペースを追加

RAMが2GB未満のVPS(ドロップレット)を実行している場合は、VPSでスワップを有効にする必要があります。 そうしないと、一部のビルド手順が失敗する可能性があります。

このチュートリアルには、CentOS6のスワップを有効にする手順が記載されています。 VPSが小さい場合は、少なくとも1GBのスワップスペースを追加します。

root以外のローカルユーザーを作成する

ほとんどの手順は、sudoアクセス権を持つroot以外のユーザーとして実行されます。 このチュートリアルでは、ユーザーアカウントを作成し、それにsudoパワーを付与する方法について説明します。

EPELリポジトリを追加します

EPELはEnterpriseLinux用のExtraPackagesの略で、ベースのCentOSリポジトリの一部ではないインストールする必要のあるパッケージがいくつかあります。

ローカルユーザーとしてログインし、以下を実行します。

sudo su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm'

前提条件のパッケージをインストールする

次に、Diasporaがビルドして実行するために必要なパッケージをインストールする必要があります。

sudo yum install tar make automake gcc gcc-c++ git net-tools libcurl-devel libxml2-devel libffi-devel libxslt-devel tcl ImageMagick npm mysql-server mysql-devel nginx libyaml libyaml-devel patch readline-devel libtool bison

Redisをインストールする

Redisは、Diasporaが必要とするオープンソースのKeyValueデータストアです。 それをインストールし、起動時に開始するように構成します。

sudo yum install redis.x86_64
sudo chkconfig --add redis
sudo chkconfig --level 345 redis on
sudo /etc/init.d/redis start

専用のディアスポラユーザーを追加する

これは、Diasporaを実行するユーザーアカウントです。 このアカウントには任意の名前を付けることができますが、このチュートリアルでは、このユーザーの名前がdiasporaであると想定しています。

sudo useradd diaspora

ステップ2:MySQLを起動して構成する


次は、MySQLをDiaspora用に構成することです。

MySQLを起動します

MySQLは以前にインストールされましたが、まだ実行されていません。 MySQLサーバーを起動します。

sudo /etc/init.d/mysqld start

DiasporaデータベースとMySQLユーザーを作成する

まず、MySQLをrootとして開きます。

sudo mysql

次に、ディアスポラユーザーと使用するデータベースを作成します。

CREATE USER 'diaspora'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE diaspora_production;

次に、作成されたユーザーに新しいデータベースへのアクセスを許可します。

GRANT ALL PRIVILEGES ON diaspora_production.* TO 'diaspora'@'localhost';
FLUSH PRIVILEGES;

exitと入力して、MySQLを終了します。

MySQLを起動時に開始するように設定する

サーバーの再起動時にMySQLデーモンを起動するようにCentOSを設定します。

sudo chkconfig --level 345 mysqld on

ステップ3:Diasporaをインストールして構成する


次のステップは、Diasporaソースを取得し、VPSで実行するように構成することです。 これらのコマンドは、前に作成したDiasporaユーザーとして実行する必要があります。

sudo su - diaspora

Diasporaホームディレクトリの権限を修正する

Diasporaが必要とするファイルの一部を提供するには、Diasporaのホームディレクトリのアクセス許可を緩和して、オープンな読み取りおよび実行アクセスを許可する必要があります。

chmod ugo+rx ~diaspora

rvmをインストールします

Diasporaユーザーとしてまだログインしていることを確認し、rvmの安定したブランチをインストールします。

\curl -s -S -L https://get.rvm.io | bash -s stable

rvmは、ディアスポラユーザーのログインスクリプトにいくつかの環境設定を追加します。 これらが設定されていることを確認するには、ログアウトしてから再度ログインするのが最も簡単です。

exit
sudo su - diaspora

Rubyをインストールする

rvmを使用して、Diasporaに必要なバージョンのRubyをインストールします。 Rubyの新しいバージョンは完全にはサポートされていない可能性があります。

rvm autolibs read-only
rvm install 1.9.3-p448

ディアスポラのソースコードを取得する

次に、Diasporaのソースコードを複製します。

git clone git://github.com/diaspora/diaspora.git

gitが作成したdiasporaフォルダーを入力します。

cd diaspora

diasporaディレクトリに移動すると、警告通知が表示されます。

********************************************************************************
* NOTICE                                                                       *
********************************************************************************
* RVM has encountered a new or modified .rvmrc file in the current directory,  *
* this is a shell script and therefore may contain any shell commands.         *
*                                                                              *
* Examine the contents of this file carefully to be sure the contents are      *
* safe before trusting it!                                                     *
* Do you wish to trust '/home/diaspora/diaspora/.rvmrc'?                       *
* Choose v[iew] below to view the contents                                     *
********************************************************************************
y[es], n[o], v[iew], c[ancel]>

yと入力して、.rvmrcを信頼することを確認します。

ディアスポラデータベースを構成する

サンプルのデータベース構成ファイルを、Diasporaが想定している場所にコピーします。

cp config/database.yml.example config/database.yml

database.ymlの設定を微調整して、前に作成したデータベースと一致させます。

emacs config/database.yml

最初の数行は、MySQLの構成を示しています。 ユーザー名とパスワードを、MySQLデータベースのセットアップ時に以前に作成したMySQLアカウントのものに変更します。 ブロックは、パスワードが前に選択したものに設定された状態で、次のようになります。

mysql: &mysql
  adapter: mysql2
  host: "localhost"
  port: 3306
  username: "diaspora"
  password: "password"
  charset: utf8
  collation: utf8_bin

ディアスポラオプションの構成

設定ファイルの例をコピーして、Diasporaが見つけられるようにします。

cp config/diaspora.yml.example config/diaspora.yml

このファイルをテキストエディタで開いて、いくつかの設定を編集します。

emacs config/diaspora.yml

いくつか更新する必要があります。

  • url:で始まる行を見つけて、これをサーバーのホスト名で更新し、先頭の#記号を削除して行のコメントを解除します。
  • 数行下に、#certificate_authorities: '/etc/pki/tls/certs/ca-bundle.crt'と書かれた行を見つけ、先頭の#を削除してコメントを解除します。
  • さらに数行下に、require_sslで始まる行を見つけます。 この行の先頭の#を削除し、値をfalseに設定します。

必要なGemsのインストールとデータベースのセットアップ

Rubyは、Diasporaが必要とするいくつかのgemをフェッチしてインストールする必要があります。

RAILS_ENV=production bundle install --without test development

次に、データベーススキーマを構築します。

RAILS_ENV=production bundle exec rake db:schema:load

最後に、Diasporaをプリコンパイルします。

RAILS_ENV=production bundle exec rake assets:precompile

ステップ4:ディアスポラを開始する


Diasporaの起動を簡単にするinitスクリプトを作成します。

sudo emacs /etc/init.d/diaspora

次のコンテンツを貼り付けます。

#! /bin/sh
# chkconfig: - 86 30
# Author: FABIAN Tamas Laszlo <[email protected]>
# Source: https://github.com/netom/diaspora-init/blob/master/init/diaspora

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Diaspora application server"
NAME=diaspora
DIASPORA_HOME="/home/diaspora/diaspora"
STARTSCRIPT="RAILS_ENV=production ./script/server"
LOGFILE=$DIASPORA_HOME/log/startscript.log
SCRIPTNAME=$0
USER=diaspora
STARTUP_TIMEOUT=100

check_unicorn() {
    pgrep -f "unicorn_rails master"
}

check_sidekiq() {
    pgrep -f "sidekiq 2"
}

do_start()
{
    if ! touch $LOGFILE; then
        echo "Could not touch logfile"
        return 2
    fi

    if ! chown $USER $LOGFILE; then
        echo "Could not chown logfile"
        return 2
    fi

    if check_unicorn && check_sidekiq; then
        echo "Diaspora is already running"
        return 1
    fi

    if ! su -l $USER -c "cd $DIASPORA_HOME; $STARTSCRIPT >> $LOGFILE 2>&1 &"; then
        echo "Could not run start script"
        return 2
    fi

    [ "$VERBOSE" != no ] && echo "Waiting for Diaspora processes... "
    c=0
    while ! check_unicorn > /dev/null || ! check_sidekiq > /dev/null; do
        if [ $c -gt $STARTUP_TIMEOUT ]; then
            echo "Timeout waiting for Diaspora processes"
            return 2
        fi
        c=`expr $c + 1`
        sleep 1
        [ "$VERBOSE" != no ] && echo -n "."
    done
    [ "$VERBOSE" != no ] && echo 0
}

do_stop()
{
    for i in `check_unicorn`; do
        [ "$VERBOSE" != no ] && echo "Killing unicorn master with PID $i"
        kill -TERM $i
        [ "$VERBOSE" != no ] && echo $?
    done

    for i in `check_sidekiq`; do
        [ "$VERBOSE" != no ] && echo "Killing sidekiq with PID $i"
        kill -TERM $i
        [ "$VERBOSE" != no ] && echo $?
    done

    return 0
}

case "$1" in
  start)
    [ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && echo 0 ;;
        *) [ "$VERBOSE" != no ] && echo 1 ;;
    esac
    ;;
  stop)
    [ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && echo 0 ;;
        2) [ "$VERBOSE" != no ] && echo 1 ;;
    esac
    ;;
  status)
    echo 'Checking for running Diaspora processes'

    unicorn_running=false
    for i in `check_unicorn`; do
        echo "Found unicorn master qith PID $i"
        unicorn_running=true
    done

    sidekiq_running=false
    for i in `check_sidekiq`; do
        echo "Found sidekiq with PID $i"
        sidekiq_running=true
    done

    if $unicorn_running && $sidekiq_running; then
        echo "Diaspora health is OK"
        echo 0
    else
        if $unicorn_running; then
            echo "Unicorn is RUNNING, but sidekiq is DOWN!"
            echo 1
            return 1
        fi
        if $sidekiq_running; then
            echo "Sidekiq is RUNNING, but unicorn is DOWN!"
            echo 1
            return 1
        fi
        echo "All Diaspora processes are DOWN"
        echo 0
    fi
    ;;
  restart|force-reload)
    [ "$VERBOSE" != no ] && echo "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
      0|1)
        do_start
        case "$?" in
            0) [ "$VERBOSE" != no ] && echo 0 ;;
            1) [ "$VERBOSE" != no ] && echo "old process is still running" && echo 1 ;;
            *) [ "$VERBOSE" != no ] && echo "failed to start" && echo 1 ;;
        esac
        ;;
      *)
        [ "$VERBOSE" != no ] && echo "failed to stop"
        [ "$VERBOSE" != no ] && echo 1
        ;;
    esac
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
    exit 3
    ;;
esac

:

そして、exec権限を付与します。

sudo chmod u+x /etc/init.d/diaspora

次に、起動時にこれを開始するようにCentOSを構成し、それを実行してVPSを起動します。

sudo chkconfig --add diaspora
sudo chkconfig --level 345 diaspora on
sudo /etc/init.d/diaspora start

これにより、ポート3000でVPSのIPをリッスンしているDiasporaサーバーが起動し、バックグラウンドで実行されたままになります。

ステップ5:nginxを構成する


nginxは、WebからDiasporaサーバーへのプロキシ接続をリバースします。

メインのnginx構成を微調整します

sudo emacs /etc/nginx/nginx.conf

httpセクションの下に、次の行を追加します。

server_names_hash_bucket_size       128;

Diasporanginx構成を作成する

次に、新しいファイルを開いて、Diasporaのnginx構成を作成します。

sudo emacs /etc/nginx/conf.d/diaspora.conf

次のコンテンツを貼り付けます。 server_nameパスをホスト名に更新する必要があります。

upstream diaspora {
  server          localhost:3000;
}


server {
  server_name YOURSERVER.COM;
  listen 80;
  gzip on;
  gzip_min_length 1000;
  gzip_types application/json text/css application/x-javascript;

  root /home/diaspora/diaspora/public;
  try_files $uri @diaspora;
  location @diaspora {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://diaspora;
  }
}

nginxを再起動します

構成ファイルが作成されたので、nginxを再起動して変更を取得します。

sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start

ngnixが現在実行されていない場合、stopコマンドは失敗する可能性がありますが、startコマンドは成功するはずです。

nginxを起動時に開始するように設定します

VPSの再起動時にnginxデーモンを起動するようにCentOSを設定します。

sudo chkconfig --level 345 nginx on

ステップ6:ディアスポラを使用してください!


nginxとDiasporaの両方が稼働しているので、Diasporaインスタンスに移動して使用を開始できます。 Webブラウザでホスト名に移動してアクセスできます。 最初のローカルDiasporaアカウントを作成できるDiasporaウェルカムページを使用すると、さらに便利になります。



提出者:http: [[“%3Ca|//jimreardon.us/]] [[“%3C/a|”>ジム・リードン]]