【问题标题】:OpenShift WordPress Theme Developer workflowOpenShift WordPress 主题开发人员工作流程
【发布时间】:2014-05-30 04:21:06
【问题描述】:

我用墨盒创建了一个应用程序,

  • PHP 5.4
  • MySQL 5.5
  • phpMyAdmin 4.0

我将我的 WP 文件、插件和主题提交到 GIT。 在我的.gitignore 中,我添加了

wp-content/uploads

正如书中第 8 章所说,我确实阅读了“OpenShift 入门”一书

“您可以使用的另一个目录是 OpenShift 数据目录, 当前位于 $OPENSHIFT_HOMEDIR/app-root/data。我们使用 环境变量 OPENSHIFT_DATA_DIR 指向这个位置。 ”

“数据目录是您的应用程序应该存储其文件的位置 并放置配置设置、下载主题或其他任何东西 你想在重启和 Git 推送中幸存下来。”

摘自:Steven Pousty 和 Katie J. Miller。 “开始使用 OpenShift。”

我访问 SSH。当我在 WordPress 中上传我的媒体时,它存储在里面

$OPENSHIFT_REPO_DIR/php/wp-content/uploads/2014/05/1.jpg

1.如何指向?

$OPENSHIFT_DATA_DIR/uploads
  1. 如果是这样,在我的 .openshift/action_hooks/deploy 文件中,我已经添加了这个脚本

    如果 [ ! -d ${OPENSHIFT_DATA_DIR}上传 ];然后 mkdir ${OPENSHIFT_DATA_DIR} 上传 菲

    ln -sf ${OPENSHIFT_DATA_DIR}上传 ${OPENSHIFT_REPO_DIR}php/wp-content/

但是,软链接脚本并没有起作用,在我的GIT PUSH 期间,它显示以下错误。

remote: ln: target `/var/lib/openshift/[ID]/app-root/runtime/repo/php/wp-content/' is not a directory: No such file or directory    

我的猜测是,$OPENSHIFT_REPO_DIR/php/wp-content/uploads/2014/05/1.jpguploads 文件夹在脚本执行之前已经被删除了。

在这种情况下如何保留上传文件夹的内容。 OpenShift 专家很乐意帮助解决这个问题。

【问题讨论】:

    标签: linux wordpress git openshift paas


    【解决方案1】:

    在尝试了几次构建脚本之后,我终于发现了我的问题。

    回答我自己的问题

    1. 如何指向它。 创建符号链接。在 GIT 推送期间,它肯定会删除您的上传文件夹($OPENSHIFT_REPO_DIR/wp-content/uploads/)。

    这是您应该使用的代码,只需删除 repo 后的 php 文件夹即可。

    if [ ! -d ${OPENSHIFT_DATA_DIR}uploads ]; then
        mkdir ${OPENSHIFT_DATA_DIR}uploads
    fi
    
    ln -sf ${OPENSHIFT_DATA_DIR}uploads   ${OPENSHIFT_REPO_DIR}wp-content/
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      这个文件有很多例子

      https://github.com/openshift/wordpress-example/blob/master/.openshift/action_hooks/deploy

      问题是每次 git push 都会覆盖那个目录。

      我认为一个更好的主意是将每个构建 rsync 内容从您的 repo 转移到它期望找到主题的数据目录(而不是执行符号链接)

      【讨论】:

      • 感谢您的回复。我确实在 wordpress-example 中研究了部署文件。正如你所说,每次我们推送目录都会被覆盖。下面是我的两个问题,希望你能帮忙解答。 1.这是否意味着无法将我的上传文件夹指向 $OPENSHIFT_DATA_DIR/uploads? 2.是否有任何脚本可以在构建/部署脚本中运行rsync?我研究的东西都需要在SSH中完成,你不认为它可以自动化吗?我想要的只是从 $OPENSHIFT_REPO_DIR 复制到 $OPENSHIFT_DATA_DIR 然后在 GIT PUSH 完成后,复制回原始文件夹。
      • 您应该只使用 OPENSHIFT_DATA_DIR/uploads 获得上传。我还认为您应该修改构建操作挂钩(我在上面链接到)脚本,以便在您想要的点将 repo_dir 的内容同步到 data_dir。
      猜你喜欢
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2011-12-17
      相关资源
      最近更新 更多