在Google云上,PHP网络应用程序

分享于 

7分钟阅读

Web开发

  繁體

介绍

本文旨在在谷歌云中演示PHP支持,这是最近在实验基础上发布的。 感谢谷歌允许我访问这个技术栈,它还没有在 Google App Engine 上公开提供。 我很快将这篇文章用于帮助技术人员在谷歌云( Google App Engine ) 上使用 PHP,这是一个优雅的&可以靠 PaaS。 Google云的一些经验应该有所帮助,但并非强制。

Wordle

背景

过去十年里,我们不断更新网络技术的趋势。 PHP是一种经得起时间考验的技术。 尽管如这里,看起来PHP丢失了它的,比如 node.js 和 ruby 等更新的东西,仍然是巨大的。 这就是为什么谷歌在云服务上必须支持PHP的原因。 微软在Azure仍处于测试阶段时,微软。 我甚至写了一个简单的定制PHP博客引擎在微软Azure上运行。 ( 这是在PHP年由微软印度组织的PHP中的赢家)。

然而,Google云( PaaS ) 最初依附于 python,接着是Java和go语言。 最近,谷歌宣布对PHP的实验支持。 对于我来说,比从未 better。 这给PHP爱好者带来了一个极好的机会,并且可以成为Google云的一个游戏。 我相信Google会尽快把这open给大家。 目前,如果你在这里请求 ,Google可能允许你将你的PHP应用程序部署到 App Engine。

步骤 1: 设置

第一步是为谷歌云设置开发环境。 简单下载a&安装 Google App Engine SDK & PHP (。In GoogleAppEngine-1.8.3.msi 和 php-5.4.17-win32-vc9-x86.zip )。 如果使用,它可以能帮助使用 Eclipse 作为 IDE,但在本例中不是强制的。 有关你的操作系统的相关说明,请参见这里的

步骤 2: 创建

缺乏清晰的文档使得创建应用程序成为一个棘手的领域。 第一步是创建 python 云应用程序或者简单地从SDK获取示例应用程序。 这包含一个配置文件 app.yaml. 我们只需要修改几行代码,使之成为一个php网络应用程序。

1.用php替换 python。

runtime: php 

2.为php文件替换处理程序。 请注意 static 文件的指定方式。

handlers:
- url:/css
 static_dir: css
- url:/js
 static_dir: js
- url:/fonts
 static_dir: fonts
- url:/assets
 static_dir: assets
- url:/shortener
 script: shortener.php
- url:/phpinfo
 script: phpinfo.php
- url:/.*
 script: index.php

3。在 根目录 中为可能要使用的某些受限函数创建 php.ini 文件。

; php.ini
google_app_engine.enable_functions ="php_sapi_name, php_uname, phpinfo" 

步骤 3: 实现

编写你的php网页应用程序代码。 这种情况下,我编写了一个基于 Twitter Bootstrap 3.0的简单的PHP网络应用程序,演示了来自PHP的Google调用。 尽管我不在生产中使用 Bootstrap,但是最快的方法是基于HTML5和JQuery以美化的方式提供应答。 注意,比如 云函数不能像 phpinfo() 一样工作;文件系统访问 等等,一个可以使用Google云存储。 这里PHP网络应用程序的代码可以供下载。

我的网络应用程序在桌面上的外观

这是同一个网络应用程序在移动方面的样子( 感谢来自 Twitter Bootstrap

步骤 4: 调用 Google

目前这个演示调用了google网址缩短 API。 使用的PHP代码不能是任何简单的。 为了能够使用谷歌 api,你需要从这里下载并使用Google客户端库。 不过,正常使用和谷歌云之间存在一个主要差别,因为我们不能使用 文件系统 缓存和 CURL。 为了能够使用 Google api,需要在 google-api-php-clientsrcconfig.php 中更改以下行。 ( 如果没有这个博客,调试就很困难- - 谢谢)

// In google-api-php-clientsrcconfig.php'authClass' => 'Google_OAuth2','ioClass' => 'Google_HttpStreamIO','cacheClass' => 'Google_MemcacheCache',// We need to configure fake values for memcache to work'ioMemCacheCache_host' => 'does_not_matter','ioMemCacheCache_port' => '37337', 

因为我没有在我的文件系统 上 memcache,所以这一点尤其麻烦' cacheClass' => 'Google_FileCache' ( 本地测试) 和 'cacheClass' => 'Google_MemcacheCache' ( Google云生产)。

URL缩短逻辑的简单程度如下

// shortener.php$client = new Google_Client();$service = new Google_UrlshortenerService($client);if (isset($_GET['url'])) 
{
 // Start to make API requests.$url = new Google_Url();
 $url->longUrl = $_GET['url'];
 //Shorten URL$shortUrl = $service->url->insert($url);
} 

PHP王国的"Hello World"就像

<?php//phpinfo.php phpinfo();?>

运行网络应用程序

在本地运行Web应用非常简单。 从外部 根目录 ( 在本例中为 php-4-gae ) 运行这里命令

C:eclipseworkspace>dev_appserver.py --php_executable_path=C:phpphp-cgi.exe php-4-gae 

要上传到Google云端运行这里命令( 你可能会被提示输入登录标识和密码)。

C:eclipseworkspace>appcfg.py update php-4-gae 

便笺

  • 31 2013年月: 在周末上传第一个草稿。

下周末,如果我有一些空闲时间,我希望使用基于PHP和谷歌云构建的一些流行框架( 比如基于CodeIgnitor的REST API ) 发布下一篇。 并且可以在演示中添加更多的Google调用。


WEB  PHP    google cloud  
相关文章