在Fabric上使用composer进行部署

时间:2017-02-01 17:23:25

标签: wordpress nginx deployment composer-php fabric

我正在寻找使用

进行wordpress部署的正确方法
  • 织物
  • 作曲

我有什么:

  • 在Ubuntu 12.04 LTS上运行的nginx,php-fpm和mysql plataform
  • 一个普通的sudoer用户,例如,我将命名" 部署者"
  • 网址 www-data ,其中包含名为 www-data
  • 的群组

我在寻找:

  • 使用fabric
  • 使用composer部署wordpress站点
  • 部署将通过名为" 部署者"的sudoer用户完成。但是 www-data 目录所拥有的
  • 部署必须在 / var / www / my_wordpress_site
  • 上完成

问题

  • 作曲家无法写 /home/deployer/.composer ,我猜作曲家尝试使用它目录,因为用于部署的用户是部署者 < / LI>
  • Composer无法安装依赖

问题:

  • 是否可以在 / home / deployer / my_wordpress_site 这样的目录上安装wordpress网站并使其成为nginx可写的?
  • 在网站上进行部署的正确方法是什么

结构代码

<pre>

STAGES = {
        'development' : {
            'hosts'       : ['deployer@deployment-server'],
            'code_dir'    : '/var/www/my_wordpress_site' ,
            'code_branch' : 'development'
            },
            ....
        }

def stage_set(stage_name='development'):
    env.stage = stage_name
    for option, value in STAGES[env.stage].items():
        setattr(env, option, value)
....

@task
def development():
    stage_set('development')

@task
def deploy():
    require('stage', provided_by=(production, staging, development))
    with settings(warn_only=True):
        if sudo("test -d %s" % env.code_dir, user='www-data', group='www-data').failed:
            sudo("git clone git@bitbucket.org:myuser/my_wordpress_site.git %s" % (env.code_dir), user='www-data', group='www-data')
            with cd(env.code_dir):
                sudo("php -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\"", user='www-data', group='www-data')
                sudo("php -r \"if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;\"", user='www-data', group='www-data')
                sudo("php composer-setup.php", user='www-data', group='www-data')
                sudo("php -r \"unlink('composer-setup.php');\"", user='www-data', group='www-data')
                sudo("php composer.phar install --no-dev", user='www-data', group='www-data')
    with cd(env.code_dir):
        sudo("git pull", user='www-data', group='www-data')
        sudo("php composer.phar update --no-dev", user='www-data', group='www-data')
        </pre>

0 个答案:

没有答案