我试图得到wordpress和由作曲家管理的所有插件.我遵循了以下说明:
https://roots.io/using-composer-with-wordpress/
和其他类似的说明在这里:
Composer => WordPress plugin workflow
但是我的问题是有时wordpress更新和/或插件更新会更改数据库.
在某些情况下,只需通过编辑器从repo下载文件就可以了,但是当更新对数据库进行重大更改时(即:WP 4.2到4.3)更改了永久链接,它就无法正常工作.
我需要的是一种强制更新来运行任何所需的数据库更改的方法.
关于我在这里处理什么的一点背景.我有150多个wordpress网站,有些运行不同的插件,有时,如果需要的话,还有不同版本的wordpress.
我是使用git ignore控制wp-content文件夹减去一堆文件的版本.
我目前有一个工作持续集成过程与框架网站(蛋糕,zend等)一起工作.这个过程使用git – >jenkins – >网络服务器.
我希望我的wordpress网站遵循类似的过程.
任何帮助,将不胜感激.谢谢.
最佳答案 所以我使用以下内容来创建我的解决方案
https://roots.io/using-composer-with-wordpress/
和
https://roots.io/wordpress-plugins-with-composer/
通过一些修改/ Jank,我将在下面详述
数据库更新我发现,只要你不运行需要更改数据库的两个单词按更新,你就可以了.
例子
如果您登录到wp admin并更新数据库,wordpress 4.2到4.3可以正常工作
但是,如果你更新4.2到4.3什么也不做,并且更新4.3到4.6你有时会遇到问题,我仍然没有解决
但是我确实有插件和wordpress自动更新
概观
我做了一个基础wordpress repo,所有新项目都是分开的
我的jenkins构建运行composer update或composer install,具体取决于vendor文件夹是否存在
我为所有“已批准”的插件制作了一个插件仓库,插件存储库只是当前插件的副本,必须包含
{
"name": "YOURBITBUCKETGROUP/NAMEOFPLUGINEXACTLY",
"type": "wordpress-plugin",
"require": {
"composer/installers": "v1.0.6"
}
}
我将这些全部公开,以便任何网站都可以访问它们而没有任何信誉
此外,当更新插件时,只需创建一个名为“pluginversion”的分支
例1.2.3
这将允许您在需要时恢复到旧版本的插件
安装和更新wordpress和插件
从上面的链接我创建了一个看起来有点像这样的composer.json
{
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
},
{
"type": "git",
"url": "https://bitbucket.org/YOUREPOLINEHERE/NAMEOFPLUGIN"
}
],
"type": "wordpress-core",
"require": {
"johnpbloch/wordpress-core-installer": "~0.1",
"johnpbloch/wordpress": "4.*",
"YOUREPOLINEHER/NAMEOFPLUGIN": "dev-master"
},
"extra": {
"wordpress-install-dir": "wp"
}
}
这将把网站更新为wordpress 4.X并在build上安装最新版本的插件
如果您想安装旧版本的插件,只需更改即可
"YOUREPOLINEHER/NAMEOFPLUGIN": "dev-master"
至
"YOUREPOLINEHER/NAMEOFPLUGIN": "1.2.3.x-dev"
这将在wp文件夹中的项目根目录中安装wp core,在wp-content文件夹中安装插件
您将需要使用此更改index.php
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
至
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
此时,如果你按照上面的链接,你可能会认为你已经完成了,不完全是这样
问题和修复
这些是我的修复,他们可能不是完成这项工作的最佳方式,但他们为我工作任何改善这些的意见将不胜感激.
第一个问题是.gitignore
你会认为你可以忽略插件目录吗?这就产生了一个问题,即plugins目录不存在,并且空的index.php不存在
这个解决方案的第二个问题是uploads文件夹是版本化的,用户无法上传图像(将在构建时删除)
我的解决方案是不将插件添加到repo但允许添加index.php文件
我也从最终构建步骤中排除了.gitignore中的所有文件,因此它们不会被覆盖
我的.gitignore看起来像这样(你可能需要忽略其他文件)
/.htaccess
/wp/*
/vendor/*
/wp-content/mu-plugins/*
/wp-content/backup*/*
/wp-content/managewp/*
/wp-content/*.log
/wp-content/uploads/*
.DS_store
这会导致所有被忽略的文件被版本化,并允许最终用户更改上载文件夹
这也意味着您必须手动将uploads文件夹上传到服务器
希望这可以帮助你,如果你试图版本wordpress
编辑:同样在db wp_options网站中,url需要以/ wp为后缀