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:setup
和cap 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"]