CentOS6x86VPSにディアスポラをインストールする方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンの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ウェルカムページを使用すると、さらに便利になります。