从克隆的openshift应用程序git存储库运行本地wordpress实例



我正在为使用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时,它会自动将内容移动到服务器上的正确位置。

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

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

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

步骤如下:

  1. 从WordPress.org下载并展开更新的WordPress软件包
  2. 进入wordpress文件夹:$ cd wordpress_folder
  3. 从远程克隆您的openshift回购:

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

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

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

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

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

  7. your_app/.openshift/中复制要上传到openshift的主题插件
  8. git addgit commit,然后git push到远程
  9. 全部完成

@bcole方法的唯一区别是,我们现在将openshift放在wordpress文件夹内,而不是旁边。好处是,现在我们可以用更体面的方式定义WP_CONTENT_URL

希望这会有所帮助!

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

项目的可能设置:

1.创建本地WordPress安装

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

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

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

把它放在wordpress目录中,或者更高一级。

您可以创建一个干净的wp-config文件用于开发,或者如果您需要在项目repo:中使用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文件夹中查找"主题"one_answers"插件"。

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

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

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

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

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

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

然后它会在"src"中查找名为"plugins"one_answers"themes"的文件夹,就好像"src"现在是wp-content目录一样。

一路上我学到了一些注意事项:不可能符号链接"主题"或"插件"文件夹,因为WordPress使用PHP代码来检查实际目录的存在。不过,可以对"上传"文件夹进行符号链接。

最新更新