IBM的云平台Bluemix使用初体验——创建PHP Web 应用程序,添加并使用语言翻译服务

简介: 概述 通过本文学习,你将能够在IBM的云平台Bluemix上创建自己的PHP Web 应用程序,添加并使用语言翻译服务,发布自己的PHP应用到云服务器上。 本地开发测试环境:Windows 7 x64,PHP,Nginx 有关本地分环境的搭建,请参考:ThinkPHP学习(一) Windows下Nginx+PHP5+ThinkPHP_3.2.1的安装与配置Bluemix 是什么?IBM Bluemix 是开放式标准云平台,用于构建、运行和管理应用程序。

概述

通过本文学习,你将能够在IBM的云平台Bluemix上创建自己的PHP Web 应用程序,添加并使用语言翻译服务,发布自己的PHP应用到云服务器上。


本地开发测试环境:Windows 7 x64,PHP,Nginx

有关本地分环境的搭建,请参考:ThinkPHP学习(一) Windows下Nginx+PHP5+ThinkPHP_3.2.1的安装与配置


Bluemix 是什么?

IBM Bluemix 是开放式标准云平台,用于构建、运行和管理应用程序。使用 Bluemix,开发者可以集中通过灵活的计算选项、DevOps 工具的选择以及一组强大的 IBM 及第三方 API 和服务来构建卓越的用户体验。

了解更多

  1. 注册Bluemix云服务器,注册戳这里
  2. 登陆Bluemix平台,进行部署/开发,登录戳这里


创建 Web 应用程序


通过 IBM® Bluemix™,可以在 Bluemix 用户界面中创建应用程序。创建应用程序后,可以决定是继续使用 UI,使用 cf 命令行界面,还是使用 IBM Bluemix DevOps Services 来开发、跟踪、规划和部署应用程序。

在 Bluemix 中创建应用程序时,首先是创建入门模板。入门模板是一种模板,包含预定义的服务和使用特定 buildpack 配置的应用程序代码。入门模板有两种类型:样板和运行时。
样板是一种容器,用于应用程序及其关联的运行时环境,以及针对特定域的预定义服务。例如,“移动云”样板包含 Node.js 运行时,以及 Mobile Data、Mobile Application Security 和 Push 服务。样板还包含 SDK 和样本应用程序,方便着手开发用于访问这些服务的移动应用程序。
运行时是用于运行应用程序的一组资源。Bluemix 提供运行时环境来作为不同类型应用程序的容器。运行时环境作为 buildpack 集成到 Bluemix 中,并自动配置以供使用,只需很少维护,甚至完全无需维护。
要开始创建应用程序,请执行以下步骤:

  1. 1、在 Bluemix 用户界面中,转至“仪表板”。

  2. 2、单击创建应用程序

  3. 3、单击 Web,然后按照指导经验来选择入门模板,指定名称以及选择编码方式。

  4. 输入应用程序名称

  5. 应用程序名称是唯一的,接下来要通过它做为二级域名来访问你的应用!

  6. 点击完成之后,需要等待一会儿,然后可以看到下图的界面
    1. 这时就可以访问你刚刚创建的应用了。如下图:

  7. 4、按照指导经验完成操作后,单击查看应用程序概述。“仪表板”上将显示应用程序的“概述”。

  8. 通过文件和日志,可以查看默认页面的源代码:

  9. 通过仪表板页面的应用程序,可以找到自己已经创建的应用程序;

  10. 5、可以通过单击 Bluemix 用户界面中应用程序“概述”上的添加服务或 API,将服务添加到应用程序中。也可以使用 cf 命令行界面。请参阅处理应用程序的可用选项



  11. 6、在应用程序“概述”上,单击添加 Git 可将应用程序源代码保存到 Git 存储库中,并创建 Git 托管的项目。您还可以从 IBM Bluemix DevOps Services 部署应用程序。

  12. 本文不使用Git,而是使用CF(Cloud Foundry)上传应用程序!

注: 如果绑定到应用程序的服务崩溃,那么该应用程序可能会停止运行或发生错误。Bluemix 不会自动重新启动应用程序以从这些问题中恢复。请考虑对应用程序进行编码,以便识别中断、异常和连接失败状况并从中进行恢复。请参阅应用程序不会自动重新启动故障诊断主题,以获取更多信息。


开发基于服务的应用


1、获取服务信息

进入自己的应用程序》概述页面,找到已经添加的服务,点击“显示凭证”,可以查看服务的具体信息:

在浏览器中访问服务URL

在浏览器请求支持的语言:

服务URL:https://gateway.watsonplatform.net/language-translation/api/v2/identifiable_languages

2、编写PHP代码

AJAX调用代码

//通过AJAX调用后台翻译程序
function doExecTrans(){
	var txt = $("#InputText").val();
	if (txt == ""){
		alert("请输入要翻译的文本!");
		return;
	}
	
	$("#ProgressDiv").show();
	$.ajax({
	   type: "GET",
	   url: "trans.php",
	   dataType:"json",
	   data: {"txt":txt},
	   success: function(data){
		 $("#ProgressDiv").hide();
		 console.log(data);
		 if (data.error){
			alert(data.error);
		 }else{
			$("#OutputText").text(data.text);
		 }
	   },
	   error: function(data){
		 console.log(data);ssss
		 alert( "Error Msg: " + data );
		 $("#ProgressDiv").hide();
	   }
	});
}
PHP代码

// powered by: testcs_dn
// Blog: http://blog.csdn.net/testcs_dn
// Create time: 2015/11/14
//获取get请求携带的参数
function get($paramName){
	if(is_array($_GET)&&count($_GET)>0)//判断是否有Get参数 
	{ 
		if(isset($_GET[$paramName]))//判断所需要的参数是否存在,isset用来检测变量是否设置,返回true or false 
		{ 
			return $_GET[$paramName];//存在 
		} 
	}
	return "";
}

//要翻译的文本
$txt=get("txt");
if ($txt == ""){
	exit('{"error":"请输入要翻译的文本!"}');
}

//服务URL
$url = "https://gateway.watsonplatform.net/language-translation/api/v2/translate?source=en&target=es&text=".$txt;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//https请求必须设置以下两项
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

//设置凭证
curl_setopt($ch, CURLOPT_USERPWD, '您的用户名:您的密码');

//执行请求
$output = curl_exec($ch);

if($output === false)
{
    echo curl_error($ch);
}
else
{
    //echo '操作完成没有任何错误<br />';
	//打印获得的数据
	echo '{"text":"'.$output.'"}';
	
	//var_dump($output);
	//var_dump($ch);
	//$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 
	//var_dump(curl_getinfo($ch));
}

// Close handle
curl_close($ch);


上传应用程序

登录到 Bluemix™ 后,可以使用 cf push 命令来上传应用程序。

开始之前,您必须:
  1. 1、安装 Cloud Foundry 命令行界面。

    下载 Cloud Foundry 命令行界面


  2. 请根据自己使用的操作系统下载对应的版本;我使用的是Windows 7 64位操作系统,
  3. 下载Binaries版本的不需要安装,直接解压到Windows目录就可以了

  4. 以下执行的命令你可以通过访问 https://www.ng.bluemix.net/docs/#starters/upload_app.html#upload_app__push
  5. 查看属于自己的命令;
  6. 2、连接到 Bluemix
  7. 打开命令提示符窗口:开始》运行,输入“cmd”,回车
  8. 执行:cf api https://api.ng.bluemix.net,如下图:

  9. 3、登录到 Bluemix
  10. 注意,这里要换成对应你自己账户的命令!
  11.  
      
    cf login -u ivu4e@qq.com -o ivu4e@qq.com -s ivu4e

4、发出 cf push 命令时,cf 命令行界面将提供使用 buildpack 来构建并运行应用程序的 Bluemix 环境的工作目录。

  1. 从应用程序目录中,输入带有应用程序名称的 cf push 命令。在 Bluemix 环境中,应用程序名称必须是唯一的。
  2. 后面的"-m 512m"是修改应用程序内存配额的,可以不带这个参数,如下图:

  3. 提示: 使用 cf push 命令时,cf 命令行界面会将当前目录中的所有文件和目录复制到 Bluemix。确保应用程序目录中只包含必需的文件。
  4. 例如我的目录,下面只有一个:test.php,这是测试是使用的文件,后续应用相关文件有所改变。

  5. 执行“cf push”命令成功之后,我们再到文件和日志中看一看我们上传的文件:

  6. OK,我们访问一下,看看效果吧:http://php2info.mybluemix.net/test.php

  7.  
      
    cf push appname -m 512m
    Bluemix 包含内置 buildpack。在某些情况下,即便对于内置 buildpack,也必须提供 -c 选项来指定用于启动应用程序的命令。例如,需要使用 -c 选项来推送 Node.js 应用程序:
     
      
    cf push appname -c start_command
    此外,Node.js 应用程序还必须包含有效的 package.json 文件。

    所有其他外部 buildpack 都必须使用 -b 选项来推送。例如:

     
      
    cf push appname -b buildpack_URL

    cf push 命令上传应用程序并将其部署到 Bluemix。有关 cf push 的更多信息,请参阅 cf 命令。有关 buildpack 的信息,请参阅使用社区 buildpack

  8. 如果更改了应用程序,可以通过再次输入 cf push 命令来上传这些更改。 cf 命令行界面会使用您先前的选项以及您对提示的响应来通过新的代码段更新应用程序的任何运行中实例。
提示: 您还可以从  Bluemix DevOps Services 上传或部署应用程序。请参阅 在 Node.js 中使用 Web IDE 开发Bluemix 应用程序


应用上线效果


点击效果图片链接可以直接在线访问,由于目前服务器还在国外,打开速度有点慢;http://php2info.mybluemix.net/


使用体验

创建、部署和维护 Web 应用程序都很简单,让开发人员可以更专注于应用的开发。

文档比较全面,不过感觉有些地方说的不够细,比如语言翻译服务我就没有找到如何翻译一句话或一篇文章的方法,每次只能翻译一个单词!

由于目前服务器还在国外,打开速度有点慢;希望能早日进驻国内。


目录
相关文章
|
1月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
30 0
|
1月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
407 3
|
1月前
|
JSON API 数据库
解释如何在 Python 中实现 Web 服务(RESTful API)。
解释如何在 Python 中实现 Web 服务(RESTful API)。
26 0
|
8天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
17 0
|
24天前
|
数据采集 Java API
python并发编程: Python使用线程池在Web服务中实现加速
python并发编程: Python使用线程池在Web服务中实现加速
18 3
python并发编程: Python使用线程池在Web服务中实现加速
|
27天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
15 4
|
1月前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0
|
1月前
|
缓存 监控 前端开发
如何优化 Python WEB 应用程序的性能?
【2月更文挑战第27天】【2月更文挑战第93篇】如何优化 Python WEB 应用程序的性能?
|
1月前
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务
|
1月前
|
SQL 安全 测试技术
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
15 0