EC2 – 无法部署为“bitnami”用户

我正在使用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) 

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

如果我尝试更改部署文件,请更改root用户的bitnami用户,整个部署过程都可以,但是当我通过SSH(作为bitnami用户)登录到EC2时,我看不到任何文件应该是部署后,最终目录只是空的。

这种情况有什么问题?

非常感谢

 sudo chown -R   

做了伎俩。 用户不是该文件夹的所有者,因此上限检查是抛出错误。

你是否已经创建了/ 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?

Bitnami堆栈通常有默认的webroot

/opt/bitnami/apache2/htdocs

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

如果您想将webroot更改为另一个目录,则需要创建目录并设置适当的权限,并告诉apache您已更改了Web根目录( 单击此处了解有关如何执行此操作的详细信息 )。

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

你有这个吗:

 ssh_options[:auth_methods] = ["publickey"]