<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hofffmancx</title>
    <link>https://ruby-china.org/hofffmancx</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>小白阿里云部署 Rails 视频教程 - CentOS</title>
      <description>&lt;p&gt;前言：本人是一个 rails 新手，在阿里云部署 rails 的过程中，踩到了很多坑。后来，在网友 imtinge 的帮助下，终于部署成功。&lt;/p&gt;

&lt;p&gt;新手在使用教程的过程中，常常会遇到问题：教程上要求，需要修改某个文件，但是，新手根本不知道文件在什么地方。所有，我部署完毕后，录制了这个视频，希望对新手有所帮助。也希望前辈多多指错。&lt;/p&gt;

&lt;p&gt;感谢 imtinge 帮我写教程，debug, 感谢 ruby-China 上热心网友 jicheng1014, kikyous,tim_lang, yingce, nouse,ringokun, huacnlee, chenge 的热心帮助。&lt;/p&gt;

&lt;p&gt;这篇教程是 imtinge 写的，我做了一点点优化。教程原地址： &lt;a href="https://forum.qzy.camp/t/rails/1852" rel="nofollow" target="_blank"&gt;https://forum.qzy.camp/t/rails/1852&lt;/a&gt;，版权归原作者 imtinge 所有。 &lt;/p&gt;

&lt;p&gt;优酷视频网址：&lt;/p&gt;

&lt;p&gt;第一部分：&lt;a href="http://v.youku.com/v_show/id_XMjg2NDcyNzAxMg==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!4~5~5~A" rel="nofollow" target="_blank"&gt;http://v.youku.com/v_show/id_XMjg2NDcyNzAxMg==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!4~5~5~A&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;第二部分：&lt;a href="http://v.youku.com/v_show/id_XMjg2NDczMzA4NA==.html?spm=a2h3j.8428770.3416059.1#paction" rel="nofollow" target="_blank"&gt;http://v.youku.com/v_show/id_XMjg2NDczMzA4NA==.html?spm=a2h3j.8428770.3416059.1#paction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;第三部分：&lt;a href="http://v.youku.com/v_show/id_XMjg2NDc0Mjk4NA==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!5~5~5~A" rel="nofollow" target="_blank"&gt;http://v.youku.com/v_show/id_XMjg2NDc0Mjk4NA==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!5~5~5~A&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;第四部分：&lt;a href="http://v.youku.com/v_show/id_XMjg2NDc0ODI4MA==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!3~5!2~1~3~A" rel="nofollow" target="_blank"&gt;http://v.youku.com/v_show/id_XMjg2NDc0ODI4MA==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!3~5!2~1~3~A&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;系统信息：
本地：MacOS Sierra  version: 10.12.3
ECS 云服务器：centOS 7.3, 64 位
域名：eyulaodu&lt;/p&gt;
&lt;h3 id="一.更新系统"&gt;一。更新系统&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yum install -y epel-release yum-utils
yum-config-manager --enable epel
yum clean all &amp;amp;&amp;amp; sudo yum update -y

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="二，安装开发工具、nginx和postgresql"&gt;二，安装开发工具、nginx 和 postgresql&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;安装
&lt;code&gt;
yum groupinstall -y 'development tools'
yum install -y nginx
yum install -y postgresql-server postgresql-contrib postgresql-devel
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;启动 nginx&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl start nginx
systemctl enable nginx

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时，打开绑定的域名，应该能够看到“Welcome to nginx on Fedora!”的欢迎画面。 
如果此时没有出现欢迎页面，很可能是阿里云的 80 端口没打开。 
&lt;a href="https://segmentfault.com/q/1010000009437407?_ea=1938810" rel="nofollow" target="_blank" title=""&gt;打开阿里云 80 端口教程&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3 . 配置启动 postgresql&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;postgresql-setup initdb
vim /var/lib/pgsql/data/pg_hba.conf

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4 . 把&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改成&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;5 . 启动并设置开机启动&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl start postgresql
systemctl enable postgresql
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;6 . 创建用户和库
请把 myproject，myprojectuser，password 替换为自己的数据库名，数据库用户名和密码&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;su - postgres
psql
CREATE DATABASE eyulaodu;      (myproject = eyulaodu)
CREATE USER duzilong WITH PASSWORD '111111';
GRANT ALL PRIVILEGES ON DATABASE eyulaodu TO duzilong;
\q
exit

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7 . 安装 nodejs，assets precompile 需要使用&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yum install -y nodejs
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="三、创建发布使用的用户,并配置zsh"&gt;三、创建发布使用的用户，并配置 zsh&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;创建用户
&lt;code&gt;
useradd -r -m apps
gpasswd -a apps wheel
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;设置密码：
&lt;code&gt;
passwd apps
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;安装 ZSH
&lt;code&gt;
sudo yum install zsh
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;安装 oh my zsh&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;su - apps
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;exit&lt;/code&gt;回到 root 目录下，运行&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yum install -y openssl-devel readline-devel zlib-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;5 .   在 su - apps 下&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv &amp;amp;&amp;amp; src/configure &amp;amp;&amp;amp; make -C src
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' &amp;gt;&amp;gt; ~/.zshrc
~/.rbenv/bin/rbenv init
echo 'eval "$(rbenv init -)"' &amp;gt;&amp;gt; ~/.zshrc
su - apps
rbenv install 2.4.1                 (备注：此处时间较长，耐心等待，大概花了5分钟安装）
rbenv global 2.4.1
gem install bundler 
gem install rails         (本处花的时间多点，6分钟左右）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;6 . 创建发布使用的目录 (需要用 exit 回到根目录下）&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;exit
exit
mkdir /var/www
chown apps:apps /var/www
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;------------------------分割线，本机部分-----------------------------&lt;/p&gt;
&lt;h4 id="四、本地文件配置"&gt;四、本地文件配置&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;假设你的项目已经完成
编辑 Gemfile，增加
&lt;code&gt;
gem 'mina', require: false
gem 'mina-puma', require: false
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bundle install&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;编辑.gitignore，确保你的 database.yml, puma.rb, secrets.yml 不在 git 控制之内
&lt;code&gt;
config/secrets.yml
config/database.yml
config/puma.rb
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;touch config/deploy.rb&lt;/code&gt;
加入以下内容 (注意：第 14 到 17 行，的内容要修改为自己专案的信息）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/puma'
require 'mina/rbenv'  # for rbenv support. (https://rbenv.org)
# require 'mina/rvm'    # for rvm support. (https://rvm.io)

# Basic settings:
#   domain       - The hostname to SSH to.
#   deploy_to    - Path to deploy into.
#   repository   - Git repo to clone from. (needed by mina/git)
#   branch       - Branch name to deploy. (needed by mina/git)

set :application_name, 'eyulaodu'
set :domain, 'apps@106.14.202.187'
set :deploy_to, '/var/www/eyulaodu'
set :repository, 'https://github.com/hofffmancx/eyulaodu.git'
set :branch, 'master'

# Optional settings:
#   set :user, 'foobar'          # Username in the server to SSH to.
#   set :port, '30000'           # SSH port number.
#   set :forward_agent, true     # SSH forward_agent.

# shared dirs and files will be symlinked into the app-folder by the 'deploy:link_shared_paths' step.
set :shared_dirs, fetch(:shared_dirs, []).push('log', 'tmp/pids', 'tmp/sockets', 'public/uploads')
set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml', 'config/puma.rb')

# This task is the environment that is loaded for all remote run commands, such as
# `mina deploy` or `mina rake`.
task :environment do
  # If you're using rbenv, use this to load the rbenv environment.
  # Be sure to commit your .ruby-version or .rbenv-version to your repository.
  invoke :'rbenv:load'

  # For those using RVM, use this to load an RVM version@gemset.
  # invoke :'rvm:use', 'ruby-1.9.3-p125@default'
end

# Put any custom commands you need to run at setup
# All paths in `shared_dirs` and `shared_paths` will be created on their own.
task :setup do
  # command %{rbenv install 2.3.0}
  command %[touch "#{fetch(:shared_path)}/config/database.yml"]
  command %[touch "#{fetch(:shared_path)}/config/secrets.yml"]
  command %[touch "#{fetch(:shared_path)}/config/puma.rb"]
  comment "Be sure to edit '#{fetch(:shared_path)}/config/database.yml', 'secrets.yml' and puma.rb."
end

desc "Deploys the current version to the server."
task :deploy do
  # uncomment this line to make sure you pushed your local branch to the remote origin
  # invoke :'git:ensure_pushed'
  deploy do
    comment "Deploying #{fetch(:application_name)} to #{fetch(:domain)}:#{fetch(:deploy_to)}"
    # Put things that will set up an empty directory into a fully set-up
    # instance of your project.
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'bundle:install'
    invoke :'rails:db_migrate'
    invoke :'rails:assets_precompile'
    invoke :'deploy:cleanup'

    on :launch do
      in_path(fetch(:current_path)) do
        command %{mkdir -p tmp/}
        command %{touch tmp/restart.txt}
        invoke :'puma:restart'
      end
    end
  end

  # you can use `run :local` to run tasks on local machine before of after the deploy scripts
  # run(:local){ say 'done' }
end

# For help in making your deploy script, see the Mina documentation:
#
#  - https://github.com/mina-deploy/mina/tree/master/docs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;5 . 编辑 config/initializers/devise.rb. 在最后一个 end 前，加入&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;config.secret_key = ENV['DEVISE_SECRET_KEY']
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;6 . commit &lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add . 
git commit -m "change secret_key"
git push origin ch09
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7 . &lt;code&gt;mina setup&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;------------------------分割线，又连上主机-----------------------------&lt;/p&gt;
&lt;h4 id="六、数据库及服务器配置"&gt;六、数据库及服务器配置&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;设置数据库信息
&lt;code&gt;cd /var/www/eyulaodu/shared/config&lt;/code&gt;
&lt;code&gt;vim database.yml&lt;/code&gt;
(这个文件，打开的时候，没有内容）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;production: 
  adapter: postgresql 
  pool: 5 
  timeout: 5000 
  encoding: utf8 
  host: localhost 
  database: eyulaodu 
  username: duzilong 
  password: &amp;lt;%= ENV['eyulaodu_DATABASE_PASSWORD'] %&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;production: 
  adapter: postgresql 
  pool: 5 
  timeout: 5000 
  encoding: utf8 
  host: localhost 
  database: jdstoredzlm 
  username: duzilong 
  password: &amp;lt;%= ENV['jdstoredzlm_DATABASE_PASSWORD'] %&amp;gt;&lt;/p&gt;

&lt;p&gt;2 .设置服务器信息
&lt;code&gt;vim  puma.rb&lt;/code&gt;
(这个文件，打开的时候，没有内容）&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;environment "production"

workers 1
threads 1,5

application_path = File.expand_path('../..', __dir__)

directory "#{application_path}/current"

pidfile "#{application_path}/shared/tmp/pids/puma.pid"
state_path "#{application_path}/shared/tmp/sockets/puma.state"
stdout_redirect "#{application_path}/shared/log/puma.stdout.log", "#{application_path}/shared/log/puma.stderr.log"

bind "unix://#{application_path}/shared/tmp/sockets/puma.sock"

activate_control_app "unix://#{application_path}/shared/tmp/sockets/pumactl.sock"

daemonize true
preload_app!
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3 . &lt;code&gt;vim secrets.yml&lt;/code&gt;
(这个文件，打开的时候，没有内容）&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;production: 
  secret_key_base: &amp;lt;%= ENV["SECRET_KEY_BASE"] %&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4 . 
退回根目录，然后：
&lt;code&gt;cd&lt;/code&gt;
&lt;code&gt;su - apps&lt;/code&gt;
&lt;code&gt;vim ~/.zshenv&lt;/code&gt;
(这个文件，打开的时候，没有内容）
密码自己设置，key 通过 rake secret 生成 (在 project 的目录下）&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export SECRET_KEY_BASE='de6c01c6dfe9e0bc4d0c16c30cdcd86aca400598ba48d72d7c1fc36180dee6e822da3df956ded9631017a2e1dd14d64c9ec3f78c7aff40f1f0e66f41735912'
export eyulaodu_DATABASE_PASSWORD='111111'
export DEVISE_SECRET_KEY='de6c01c9dfe9e0bc4d0c16c30cdcd86aca400598ba48d72d7c1fc36180dee6e822da3df956ded9631017a2e1dd14d64c9ec3f78c7aff40f1f0e66f41735912'

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;5 .切回 root
&lt;code&gt;exit&lt;/code&gt;
6 . &lt;code&gt;vim /etc/nginx/nginx.conf&lt;/code&gt;
注释以下内容 (在 include /etc/nginx/conf.d/*.conf;下面)&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#     server {
#         listen       80 default_server;
#         listen       [::]:80 default_server;
#         server_name  _;
#         root         /usr/share/nginx/html;
#
#         # Load configuration files for the default server block.
#         include /etc/nginx/default.d/*.conf;
#
#         location / {
#         }
#
#         error_page 404 /404.html;
#             location = /40x.html {
#         }
#
#         error_page 500 502 503 504 /50x.html;
#             location = /50x.html {
#         }
#     }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7 . 新增&lt;code&gt;touch /etc/nginx/conf.d/eyulaodu.conf&lt;/code&gt;，请注意和 puma 里面文件的设置一致
&lt;code&gt;vim /etc/nginx/conf.d/eyulaodu.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;upstream app {
    # Path to Unicorn SOCK file, as defined previously
    server unix:/var/www/eyulaodu/shared/tmp/sockets/puma.sock fail_timeout=0;
}

server {


    listen 80;
    server_name eyulaodu.com;

    # Application root, as defined previously
    root /var/www/eyulaodu/current/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;8 . 重启 nginx
&lt;code&gt;systemctl restart nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;--------------------又回到本机—————————————————
七、本机自动部署网站&lt;/p&gt;

&lt;p&gt;1 . 进入你的项目目录
&lt;code&gt;mina deploy&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mina puma:start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;打开你的域名，出现页面成功。&lt;/p&gt;

&lt;p&gt;2 . 以后更新发布只需要提交后执行&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mina deploy&lt;/code&gt;
即可&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;备注：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;VIM 编辑器的基本用法：&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;vim 文件名      进入文档&lt;/p&gt;

&lt;p&gt;i     进入编辑状态&lt;/p&gt;

&lt;p&gt;esc    取消编辑状态&lt;/p&gt;

&lt;p&gt;ZZ      保存后退出&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GitHub： &lt;a href="https://github.com/hofffmancx/eyulaodu" rel="nofollow" target="_blank"&gt;https://github.com/hofffmancx/eyulaodu&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <author>hofffmancx</author>
      <pubDate>Tue, 04 Jul 2017 23:58:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/33400</link>
      <guid>https://ruby-china.org/topics/33400</guid>
    </item>
    <item>
      <title>在阿里云部署 Rails 时，总是出现：We're sorry, but something went wrong</title>
      <description>&lt;p&gt;在阿里云上部署 rails 时，总是出现：We're sorry, but something went wrong。&lt;/p&gt;

&lt;p&gt;重装了五遍系统，谷歌尝试多次，但是仍然报错。  &lt;/p&gt;

&lt;p&gt;所以发帖请求大神们的帮助。非常感谢。 &lt;/p&gt;
&lt;h3 id="版本信息："&gt;版本信息：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;阿里云 ubuntu : 16.04.2 LTS&lt;/li&gt;
&lt;li&gt;ruby-2.3.1&lt;/li&gt;
&lt;li&gt;rails 5.0.3&lt;/li&gt;
&lt;li&gt;Phusion Passenger 5.1.4&lt;/li&gt;
&lt;li&gt;nginx version: nginx/1.10.3&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="配置信息："&gt;配置信息：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;/etc/nginx/sites-enabled/myapp.conf &lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    server_name eyulaodu.com;

    # Tell Nginx and Passenger where your app's 'public' directory is
    root /var/www/myapp/code/public;

    # Turn on Passenger
    passenger_enabled on;
    passenger_ruby /usr/local/rvm/gems/ruby-2.3.1/wrappers/ruby;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2 . /etc/nginx/nginx.conf &lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";



     include /etc/nginx/passenger.conf;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
#}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3 . /etc/nginx/passenger.conf&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/local/rvm/gems/ruby-2.3.1/wrappers/ruby;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="相关报错："&gt;相关报错：&lt;/h3&gt;
&lt;p&gt;1 . sudo tail /var/log/nginx/error.log  后终端显示：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;config.ru:1:in `new'
  config.ru:1:in `&amp;lt;main&amp;gt;'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `&amp;lt;module:App&amp;gt;'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `&amp;lt;module:PhusionPassenger&amp;gt;'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `&amp;lt;main&amp;gt;'


[ 2017-06-06 12:32:48.1369 19796/7f20b7896700 age/Cor/Con/CheckoutSession.cpp:285 ]: [Client 1-15] Cannot checkout session because a spawning error occurred. The identifier of the error is 534dd085. Please see earlier logs for details about the error.

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2 . sudo service nginx restart 重启服务器，再次运行 sudo tail /var/log/nginx/error.log  后终端显示：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ 2017-06-06 12:46:42.4406 19802/7feb0a296780 age/Ust/UstRouterMain.cpp:523 ]: Passenger UstRouter shutdown finished
[ 2017-06-06 12:46:42.4663 19796/7f20be491780 age/Cor/CoreMain.cpp:1055 ]: Passenger core shutdown finished
2017/06/06 12:46:43 [info] 20926#20926: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:71
[ 2017-06-06 12:46:43.4941 20935/7fd0a9296780 age/Wat/WatchdogMain.cpp:1281 ]: Starting Passenger watchdog...
[ 2017-06-06 12:46:43.5017 20938/7fd91419b780 age/Cor/CoreMain.cpp:1070 ]: Starting Passenger core...
[ 2017-06-06 12:46:43.5018 20938/7fd91419b780 age/Cor/CoreMain.cpp:245 ]: Passenger core running in multi-application mode.
[ 2017-06-06 12:46:43.5047 20938/7fd91419b780 age/Cor/CoreMain.cpp:820 ]: Passenger core online, PID 20938
[ 2017-06-06 12:46:43.5125 20944/7f5a4e2d9780 age/Ust/UstRouterMain.cpp:529 ]: Starting Passenger UstRouter...
[ 2017-06-06 12:46:43.5130 20944/7f5a4e2d9780 age/Ust/UstRouterMain.cpp:342 ]: Passenger UstRouter online, PID 20944
[ 2017-06-06 12:46:48.6531 20938/7fd9140ac700 age/Cor/SecurityUpdateChecker.h:356 ]: Security update check: no update found (next check in 24 hours)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3 .  tail -f log/production.log  后显示：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;D, [2017-06-05T21:46:47.385590 #18316] DEBUG -- :    (6.0ms)  commit transaction
I, [2017-06-05T21:46:47.385649 #18316]  INFO -- : Migrating to CreateGroupRelationships (20170531100224)
D, [2017-06-05T21:46:47.386154 #18316] DEBUG -- :    (0.0ms)  begin transaction
D, [2017-06-05T21:46:47.386869 #18316] DEBUG -- :    (0.2ms)  CREATE TABLE "group_relationships" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "group_id" integer, "user_id" integer, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
D, [2017-06-05T21:46:47.387607 #18316] DEBUG -- :   SQL (0.1ms)  INSERT INTO "schema_migrations" ("version") VALUES (?)  [["version", "20170531100224"]]
D, [2017-06-05T21:46:47.397393 #18316] DEBUG -- :    (9.6ms)  commit transaction
D, [2017-06-05T21:46:47.399630 #18316] DEBUG -- :   ActiveRecord::InternalMetadata Load (0.1ms)  SELECT  "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?  [["key", "environment"], ["LIMIT", 1]]
D, [2017-06-05T21:46:47.402587 #18316] DEBUG -- :    (0.0ms)  begin transaction
D, [2017-06-05T21:46:47.403546 #18316] DEBUG -- :   SQL (0.2ms)  INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["key", "environment"], ["value", "production"], ["created_at", "2017-06-05 13:46:47.402770"], ["updated_at", "2017-06-05 13:46:47.402770"]]
D, [2017-06-05T21:46:47.407726 #18316] DEBUG -- :    (4.0ms)  commit transaction
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4 . systemctl status nginx.service    服务器状态：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-06-06 13:06:25 CST; 2min 17s ago
  Process: 21188 ExecStop=/bin/sleep 1 (code=exited, status=0/SUCCESS)
  Process: 21183 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry TERM/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCE
  Process: 21200 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 21195 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 21223 (nginx)
   CGroup: /system.slice/nginx.service
           ├─21203 Passenger watchdog
           ├─21206 Passenger core
           ├─21212 Passenger ust-router
           ├─21223 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           └─21228 nginx: worker process

Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: Stopped A high performance web server and a reverse proxy server.
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: Starting A high performance web server and a reverse proxy server...
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: Started A high performance web server and a reverse proxy server.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;5 journalctl -xe &lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jun 06 13:06:24 iZuf6fe5v25797lljd3j1zZ systemd[1]: Stopping A high performance web server and a reverse proxy server...
-- Subject: Unit nginx.service has begun shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has begun shutting down.
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: Stopped A high performance web server and a reverse proxy server.
-- Subject: Unit nginx.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has finished shutting down.
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: Starting A high performance web server and a reverse proxy server...
-- Subject: Unit nginx.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has begun starting up.
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ systemd[1]: Started A high performance web server and a reverse proxy server.
-- Subject: Unit nginx.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has finished starting up.
--
-- The start-up result is done.
Jun 06 13:06:25 iZuf6fe5v25797lljd3j1zZ sudo[21176]: pam_unix(sudo:session): session closed for user root
Jun 06 13:15:01 iZuf6fe5v25797lljd3j1zZ CRON[21276]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 06 13:15:01 iZuf6fe5v25797lljd3j1zZ CRON[21277]: (root) CMD (command -v debian-sa1 &amp;gt; /dev/null &amp;amp;&amp;amp; debian-sa1 1 1)
Jun 06 13:15:01 iZuf6fe5v25797lljd3j1zZ CRON[21276]: pam_unix(cron:session): session closed for user root
Jun 06 13:17:01 iZuf6fe5v25797lljd3j1zZ CRON[21279]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 06 13:17:01 iZuf6fe5v25797lljd3j1zZ CRON[21280]: (root) CMD (   cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.hourly)
Jun 06 13:17:01 iZuf6fe5v25797lljd3j1zZ CRON[21279]: pam_unix(cron:session): session closed for user root
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>hofffmancx</author>
      <pubDate>Tue, 06 Jun 2017 13:37:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/33162</link>
      <guid>https://ruby-china.org/topics/33162</guid>
    </item>
  </channel>
</rss>
