OpenShift WordPress主题开发者工作流程

3
我使用Cartridges创建了一个应用程序,其中包含以下内容:
  • PHP 5.4
  • MySQL 5.5
  • phpMyAdmin 4.0
我将我的WP文件、插件和主题提交到GIT中。在我的.gitignore中,我添加了以下内容:
wp-content/uploads

我阅读了《Getting Started with OpenShift》一书,其中第8章提到:“另一个可用于您的是OpenShift数据目录,当前位于$ OPENSHIFT_HOMEDIR / app-root / data。我们使用环境变量OPENSHIFT_DATA_DIR指向此位置。”“数据目录是您的应用程序应存储其文件并放置配置设置、下载主题或通常任何要在重启和Git推送后保留的内容的地方。”
我可以访问SSH。当我在WordPress中上传我的媒体时,它会存储在内部。
$OPENSHIFT_REPO_DIR/php/wp-content/uploads/2014/05/1.jpg

1.我应该将它指向哪里?

$OPENSHIFT_DATA_DIR/uploads
  1. 如果是这种情况,在我的.openshift/action_hooks/deploy文件中,我添加了以下脚本:

    if [ ! -d ${OPENSHIFT_DATA_DIR}uploads ]; then mkdir ${OPENSHIFT_DATA_DIR}uploads fi

    ln -sf ${OPENSHIFT_DATA_DIR}uploads ${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.jpg这个路径下的uploads文件夹在脚本运行之前已经被删除了。
在这种情况下,我该如何保留uploads文件夹中的内容呢?希望OpenShift专家能够在这个问题上给予帮助。
2个回答

2

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

为了回答自己的问题:

  1. 我应该如何指向它。 创建符号链接。在GIT push期间,它肯定会删除您的上传文件夹($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/

我希望这能帮到你。


1

感谢您的回复。我确实在研究WordPress示例中的部署文件。正如您所说,每次我们推送时,目录都会被覆盖。以下是我的两个问题,希望您能帮忙解答。1.这是否意味着不可能将我的上传文件夹指向$OPENSHIFT_DATA_DIR/uploads?2.是否有任何脚本可以在构建/部署脚本中运行rsync?根据我的研究,所有操作都需要在SSH中完成,您不认为它可以自动化吗?我想要的只是从$OPENSHIFT_REPO_DIR复制到$OPENSHIFT_DATA_DIR,然后在GIT PUSH完成后,将其复制回原始文件夹。 - Tom Kim
你应该只使用OPENSHIFT_DATA_DIR/uploads来获取uploads目录。我觉得你还应该修改构建操作挂钩(我在上面链接的)的脚本,以在你想要的时候将repo_dir的内容同步到data_dir。 - TheSteve0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接