如何在 Bluemix php 中部署自定义骨架应用程序

Posted

技术标签:

【中文标题】如何在 Bluemix php 中部署自定义骨架应用程序【英文标题】:how to deploy a custom skeleton application in Bluemix php 【发布时间】:2015-12-19 13:50:57 【问题描述】:

在 Bluemix 中,如果我从 php 模板开始创建应用程序,则 DocumentRoot 设置为:

/htdocs.

我实际上想要一个这样的目录结构:

/htdocs
    /public_html
        index.php
    /myCode
        myPhpClass.php

使用 httpd.conf DocumentRoot="$HOME/htdocs/public_html"。

所以我尝试从本地 myAppName 目录推送这个社区 buildpack https://github.com/cloudfoundry/php-buildpack.git:

   /var
      /www
         /myAppName
             /public_html
                 index.php
             /myCode
                 myOhoClass.php
             /.bp-config
                 options.json

使用cf:

[... myAppName]# cf push -s cflinuxfs2 -m 128M -b https://github.com/cloudfoundry/php-buildpack.git myAppName

options.json 文件在哪里:


    "WEBDIR": "htdocs/public_html"

但我最终在 Bluemix 中得到的是:

 /htdocs
        /public_html
            /public_html
                index.php
            /myCode
                myPhpClass.php

有没有办法在 Bluemix 中为 apache httpd/php 应用程序提供自定义目录结构?

【问题讨论】:

【参考方案1】:

您的.bp-config/options.json 文件有点错误。应该是这样的。


    "WEBDIR": "public_html"

我自己尝试了一个 PHP 应用程序,效果很好。

cf push php-test-jbs -b https://github.com/cloudfoundry/php-buildpack.git -s cflinuxfs2

另外要部署示例点击以下。

或转到Github project 查看完整示例。

【讨论】:

抱歉,我的问题可能不清楚,但这正是我所做的。问题不在于未部署选项,而是我不知道如何使用选项来创建所需的骨架应用程序。 创建此结构:/public_html/index.php 不是所需的结构:/htdocs/public_html/index.php(DocumentRoot 指向 public_html)。 我想在 Bluemix 中复制我的开发服务器目录树:Apache 服务文件放在 [/var/www]/htdocs/public_html/ 中,而 php 类和其他我不想要的东西在公共目录中放置在 [/var/www]/htdocs/myCode/ 中(方括号 [ ] 中包含的部分只是在本地服务器中,而 Bluemix 应该有不同的部分)。 我认为这是 php 应用程序中流行的 dirs 结构。谢谢。 @marcoe 不是我在答案中发布的吗?见上图。

以上是关于如何在 Bluemix php 中部署自定义骨架应用程序的主要内容,如果未能解决你的问题,请参考以下文章

自定义fastjson解析+热部署

IBM Bluemix体验:Containers进阶

如何将内部 MobileFirst 混合应用程序部署到专用的 Bluemix 环境?

解决了好几个软件的构建问题,在解决部署问题,bluemix部署

Django 应用程序部署@Bluemix,其中 postgresql 不能作为服务使用

Bluemix 应用程序上的自定义域的 SSL 证书传播问题