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')