2013-06-04 2 views
1

저는 내 서버에 Symfony2 응용 프로그램을 배포하기 위해 Capifony를 사용하고 있으며 몇 달 동안 사용하고 있습니다. 그러나 오늘 서버에 배포 할 때 갑자기 오류가 거부되었습니다. 나는 이전에이 프로그램을 사용 해 본 적이 없으며 실제로 서버 사용 권한을 변경하지 않았습니다. 실제로는 한 시간 정도 밖에 배포하지 않았으므로 괜찮 았습니까?! 다음은 오류의 예입니다.Symfony2 Capifony 배포시 사용 권한이 거부되었습니다.

** [out :: xx.xxx.xxx.xxx] 
** [out :: xx.xxx.xxx.xxx] rm: 
** [out :: xx.xxx.xxx.xxx] cannot remove `/var/www/vhosts/xyz.co.uk/releases/20130604203446/web/bundles/website/lib/frontend/img/blog/pop-2.jpg': Permission denied 
** [out :: xx.xxx.xxx.xxx] 
** [out :: xx.xxx.xxx.xxx] rm: 
** [out :: xx.xxx.xxx.xxx] cannot remove `/var/www/vhosts/xyz.co.uk/releases/20130604203446/web/bundles/website/lib/frontend/img/awaitingimages.jpg': Permission denied 
** [out :: xx.xxx.xxx.xxx] 
** [out :: xx.xxx.xxx.xxx] rm: 
** [out :: xx.xxx.xxx.xxx] cannot remove `/var/www/vhosts/xyz.co.uk/releases/20130604203446/web/bundles/website/lib/frontend/img/ratingsprite.gif': Permission denied 
** [out :: xx.xxx.xxx.xxx] 
    command finished in 561ms 
failed: "sh -c 'if [ `readlink /var/www/vhosts/xyz.co.uk/current` != /var/www/vhosts/xyz.co.uk/releases/20130604203446 ]; then rm -rf /var/www/vhosts/xyz.co.uk/releases/20130604203446; fi'" on xx.xxx.xxx.xxx 

이러한 오류가 발생합니다. 항상 같은 배포 사용자를 사용하고 있습니다. 나는 그것이 작곡가가 업데이트 할 때 할 일이 있는지 궁금합니다. 여기

{ 
    "name": "symfony/framework-standard-edition", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/" } 
    }, 
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "2.2.*", 
     "doctrine/orm": "~2.2,>=2.2.3", 
     "doctrine/doctrine-bundle": "1.2.*", 
     "twig/extensions": "1.0.*", 
     "symfony/assetic-bundle": "2.1.*", 
     "symfony/swiftmailer-bundle": "2.2.*", 
     "symfony/monolog-bundle": "2.2.*", 
     "sensio/distribution-bundle": "2.2.*", 
     "sensio/framework-extra-bundle": "2.2.*", 
     "sensio/generator-bundle": "2.2.*", 
     "jms/security-extra-bundle": "1.4.*", 
     "jms/di-extra-bundle": "1.3.*", 
     "egeloen/ckeditor-bundle": "2.*", 
     "knplabs/knp-menu-bundle": "1.1.*", 
     "doctrine/doctrine-fixtures-bundle": "dev-master", 
     "doctrine/data-fixtures": "dev-master", 
     "egeloen/google-map-bundle": "*", 
     "willdurand/geocoder": "*", 
     "kriswallsmith/buzz": "*", 
     "phpunit/phpunit": "3.7.*", 
     "phpunit/php-invoker": "*", 
     "doctrine/doctrine-migrations-bundle": "dev-master", 
     "liuggio/rackspace-cloud-files-streamwrapper": ">=2.1", 
     "liuggio/rackspace-cloud-files-bundle": ">=2.1", 
     "avalanche123/imagine-bundle": "v2.1" 
    }, 

    "scripts": { 
     "post-install-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ], 
     "post-update-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ] 
    }, 

    "config": { 
     "bin-dir": "bin", 
     "bin-dir": "/usr/local/bin/" 
    }, 
    "minimum-stability": "dev", 

    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web", 
     "symfony-assets-install": "symlink", 
     "branch-alias": { 
      "dev-master": "2.2-dev" 
     } 
    } 
} 

내 deploy.rb 스크립트입니다 :

set :stage_dir, 'app/config/deploy' # needed for Symfony2 only 
set :stages, %w(production staging development) 
require 'capistrano/ext/multistage' 

set :application,   "xyz.co.uk" 
set :user,     "deployer" # The server's user for deploys 

set :normalize_asset_timestamps, false 

set :repository,   "[email protected]/xyz.co.uk.git" 
set :scm,     :git 
set :keep_releases,   5 
after "deploy:update",  "deploy:cleanup" 
set :use_sudo,    true 
set :web_path,    "web" 
set :shared_files,   ["app/config/parameters.yml", "web/.htaccess"] 
set :shared_children,  [app_path + "/logs", web_path + "/uploads", "vendor"] 
set :use_composer,   true 
set :update_vendors,  true 
set :dump_assetic_assets, true 
set :deploy_via,   :remote_cache 

set :writable_dirs,  ["app/cache", "app/logs", "web/uploads"] 
set :webserver_user,  "www-data" 
set :permission_method, :acl 
set :use_set_permissions, true 


logger.level = Logger::MAX_LEVEL 

내 production.rb 스크립트 :

server 'xx.xxx.xxx.xxx', :app, :web, :primary => true 
ssh_options[:port] = xxxx 
ssh_options[:forward_agent] = true 
default_run_options[:pty] = true 

set :deploy_to, "/var/www/vhosts/xyz.co.uk/" 

set :symfony_env_prod, "prod" 
set :branch, "master" 

after 'deploy:finalize_update', 'symfony:project:clear_controllers' 

답변

0

여기 내 첫번째 추측은 당신 것입니다 여기 내 composer.json 파일입니다 set :permission_method, :acl을 사용하지 말고 chmod으로 설정하십시오. 이것 좀 봐 - Automatically set proper permissions. Btw, 어떤 버전의 유닉스를 실행합니까?

useruse_sudo을 동시에 지정해야하는지 확인하십시오. 그것도 이유가 될 수 있습니다.

+0

감사합니다. 그것은 단지 막 시작한 이유는 무엇입니까? 작곡가가 설치/업데이트 할 때 의존성 중 하나와 관련이 있어야한다고 생각했습니다. – user1961082

+0

내 composer.json 파일과 스크립트가 이전에 언급 한 것과 별개로 프로덕션 환경에서 올바르게 표시됩니까? symfony 버전 등 – user1961082

+0

"bin-dir"을 한 번만 사용하고 "minimum-stability"행을 제거하십시오 : "dev"및 ""branch-alias : { "dev-master": "2.2- dev "}',하지만 나머지는 좋아 보인다. 또한 버전을'symfony-standard' 배포본 [composer.json] (https://github.com/symfony/symfony-standard/blob/v2.2.2/composer.json)과 [composer.lock] (https : /github.com/symfony/symfony-standard/blob/v2.2.2/composer.lock) –

관련 문제