【问题标题】:EC2 - cannot deploy as "bitnami" userEC2 - 无法部署为“bitnami”用户
【发布时间】:2013-04-26 17:26:29
【问题描述】:

我正在使用 Capistrano 将 Rails 应用程序部署到 Amazon EC2。 在部署文件中,我有以下连接到 Amazon EC2 的凭据:

set :user, "bitnami"
#set :user, "root"
server "ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com", :app, :web, :db, :primary => true
ssh_options[:keys] = ["/Users/ada/my_amazon_ec2.pem"]

当我运行 cap deploy:setupcap deploy:check 时,我得到以下信息:

The following dependencies failed. Please check them and try again:
--> You do not have permissions to write to `/www/myapp'. (ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com)
--> You do not have permissions to write to `/www/myapp/releases'. (ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com)

这怎么可能?我能够以用户 bitnami 的身份通过 SSH 连接到 EC2,但是当我以用户 root 的身份尝试它时,我收到了我应该使用 的消息bitnami 用户登录并关闭连接。

如果我尝试在部署文件中更改 bitnami 用户为 root,整个部署过程是好的,但是当我通过 SSH 登录时(如bitnami 用户)到 EC2,我没有看到任何应该部署的文件,最终目录只是空的。

在这种情况下有什么问题?

非常感谢

【问题讨论】:

    标签: ruby-on-rails ruby amazon-ec2 capistrano bitnami


    【解决方案1】:
    sudo chown -R <user> <folder path>
    

    成功了。用户不是文件夹的所有者,因此上限检查会引发错误。

    【讨论】:

      【解决方案2】:

      您是否已经创建了 /www/myapp 目录,并且 bitnami 用户是否有写入权限?

      假设您的应用程序名为“myapp123”,并且您希望将其部署到 /opt/bitnami/apps/myapp123。

      创建应用程序目录并设置适当的权限:

      mkdir -p /opt/bitnami/apps/myapp123
      chown -R bitnami /opt/bitnami/apps/myapp123
      

      将以下选项添加到您的部署配置文件中:

      set :application, "myapp123"
      set :deploy_to, "/opt/bitnami/apps/#{application}"
      

      你打算使用 Phussion Passenger 吗?在这种情况下,您还需要将以下内容添加到 Capistrano 配置中:

      namespace :deploy do
        task :start do ; end
        task :stop do ; end
        task :restart, :roles => :app, :except => { :no_release => true } do
          run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
        end
      end
      

      您使用哪种 BitNami AMI?

      【讨论】:

      • 您好,第一个问题是当我尝试创建目录时:mkdir: cannot create directory '/opt/bitnami/apps/SherlockDocs': Permission denied如何设置用户bitnami的权限?
      • 关于 Phussion Passenger - 目前还没有,但我绝对愿意使用它,我只需要将应用程序部署到 EC :) 我花了一天半的时间来尝试这样做。 .. 令人沮丧。
      • 使用 sudo 以 root 权限执行命令: sudo mkdir -p /opt/bitnami/apps/SherlockDocs ; sudo chown -R bitnami /opt/bitnami/apps/SherlockDocs
      【解决方案3】:

      Bitnami 堆栈通常有默认的 webroot 在

      /opt/bitnami/apache2/htdocs

      尝试写入该文件夹(使用 bitnami 用户)。

      如果您想将 webroot 更改为另一个目录,您需要创建目录并设置适当的权限,并告诉 apache 您已更改 web root (click for more on how to do that)。

      如果您在创建目录或应用权限时遇到问题,请在命令前加上 sudo,例如 sudo mkdir www

      【讨论】:

      • 您好,感谢您的回答。好吧,最后我可以在那里创建目录,但是当我部署应用程序时,我在终端窗口中看不到任何错误,但命令 ls 仍然只显示部署应用程序的空目录...没有部署的文件。还有什么问题?
      • 还有一件事 - 如果我将在浏览器中打开我的应用程序的 URL (amazon_url.com/my_app),我只会得到 Forbidden You don't have permission to access /my_app/ on此服务器。 页。以下是 my_app 目录的权限:drwxrwxr-x 2 bitnami bitnami
      • 您需要先启动 Rails 服务器,如果您在开发模式下部署,您需要在 .com 之后附加 :3000 所以 myurl.com:3000
      【解决方案4】:

      你有这个吗:

      ssh_options[:auth_methods] = ["publickey"]
      

      【讨论】:

        猜你喜欢
        • 2015-11-07
        • 1970-01-01
        • 1970-01-01
        • 2012-08-27
        • 2021-05-12
        • 1970-01-01
        • 2013-02-16
        • 2019-05-19
        • 1970-01-01
        相关资源
        最近更新 更多