使用作为 Web 开发人员的您已经熟悉的语言和工具,开始在云中工作。在本教程中,将学习如何运行、修改、测试一个简单的 PHP 应用程序,并将其部署到云中。在将应用程序部署到 IBM 云开发平台 Bluemix 后,任何人都可以通过网络访问它。
本教程是 developerWorks 上的 “Bluemix 基础” 教程系列中的一篇文章。
IBM Bluemix 是企业开发人员构建、运行、扩展和管理应用程序的地方。准备好开始在 Bluemix 上创建自己的应用程序了吗?本教程将介绍托管一个 PHP 应用程序的步骤。您首先要提供一个示例 PHP 应用程序,在本地系统上运行它,修改它的代码,然后将该应用程序部署到 Bluemix,以便任何在线的人都可以使用它。
本教程将简要概括如何使用 Bluemix。
您在云中运行自己的 Apache Web 服务器 实例来支持您的 PHP 应用程序。该服务器成功部署后,将继续运行,不会与任何人共享它。
您还将在您计算机上本地运行一个内置 PHP 服务器实例,并将应用程序加载到其中。使用此设置,可以快速测试和调试应用程序,无需连接网络和在每次执行更改后上传代码。
当您的代码能够在本地服务器上正常运行,而且您觉得已准备好与大家分享它后,使用 Cloud Foundry 命令行接口将您的应用程序上传到云中(图中的黑色虚线箭头表示的流程)。Bluemix 在 Apache 服务器的幕后使用 PHP 模块设置您的应用程序。然后,您的应用程序可以通过 Bluemix 提供,任何拥有浏览器的人都可以通过网络访问它。
像大多数 PHP Web 应用程序一样,此应用程序可以立即部署到 Bluemix,无需执行额外的修改或配置。要将部署到 Bluemix:
cf api https://api.ng.bluemix.net/ cf login
cf push 您的应用程序名称
您为应用程序选择的名称必须在 Bluemix 上是唯一的— 未被其他任何 Bluemix 用户使用。如果该名称(被称为一个路由)已被使用,您会获得一个错误。
您刚才运行的命令:
cf
命令行工具和一个
Bluemix 帐户。请参阅 术语表,了解此 buildpack 如何与 Bluemix 一起载入和部署您的应用程序的更多细节。
从下一步开始,将会检查和修改应用程序的代码。一个具有多选项卡支持的语法突出显示编辑器可以让您更轻松地处理多个 PHP 和模板源代码文件。
查看解压的 ZIP 文件爱你中的 views 目录。您会看到组成该网站的 4 个模板文件:
下图显示了该应用程序的工作原理:
每个针对 Lauren's Lovely Landscapes 商店的某个页面的 Web
请求都由您的代码路由到这些模板中的一个模板。在路由到模板时,您的代码会附加一个包含网站标题信息的 PHP 变量
$site_title
。每个模板都使用此对象呈现它的标题
(Lauren's Lovely Landscapes
)。
在 index.php 中,可以看到将请求路由到某个模板所用的代码,以及一个包含来自 $site_title
对象的变量:
$lll_route = trim("$_SERVER[REQUEST_URI]", "/"); if (file_exists("views/$lll_route.tpl")) { ob_start(); require_once("views/$lll_route.tpl"); $lllpage = ob_get_contents(); ob_end_clean(); echo $lllpage; } elseif ...
在本例中,该代码首先从 URI 提取视图的基础名称,并将它加载到 $lll_route
变量中。然后它会检查 views
目录 (views/alaska.tpl) 下是否存在一个与路由名称(假设为 alaska, say)相匹配并包含 .tpl 文件扩展名的模板文件
(alaska.tpl)。
如果存在这样的 .tpl 文件,则会将它的内容读入到输出缓冲区中,并将它存储在 $lllpage
变量中。通过将该文件读入到输出缓冲区中,index.php 能够处理模板文件中的 PHP 代码。在将包含已处理的 PHP 代码的 HTML
页面加载到一个变量 ($lllpage
) 中后,会使用 echo
命令发送到浏览器。
如果检查其中一个模板(比如 alaska.tpl),就可以看到使用了 $site_title
PHP
模板变量来呈现该标题:
<head> <title> <?php echo $site_title; ?> </title> ...
从 PHP 5.4.0 版开始,每个 PHP 安装都包含一个内部 Web 应用程序。这个极小的服务器使得 PHP 应用程序的编码、测试和演示得到大大简化。您不必再为了在 PHP 中进行编码而设置和配置 Apache 或 Ngnix 服务器。
现在,您已经准备好在计算机上本地运行该应用程序:
php -S localhost:8000
在这一步中,您将修改印刷品的价格,查看它是否会立即在本地运行的网站上更新。
100.00
更改为 80.00
并保存该文件。更改的行应类似于:
<div id="price">80.00</div>
php -S localhost:8000
要让网络上的每个人都知道 Antarctica 印刷品的新价格,需要将更改后的应用程序部署到 Bluemix。
提示:您还可以指定 Bluemix 应向您的应用程序分配多少内存。例如,要设置 128 MB
的内存,可以使用:cf push -m 128M 您的应用程序名称
在第 2 步中,您看到了将 PHP 应用程序部署到 Bluemix 是多么简单。再次从您代码的根目录中运行此命令:
cf push 您的应用程序名称
成功部署后,在任何 Web 浏览器中访问以下链接来试用该应用程序:
https://您的应用程序名称.mybluemix.net/
让我们来看看在使用 Bluemix 时可能遇到的一些术语和状态消息。
在发出 cf push
CLI 命令时,您会看到一系列状态消息。如果仔细查看,就会看到以下相继短语:
测试您在本教程中学到的知识。答案 在下方。
1. c,2. e,3. e,4. c,5. b
在本教程中,您:
现在通过下一篇教程在 developerWorks 上继续学习 “Bluemix 基础”。您将学习如何为 PHP 应用程序设置团队协作和自动化部署:
要获取源源不断的教程和技术资源流来帮助您使用 Bluemix 进行学习、开发和连接,请参阅 developerWorks 上的 Bluemix 资源中心。