Rails 3.2.18
Ruby 2.1.5
Capistrano
Apache2
Phusion Passenger
Ubuntu 14.04.2
我一直在使用Capistrano来部署我的应用程序。 Capistrano执行的命令集(在连接到repo并复制所有文件之后):
cd /home/myapp/current
RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile
cp /home/myapp/shared/assets/manifest.yml /home/myapp/current/assets_manifest.yml
touch /home/myapp/current/tmp/restart.txt
echo \"DEPLOY SIDEKIQ RELOAD $(date)\" >> /home/myapp/current/log/sidekiq.log
screen -d -m sh -c 'cd /home/myapp/current && RAILS_ENV=production bundle exec sidekiq'
cd /home/myapp/current && RAILS_ENV=production bundle exec rake sunspot:solr:stop
cd /home/myapp/current && RAILS_ENV=production bundle exec rake sunspot:solr:start
screen -d -m sh -c 'cd /home/myapp/current && RAILS_ENV=production bundle exec rake sunspot:solr:reindex'
最近,在部署之后,进入Web应用程序,当我输入URL时,我看到的只是浏览器中/ home / myapp / current / public的目录列表。
我可以通过以下方式手动启动应用程序:
cd ~/current
sudo service apache2 stop
rvmsudo bundle exec rails s -e production -p 80 -d
这里的问题是一些Rails应用程序任务开始以root身份运行(写入文件,上传文件等),这是有问题的,可能存在安全风险。有什么想法吗?