ステータス:非推奨
この記事では、サポートされなくなったバージョンの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 <giganetom@gmail.com>
# 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ウェルカムページを使用すると、さらに便利になります。