Wordpress 在结构上使用composer部署

Wordpress 在结构上使用composer部署,wordpress,nginx,deployment,composer-php,fabric,Wordpress,Nginx,Deployment,Composer Php,Fabric,我正在寻找使用 织物 作曲家 我所拥有的: 在Ubuntu 12.04 LTS上运行的nginx、php fpm和mysql平台 例如,一个普通的sudoer用户,我将命名为“deployer” 网络用户名www-data,其组名为www-data 我要找的是: 使用fabric部署具有composer的wordpress站点 部署将使用名为“deployer”但www-data目录拥有的sudoer用户完成 部署必须在/var/www/my_wordpress_站点上完成 问题

我正在寻找使用

  • 织物
  • 作曲家
我所拥有的:

  • 在Ubuntu 12.04 LTS上运行的nginx、php fpm和mysql平台
  • 例如,一个普通的sudoer用户,我将命名为“deployer
  • 网络用户名www-data,其组名为www-data
我要找的是:

  • 使用fabric部署具有composer的wordpress站点
  • 部署将使用名为“deployer”但www-data目录拥有的sudoer用户完成
  • 部署必须在/var/www/my_wordpress_站点上完成
问题

  • Composer无法编写/home/deployer/。Composer,我想Composer会尝试使用它的目录,因为用于部署的用户是部署器deployer
  • 编写器无法安装依赖项
问题:

  • 是否可以将wordpress站点安装在/home/deployer/my_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>

阶段={
“发展”:{
'主机':['deployer@deployment-服务器'],
“代码目录”:“/var/www/my\u wordpress\u site”,
“代码处”:“开发”
},
....
}
def stage_set(stage_name='development'):
env.stage=阶段名称
对于选项,阶段[env.stage]中的值。项()
setattr(环境、选项、值)
....
@任务
def开发():
阶段集(“开发”)
@任务
def deploy():
要求(‘阶段’,由=(生产、阶段、开发)提供)
使用设置(仅警告=真):
如果sudo(“测试-d%s”%env.code_dir,user='www-data',group='www-data')失败:
sudo(“git克隆git@bitbucket.org:myuser/myu wordpress\u site.git%s“%(env.code\u dir),user='www-data',group='www-data')
带cd(环境代码目录):
sudo(“php-r\”副本('https://getcomposer.org/installer“,”composer setup.php“;\”,user='www-data',group='www-data')
sudo(“php-r\”if(hash_文件('SHA384','composer setup.php')==='55D6EAD61B29C7BDE5CCFB50076874187D9F21F65D8991D46EC5CC90518F447387FB9F76EBAE1FBBACF329E583E30'){echo安装程序已验证';else{echo安装程序已损坏';取消链接('composer-setup.php')}echo php\u EOL;\”,user='www-data',group='www-data')
sudo(“php composer setup.php”,user='www-data',group='www-data')
sudo(“php-r\”取消链接('composer-setup.php');\”,user='www-data',group='www-data')
sudo(“php composer.phar安装——无开发”,user='www-data',group='www-data')
带cd(环境代码目录):
sudo(“git pull”,user='www-data',group='www-data')
sudo(“php composer.phar update--no dev”,user='www-data',group='www-data')