如何在CentOS6x86VPS上安装Diaspora
状态:已弃用
本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。
原因:CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) ,不再接收安全补丁或更新。 因此,不再维护本指南。
请参阅:本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。
以下 DigitalOcean 教程可能会立即引起人们的兴趣,因为它概述了在 CentOS 7 服务器上安装 Diaspora:
在 CentOS 6 x86 VPS 上安装 Diaspora
Diaspora 是一个开源的分布式社交网络。 Diaspora 'pods' 可以由任何人托管,而不是由一家公司控制和拥有用户内容的所有权。 Pod 通常经过配置,以便用户可以与其他公共 Pod 上的用户进行交互。
第 1 步:操作系统配置
添加交换空间
如果您正在运行 RAM 少于 2 GB 的 VPS(droplet),则需要在 VPS 上启用交换。 如果您不这样做,某些构建步骤可能会失败。
本教程有关于启用CentOS 6交换的说明。 对于较小的 VPS,添加至少 1 GB 的交换空间。
创建本地非 root 用户
大多数步骤将以具有 sudo 访问权限的非 root 用户身份运行。 本教程将引导您创建一个用户帐户并授予它sudo权力。
添加 EPEL 存储库
EPEL 代表企业 Linux 的额外软件包,它有一些我们需要安装的软件包,这些软件包不是基本 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 所需的开源键值数据存储。 安装它并将其配置为在启动时启动:
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
接下来是为 Diaspora 配置 MySQL。
启动 MySQL
MySQL 之前已安装,但尚未运行。 启动 MySQL 服务器。
sudo /etc/init.d/mysqld start
创建侨民数据库和 MySQL 用户
首先,以 root 身份打开 MySQL。
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 设置为开机启动
将 CentOS 设置为在服务器重新启动时启动 MySQL 守护程序。
sudo chkconfig --level 345 mysqld on
第 3 步:安装和配置 Diaspora
下一步是获取 Diaspora 源并将其配置为在您的 VPS 上运行。 这些命令应该以您之前创建的 Diaspora 用户身份运行。
sudo su - diaspora
修复散居主目录的权限
为了提供 Diaspora 需要的一些文件,Diaspora 主目录权限需要放宽以允许开放读取和执行访问:
chmod ugo+rx ~diaspora
安装 rvm
确保您仍以 Diaspora 用户身份登录并安装 rvm 的 stable 分支:
\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 源代码
现在克隆 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:
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
这将启动一个 Diaspora 服务器,在端口 3000 上侦听您的 VPS 的 IP,并使其在后台运行。
第五步:配置nginx
nginx 将从网络反向代理连接到 Diaspora 服务器。
调整主要 nginx 配置
sudo emacs /etc/nginx/nginx.conf
在 http 部分下,添加一行:
server_names_hash_bucket_size 128;
创建 Diaspora nginx 配置
现在打开一个新文件为 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 设置为开机启动
设置 CentOS 在 VPS 重启时启动 nginx 守护进程。
sudo chkconfig --level 345 nginx on
第 6 步:使用侨民!
现在 nginx 和 Diaspora 都已启动并运行,您可以导航到您的 Diaspora 实例并开始使用它。 您可以通过使用 Web 浏览器导航到您的主机名来访问它。 Diaspora 欢迎页面让您变得更好,您可以在其中创建您的第一个本地 Diaspora 帐户。