2013-05-02 81 views
1

我正在使用Capistrano將Rails應用程序部署到Amazon EC2。 在部署文件,我有以下憑據用於連接到亞馬遜EC2:EC2 - 無法部署爲「bitnami」用戶

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,但是當我嘗試用戶時,我收到消息說我應該使用bitnami用戶登錄並且連接已關閉。

如果我嘗試在部署文件來改變改變bitnami用戶爲,整個部署過程是好的,但後來當我通過SSH登錄(爲bitnami用戶)EC2,我沒有看到任何應該部署的文件,最終的目錄只是空的。

這種情況有什麼不對?

謝謝你這麼多

回答

0

你有/ 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乘客?在這種情況下,您還需要將以下內容添加到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?

+0

你好,第一個問題是當我嘗試創建目錄:'mkdir:無法創建目錄'/ opt/bitnami/apps/SherlockDocs':Permission denied'如何設置用戶權限'bitnami'? – user984621 2013-05-02 14:39:53

+0

關於福音乘客 - 目前不是,但我絕對可以使用它,我只需要將應用程序部署到EC :)我花了一天半的時間試圖做到這一點...令人沮喪。 – user984621 2013-05-02 14:41:21

+0

使用sudo執行具有根權限的命令: sudo mkdir -p/opt/bitnami/apps/SherlockDocs; sudo chown -R bitnami/opt/bitnami/apps/SherlockDocs – danoo 2013-05-05 09:14:46

0

Bitnami通常堆疊具有默認的根目錄在

/opt/bitnami/apache2/htdocs

嘗試寫入該文件夾(使用bitnami用戶)。

如果你想改變webroot到另一個目錄,你將需要創建目錄並設置適當的權限,並告訴Apache你已經改變了web根目錄(click for more on how to do that)。

如果您在創建目錄或應用權限時遇到問題,請使用sudo(如sudo mkdir www)作爲您的命令的前綴。

+0

您好,非常感謝您的回答。那麼,最後我可以在那裏創建該目錄,但是當我部署應用程序時,在終端窗口中看不到任何錯誤,但命令'ls'仍然只顯示空目錄,應用程序部署的位置......沒有部署的文件。什麼可能仍然是錯誤的? – user984621 2013-05-02 15:42:20

+0

還有一件事 - 如果我將在瀏覽器中打開我的應用程序的URL('amazon_url.com/my_app'),我只能看到** Forbidden 您無權訪問此服務器上的/ my_app /。 **頁面。這裏是** my_app **目錄的權限:'drwxrwxr-x 2 bitnami bitnami' – user984621 2013-05-02 15:46:08

+0

你需要先啓動rails服務器,如果你正在開發模式下部署,你需要在'.com' so'myurl.com:3000' – Tomanow 2013-05-02 16:50:49

0

你有這樣的:

ssh_options[:auth_methods] = ["publickey"] 
1
sudo chown -R <user> <folder path> 

的伎倆。用戶不是該文件夾的所有者,因此帽檢是拋出錯誤。