从克隆的openshift app git存储库运行本地wordpress实例

时间:2015-04-24 02:52:54

标签: wordpress git workflow openshift

我正在为使用OpenShift托管的wordpress应用程序开发插件。我可以从openshift克隆git存储库,我得到一个像这样的结构

├── .openshift
│   ├── action_hooks
│   │   ├── build
│   │   ├── deploy
│   │   ├── post_deploy
│   │   └── pre_build
│   ├── config
│   │   └── wp-config.php
│   ├── cron
│   │   ├── README.cron
│   │   ├── daily
│   │   ├── hourly
│   │   ├── minutely
│   │   ├── monthly
│   │   └── weekly
│   ├── languages
│   │   ├── .gitkeep
│   │   └── plugins
│   ├── markers
│   │   └── README
│   ├── openshift.inc
│   ├── pear.txt
│   ├── plugins
│   │   ├── .gitkeep
│   │   ├── myplugin.php
│   │   └── buddypress
│   └── themes
│       └── .gitkeep
├── README
├── README.md
├── libs
│   └── .gitkeep
├── misc
│   └── .gitkeep
└── php
    └── .gitkeep

使用git push部署到openshift时,会自动将内容移动到服务器上的正确位置。

我想在本地运行开发实例并复制该过程。如何将插件,主题等移动到本地wp-content中的正确位置,就像openhift在服务器上一样?

2 个答案:

答案 0 :(得分:1)

如果你只改变WP_CONTENT_DIR而不改变WP_CONTENT_URL,你可能会在前端和后端看到一个破碎的主题。原因是WordPress仍然会从your_domain/wp-contents/themes/your_theme/获取资源,即使现在您已经将wp-content指向另一个文件夹。

受到@bcole的启发,我尝试了一种减轻负担的方法:将您的openshift repo文件夹放在本地wordpress文件夹下。

以下是步骤:

  1. wordpress.org
  2. 下载并展开更新的WordPress包
  3. 进入你的wordpress文件夹:$ cd wordpress_folder
  4. 从遥控器Cloen你的openshift repo:

    $ git clone ssh://12345678asdf123@your_app-your_domain.rhcloud.com/~/git/your_app.git/ (您可以在登录后从您的openshift仪表板获取远程URL)

  5. 在本地启动您的WordPress应用程序(您可以设置本地主机服务器并通过经典的Wordpress 5分钟启动过程)

  6. 修改WordPress文件夹中的wp-config.php文件(不是.openshift/config文件夹中的文件!)

  7. define('ABSPATH', dirname(__FILE__) . '/');之前添加这两行:

    define('WP_CONTENT_DIR', dirname(__FILE__) . '/your_app/.openshift'); define('WP_CONTENT_URL', '/your_app/.openshift');

  8. 将要上传的主题插件复制到your_app/.openshift/
  9. 中的openshift
  10. git addgit commit,然后git push到远程
  11. 全部完成!
  12. @bcole方法的唯一区别在于我们现在将openshift INSIDE放在wordpress文件夹中,而不是NEXT TO它。好处是现在我们可以以更体面的方式定义WP_CONTENT_URL

    希望这会有所帮助!

答案 1 :(得分:0)

本地开发的一种可能性是创建一个WordPress实例,该实例配置为查看项目存储库的所有正确文件夹,而不实际移动任何项目结构。您可以通过组合符号链接和wp-config选项来实现此目的。

项目的可能设置:

1。创建本地WordPress安装

把它放在任何地方,也许在主要项目仓库旁边。

├── project-repo-checkout
│   └── .openshift, etc
└── wordpress

2。创建一个特殊的本地wp-config.php

将它放在wordpress目录中,或者升级到一级。

您可以创建一个干净的wp-config文件,仅用于开发,或者如果您需要在项目仓库中使用wp-config,则可以执行此操作:

define('WP_CONTENT_DIR', '/path/to/repo/.openshift');
require('/path/to/repo/.openshift/config/wp-config.php');

选项WP_CONTENT_DIR告诉WordPress查看文件夹.openshift并将其视为wp-content文件夹。那么它将寻找'主题'和'插件'而是在.openshift文件夹中。

这是我的设置,作为另一个例子

我有一个WordPress的git repo看起来有点像这样:

├── wp-config.php
├── src
│   ├── plugins
│   ├── themes
│   └── other stuff
└── wordpress
    ├──wp-admin
    └──wp-includes

请注意wordpress核心文件在他们自己的文件夹中关闭,并且所有开发内容都在srcwp-config.php之外,并且被git忽略。

wp-config.php中的这一行告诉WordPress在开发文件夹中查找所有内容:

define('WP_CONTENT_DIR', '/path/to/project/src');

然后它会在' src'对于名为' plugins'的文件夹和'主题'并且好像' src'现在是wp-content目录。

我在学习过程中学到的一些警告:不可能将这些主题与符号联系起来。或者'插件'文件夹,因为WordPress使用PHP代码检查实际目录的存在。可以通过符号链接上传'文件夹虽然。