如何在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 帐户。