我在2天内尝试使用:ruby(1.9.3-rc1),rails,capistrano,nginx和unicorn在我的vps(Ubuntu 12.04服务器(64位))上进行部署。
我还关注了Ryan Bates的railscast教程,展示了如何从头开始部署VPS。
Actualy cap deploy:冷命令似乎工作得很好(和所有其他人一样)但是当我试着继续我的网址时,我会说“我们很抱歉,但是有些事情发生了”=> Rails的默认错误页面。
在我的生产日志中,我得到:
Migrating to CreateQuestionAnswers (20130317152603)
Migrating to CreateRegions (20130502212531)
Migrating to AddRegionIdToSection (20130502212557)
Migrating to CreateAnnonceImages (20130510130906)
Migrating to AddAttachmentImageToAnnonceImages (20130510130925)
Migrating to CreateFormations (20130510195503)
Migrating to CreateInscriptions (20130510195627)
Migrating to AddAttachmentImageToFormations (20130511182928)
Migrating to AddParamsToInscription (20130514231201)
Migrating to AddPaypalidToInscription (20130514234243)
(0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
Connecting to database specified by database.yml
Connecting to database specified by database.yml
Creating scope :all. Overwriting existing method User.all.
Creating scope :all. Overwriting existing method User.all.
Creating scope :all. Overwriting existing method Echange.all.
Creating scope :all. Overwriting existing method Echange.all.
Creating scope :validate. Overwriting existing method Annonce.validate.
Creating scope :validate. Overwriting existing method Annonce.validate.
Creating scope :all. Overwriting existing method Article.all.
Creating scope :all. Overwriting existing method Article.all.
所以我查看了我的独角兽日志,我发现了这个:
E, [2013-05-21T03:20:08.751341 #31081] ERROR -- : reaped #<Process::Status: pid 4335 exit 1> worker=0
I, [2013-05-21T03:20:08.753997 #31081] INFO -- : worker=0 spawning...
E, [2013-05-21T03:20:08.790666 #31081] ERROR -- : reaped #<Process::Status: pid 4332 exit 1> worker=1
I, [2013-05-21T03:20:08.791251 #31081] INFO -- : worker=1 spawning...
I, [2013-05-21T03:20:08.794600 #4341] INFO -- : worker=0 spawned pid=4341
I, [2013-05-21T03:20:08.796302 #4341] INFO -- : Refreshing Gem list
I, [2013-05-21T03:20:08.802089 #4344] INFO -- : worker=1 spawned pid=4344
I, [2013-05-21T03:20:08.803227 #4344] INFO -- : Refreshing Gem list
I, [2013-05-21T03:20:37.871677 #31081] INFO -- : reloading config_file=/home/deployer/apps/avocat-immo/current/config/unicorn.rb
I, [2013-05-21T03:20:37.876045 #31081] INFO -- : done reloading config_file=/home/deployer/apps/avocat-immo/current/config/unicorn.rb
I, [2013-05-21T03:20:38.002451 #31081] INFO -- : reaped #<Process::Status: pid 4344 exit 0> worker=1
I, [2013-05-21T03:20:38.002640 #31081] INFO -- : worker=1 spawning...
I, [2013-05-21T03:20:38.007280 #4674] INFO -- : worker=1 spawned pid=4674
I, [2013-05-21T03:20:38.007595 #4674] INFO -- : Refreshing Gem list
I, [2013-05-21T03:20:38.010511 #31081] INFO -- : reaped #<Process::Status: pid 4341 exit 0> worker=0
I, [2013-05-21T03:20:38.010714 #31081] INFO -- : worker=0 spawning...
I, [2013-05-21T03:20:38.012600 #4678] INFO -- : worker=0 spawned pid=4678
I, [2013-05-21T03:20:38.012886 #4678] INFO -- : Refreshing Gem list
I, [2013-05-21T03:21:08.079364 #4678] INFO -- : worker=0 ready
I, [2013-05-21T03:21:08.080779 #4674] INFO -- : worker=1 ready
I, [2013-05-21T03:21:46.897404 #31081] INFO -- : reloading config_file=/home/deployer/apps/avocat-immo/current/config/unicorn.rb
I, [2013-05-21T03:21:46.900599 #31081] INFO -- : done reloading config_file=/home/deployer/apps/avocat-immo/current/config/unicorn.rb
I, [2013-05-21T03:21:47.237973 #31081] INFO -- : reaped #<Process::Status: pid 4678 exit 0> worker=0
I, [2013-05-21T03:21:47.238160 #31081] INFO -- : worker=0 spawning...
I, [2013-05-21T03:21:47.241018 #31081] INFO -- : reaped #<Process::Status: pid 4674 exit 0> worker=1
I, [2013-05-21T03:21:47.241296 #31081] INFO -- : worker=1 spawning...
I, [2013-05-21T03:21:47.243055 #4919] INFO -- : worker=0 spawned pid=4919
I, [2013-05-21T03:21:47.243287 #4919] INFO -- : Refreshing Gem list
I, [2013-05-21T03:21:47.245830 #4921] INFO -- : worker=1 spawned pid=4921
I, [2013-05-21T03:21:47.246122 #4921] INFO -- : Refreshing Gem list
I, [2013-05-21T03:22:17.055549 #4919] INFO -- : worker=0 ready
I, [2013-05-21T03:22:17.057331 #4921] INFO -- : worker=1 ready
I, [2013-05-21T03:29:57.149534 #31081] INFO -- : reloading config_file=/home/deployer/apps/avocat-immo/current/config/unicorn.rb
I, [2013-05-21T03:29:57.181644 #31081] INFO -- : done reloading config_file=/home/deployer/apps/avocat-immo/current/config/unicorn.rb
I, [2013-05-21T03:29:57.997267 #31081] INFO -- : reaped #<Process::Status: pid 4919 exit 0> worker=0
I, [2013-05-21T03:29:57.997689 #31081] INFO -- : worker=0 spawning...
I, [2013-05-21T03:29:58.003458 #31081] INFO -- : reaped #<Process::Status: pid 4921 exit 0> worker=1
I, [2013-05-21T03:29:58.003691 #31081] INFO -- : worker=1 spawning...
I, [2013-05-21T03:29:58.010269 #7783] INFO -- : worker=0 spawned pid=7783
一遍又一遍......
所以这是我的配置:
我的unicorn.rb:
root = "/home/deployer/apps/avocat-immo/current"
working_directory root
pid "#{root}/tmp/pids/unicorn.pid"
stderr_path "#{root}/log/unicorn.log"
stdout_path "#{root}/log/unicorn.log"
listen "/tmp/unicorn.avocat.sock"
worker_processes 2
timeout 30
这是我的unicorn_init.sh
#!/bin/sh
set -e
# Feel free to change any of the following variables for your app:
TIMEOUT=${TIMEOUT-60}
APP_ROOT=/home/deployer/apps/avocat-immo/current
PID=$APP_ROOT/tmp/pids/unicorn.pid
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
AS_USER=deployer
set -u
OLD_PIN="$PID.oldbin"
sig () {
test -s "$PID" && kill -$1 `cat $PID`
}
oldsig () {
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
}
run () {
if [ "$(id -un)" = "$AS_USER" ]; then
eval $1
else
su -c "$1" - $AS_USER
fi
}
case "$1" in
start)
sig 0 && echo >&2 "Already running" && exit 0
run "$CMD"
;;
stop)
sig QUIT && exit 0
echo >&2 "Not running"
;;
force-stop)
sig TERM && exit 0
echo >&2 "Not running"
;;
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
run "$CMD"
;;
upgrade)
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
then
n=$TIMEOUT
while test -s $OLD_PIN && test $n -ge 0
do
printf '.' && sleep 1 && n=$(( $n - 1 ))
done
echo
if test $n -lt 0 && test -s $OLD_PIN
then
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
exit 1
fi
exit 0
fi
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
run "$CMD"
;;
reopen-logs)
sig USR1
;;
*)
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
exit 1
;;
esac
我试过了
/etc/init.d/unicorn_avocat-immo start
/etc/init.d/unicorn_avocat-immo stop
我也重新启动了nginx,但似乎没有任何效果。该网站在错误页面上加载的时间不到一秒,网站尚未正常运行,因为它应该在生产中。
有人可以帮我解决这个问题吗?
nginx errors.log
中的其他信息 2013/05/21 12:23:08 [crit] 19097#0: *16 connect() to unix:/tmp/avocat.sock failed (2: No such file or directory) while connecting to upstream, client: **.***.**.***, server: , request: "GET / HTTP/1.1", upstream: "http://unix:/tmp/avocat.sock:/", host: "**.***.**.***"
答案 0 :(得分:3)
只需在config / production.rb
中添加config.log_level = :debug
即可
您将在log / production.log中收到错误日志 粘贴该日志的输出,以便我可以帮助您
也尝试rake assets:precompile