OpenShift上用WordPress搭博客后记

话说这篇貌似应该做第一篇的,但是被拖了好久。

新建 OpenShift 帐号时没有什么问题。之后是看指南创建域名(如我的就是 awesome)、应用(我这个叫 wp)。指南时给的是命令行的步骤,然而我发现 web 界面里有对应功能就直接在 web 界面做了,连 SSH 公钥上传也是在 web 界面弄的。这反而引出一个问题,默认命令行下建应用是会自动新建一对 SSH 密钥供 git push 使用的,但我直接复用了已有的密钥。所以,后来我需要查文档 express.conf(5),手写配置文件 ~/.openshift/express.conf 指定密钥文件。还好这不是个大问题。

之后我基本上就是参照 Blog moved to wordpress on openshift 这篇文章来下载 WordPress,捣鼓到 openshift 本地仓库,然后用 git 推送到云上。期间我还参考了一个 GitHub 上的示例,其中的 wp-config.php 文件对我很有帮助,直接使用 OPENSHIFT 定义了的环境变量看起来很不错。

这之后其实和 OpenShift 相关的事情就不多了,主要就是配置 WordPress 了。然而期间我发现了值得一提的是,本地的 git push 会把本地仓库推送到远端的 bare 仓库里(这一点很自然),同时还会重写远端应用目录下的 repo 目录(就是 www 服务的根目录)。似乎是覆盖式的重写,如果里面有不在仓库里的文件或目录,之后也会丢失。我是在 WordPress 管理里面更新插件安装中文包,然后经过 push 后发现这些都没了后,才怀疑并最终证实的。这也意味着,这个博客的更新,主题安装等都需要先在本地搞好、提交到本地的 git 仓库之后,通过 push 上去,才算可以使用,直接在 WordPress 管理界面更新、安装主题等都不可行(会被以后的 push 灭掉的)。更新:感谢 JunkFood 向我指出人们还提出了其他一些解决方案,如把插件主题目录做成到 $OPENSHIFT_DATA_DIR 中的软链接,或者在本地仓库里开 HTTP 服务更新后提交更改等,参见下方评论Github

5 thoughts on “OpenShift上用WordPress搭博客后记

    1. 你是指在远程的 www repo 下建一个git repo,管理界面更新后git commit后 push到 bare repo,然后本地git pull 再 push么?这样也不行,因为远程的 www repo 目录在每次 push 到 bare repo 后都会重建,
      如此里面无法放一个持久的git repo 😦

      Like

  1. 然而期间我发现了值得一提的是,本地的 git push 会把本地仓库推送到远端的 bare 仓库里(这一点很自然),同时还会重写远端应用目录下的 repo 目录(就是 www 服务的根目录)。似乎是覆盖式的重写,如果里面有不在仓库里的文件或目录,之后也会丢失。
    ——————————————————————————————————
    有一个方法是利用ln指令在$OPENSHIFT_DATA_DIR里面建立一个目录$OPENSHIFT_DATA_DIR/wp-content,然后用ln把$OPENSHIFT_REPO_DIR/php/wp-content/ 链接到 OPENSHIFT_DATA_DIR/wp-content
    这样就可以保证在控制面板里面添加的插件和主题不被push重写了。
    参考链接:https://github.com/openshift/wordpress-example/pull/2

    https://github.com/svandragt/wordpress-example/commit/d3a1b9bcc222c6dd715a67127a1ebce469e2b8b8

    http://log.amitshah.net/2011/12/blog-moved-to-wordpress-on-openshift/

    Like

    1. 你提供的方法很不错,谢谢!参考链接中也给出了若干解决方案,很赞。我会给本文更新一下,虽然我不打算对这个站点做此修改。原因是我觉得对插件主题等版本控制挺好,另外我也比较懒。

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s