WordPress与Git部署问题

时间:2014-11-04 作者:Andres

我是wordpress的新手,来自python/django世界,那里有相当成熟的开发工作流和站点部署标准,因此我试图找到一些关于如何管理部署的指导。

了解我正在尝试做的一些背景知识:我将接管一个托管在Digital Ocean上的电子商务wordpress部署。该站点是实时的,虽然从长远来看,我们可能会迁移到不同的平台,因此这是一个临时解决方案,能够对已安装的主题进行一些自定义,并轻松部署到digital ocean,同时保持(版本)控制。

我最初尝试将WP部署到heroku,并使用MySQL的端口Mhoofman\'s repo. 我遇到的问题是,WP只读扩展破坏了导入程序和缩略图之类的东西,而且它似乎不再真正处于开发阶段。否则,这将是我首选的解决方案。

我最近的一次尝试是Efeqdev\'s method 将wordpress设置为子模块。在OS X上的MAMP中服务静态文件遇到问题后,我终于让它工作了。

现在,我发现安装的插件存在以下问题:

Strict Standards: Redefining already defined constructor for class WXR_Parser_Regex in [...]/project-wordpress/wp-content/plugins/wordpress-importer/parsers.php on line 408

Strict Standards: Declaration of WP_Import::bump_request_timeout() should be compatible with WP_Importer::bump_request_timeout($val) in [...]/project-wordpress/wp-content/plugins/wordpress-importer/wordpress-importer.php on line 38

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at [...]/project-wordpress/wp-content/plugins/wordpress-importer/parsers.php:408) in [...]/project-wordpress/wp-content/plugins/ninja-forms/ninja-forms.php on line 638

Warning: Cannot modify header information - headers already sent by (output started at [...]/project-wordpress/wp-content/plugins/wordpress-importer/parsers.php:408) in [...]/project-wordpress/wordpress/wp-includes/option.php on line 750

Warning: Cannot modify header information - headers already sent by (output started at [...]/project-wordpress/wp-content/plugins/wordpress-importer/parsers.php:408) in [...]/project-wordpress/wordpress/wp-includes/option.php on line 751
当然,一旦我完成了所有工作并阅读了帖子上的评论,他们似乎已经开始使用Bedrock. 我对使用Basick犹豫不决的是,Composer似乎会为我管理插件,并且可能会删除我对它们所做的任何定制。正如我所说,我对PHP/Wordpress不太熟悉,所以如果我在这方面错了,而且这似乎是一个更明智的选择,请务必让我知道。

似乎在WP的各个部分移动有很大的可能会发生故障。以标准方式将wp content子目录保存在git子模块中以及其他所有内容中是否更有意义?不完全确定如何处理uploads文件夹中的内容,将其保存在git中不是一个好主意,当上传新图像时,它会在服务器中进行修改,我们正在使用cloudflare进行媒体分发。

1 个回复
最合适的回答,由SO网友:Wyck 整理而成

我提交所有WordPress是因为我认为它是一个属于一个站点的大代码球,这意味着对核心WordPress文件、插件和主题的更新都是提交历史的一部分。

我不使用子模块或任何其他奇怪的嵌套修订设置。如果您有一个包含多个repo的复杂结构,我建议将它们分开,只使用composer或其他工具用文件而不是单独的应用程序历史更新主repo。

git忽略了哪些特定于WP的内容:

任何缓存或临时文件(例如objectcache/, pgcache/, etc)

  • /wp-content/uploads/wp-config.php, .htaccess, 任何缓存配置等)
  • 并非每个站点都是相同的,我有时会提交wp-config.php 使用多环境代码,或者有时我会提交/wp-content/uploads/ 因为这很有道理。

    还有一些插件和主题将媒体文件上传到其他位置,这很烦人,所以有时我会忽略文件类型。

    一些固执己见的注释:

    我不明白为什么人们不在回购协议中提交所有WP,当您的历史记录中有WP更改以进行更新时,您的责任要小得多(小心自动更新)。

    花点时间做好设置并进行测试,有了一个好的工作流程,东西会运行得更顺畅,而不是以后试图更改它时会发生什么。

    我采取的立场是承诺越多越好,因为回头寻找某样东西却发现它不存在是很糟糕的。但做你不想做的事也很糟糕所以保持简单reduces brain meets desk scenarios.

    下面是一个示例。gitignore我从以下内容开始:https://gist.github.com/wycks/574052a64eee9307b06c

    结束

    相关推荐

    Git上的WordPress-需要配置帮助

    我在版本控制上有我所有的WordPress代码,每次我把一些东西推到外部git repo时,服务器上都会自动更新。这意味着当我想通过wordpress添加媒体功能添加图片时,我不能。我已经按照here:但是,每次我尝试上载时,都会收到以下消息:“unicorn.jpg”上载失败,因为出现错误,无法创建目录wp content/uploads/sites/2/2014/05。其父目录>是否可由服务器写入?我的网站托管在EC2上,需要S3上的图像。有什么建议吗?