【问题标题】:Run local wordpress instance from cloned openshift app git repository从克隆的 openshift 应用程序 git 存储库运行本地 wordpress 实例
【发布时间】:2015-04-24 02:52:53
【问题描述】:

我正在为 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-content 中的正确位置?

【问题讨论】:

    标签: wordpress git workflow openshift


    【解决方案1】:

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

    @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 应用程序(您可以设置一个 localhost 服务器并通过经典的 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

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

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

      您的项目的可能设置:

      1。创建本地 WordPress 安装

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

      ├── 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 文件夹中寻找“主题”和“插件”。

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

      我有一个 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”和“themes”的文件夹,就好像“src”现在是wp-content 目录。

      我在此过程中学到的一些注意事项:无法对“主题”或“插件”文件夹进行符号链接,因为 WordPress 使用 PHP 代码来检查实际目录是否存在。不过,可以对“上传”文件夹进行符号链接。

      【讨论】:

      • Openshift 使用 getenv 在 wp-config.php 中定义一些值,例如,define('DB_USER', getenv('OPENSHIFT_MYSQL_DB_USERNAME'));你知道我如何在本地设置这些变量吗?
      • 如果 getenv 未在本地定义为函数,但在项目 repo 的 wp-config.php 文件中使用,并且如果您正在创建本地 wp-config.php 文件为我描述了,那么您还应该能够在本地定义 getenv 函数以返回您喜欢的任何值。 Here is an example of how that could be done 以便您可以在本地使用单独的值。这有帮助吗?
      • 如果您使用这种方法,请注意您的存储库的路径应该是绝对的,并且不能是指向该文件夹的符号链接。为方便起见,请使用 __File__dirname()。例如,如果 wordpress 文件夹是您的 openshift 存储库的兄弟,您可能会这样做:define('WP_CONTENT_DIR', dirname(dirname(__FILE__)) . '/your_project/.openshift'); 嵌套目录名表示当前 wp-config.php 文件的父文件夹
      猜你喜欢
      • 2019-02-07
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 2014-05-07
      • 2013-02-28
      • 2018-03-07
      • 2021-09-18
      • 1970-01-01
      相关资源
      最近更新 更多