capifony と Symfony2 に基づいて Symfony 2 プロジェクト展開 Web アプリを実行しようとしています。
Process を使用して「cap deploy」タスクをトリガーし、出力を Web ブラウザーに表示します。
シェルで「cap deploy」をユーザー www-data (Process で使用されるものと同じ) として実行すると、展開が正常に機能するため、展開タスクにも認証キーにも問題はありません。ただし、Web アプリからタスクを呼び出すと、capifony はリモート サーバーで認証できないと通知します。
triggering start callbacks for `deploy'
* executing `deploy:setdomain'
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
triggering before callbacks for `deploy:update_code'
[32m--> Updating code base with checkout strategy[0m
executing locally: "git ls-remote [ myrepo ]"
command finished in 2068ms
* executing "git clone -q -o [ remote server ] [ my repo ]
/var/www/spinfony/releases/20121211100449 && cd /var/www/spinfony/releases/20121211100449 && git checkout -q -b deploy be53233e51a4c542c3bc8603b424e57f988898a4 && (echo be53233e51a4c542c3bc8603b424e57f988898a4 > /var/www/spinfony/releases/20121211100449/REVISION)"
servers: ["[ remote server ]"]
Password: stty: standard input: Invalid argument
stty: standard input: Invalid argument
stty: standard input: Invalid argument
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/spinfony/releases/20121211100449; true"
servers: ["[ remote server ]"]
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: [ remote server ] (Net::SSH::AuthenticationFailed: [ user ])
connection failed for: [ remote server ] (Net::SSH::AuthenticationFailed: [ user ])
シェルから実行していないため、capifony が提供できないパスワードを期待しているように見える理由を理解しようとしていますが、シェルから実行すると、何も聞かずに正常に動作します。
もう一度、同じファイルが同じユーザーから呼び出されます。