在Google Cloud上使用PHP进行Web应用开发

随着Web技术的不断演进,新的技术趋势层出不穷。PHP作为一种历史悠久的技术,尽管面临着Node.js和Ruby等新兴技术的挑战,但依然保持着其重要地位。这也正是为什么Google和Microsoft等云服务提供商不得不在其云服务中支持PHP的原因。Google Cloud(PaaS)最初只支持Python,随后加入了Java和Go语言。最近,Google宣布了对PHP的实验性支持,这对于PHP爱好者来说是一个极好的机会,也可能成为Google Cloud的转折点。相信Google很快就会向所有人开放这项服务。目前,Google可能会允许请求启用PHP应用程序部署到App Engine。

本文旨在帮助那些希望在Google Cloud(Google App Engine)上使用PHP的技术人员。Google Cloud是一个优雅且可靠的PaaS,用于托管Web应用。虽然有一定的Google Cloud使用经验会有所帮助,但并非必需。

在过去的十年里,见证了Web技术领域的新趋势不断涌现。PHP作为一种历史悠久的技术,尽管面临着Node.js和Ruby等新兴技术的挑战,但依然保持着其重要地位。这也正是为什么Google和Microsoft等云服务提供商不得不在其云服务中支持PHP的原因。Google Cloud(PaaS)最初只支持Python,随后加入了Java和Go语言。最近,Google宣布了对PHP的实验性支持,这对于PHP爱好者来说是一个极好的机会,也可能成为Google Cloud的转折点。相信Google很快就会向所有人开放这项服务。目前,Google可能会允许请求启用PHP应用程序部署到App Engine。

步骤1:设置

要开始在Google Cloud上使用PHP,首先需要设置开发环境。简单地下载并安装Google App Engine SDK和PHP(在例子中是GoogleAppEngine-1.8.3.msi和php-5.4.17-Win32-VC9-x86.zip)。如果使用Java进行GAE开发,使用Eclipse作为IDE可能会有帮助,但并非必须。适用于操作系统的相关说明可以在这里找到。

步骤2:创建

由于缺乏清晰的文档,创建应用程序可能会有些棘手。首先,创建一个Python Google Cloud应用,或者直接使用SDK中的示例应用。这包含一个配置文件app.yaml。只需要更改几行代码,就可以将其变成一个PHP Web应用。

1. 将python替换为php。 runtime: php 2. 替换php文件的处理程序。注意如何指定静态文件。 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 Web应用。在本例中,编写了一个基于Twitter Bootstrap 3.0的简单PHP Web应用,展示了从PHP调用Google API。虽然在生产环境中不会以这种方式使用Bootstrap,但这是获取基于HTML5和JQuery的响应式UI的最快方式,可以在PC、平板电脑和手机上以美观的方式提供服务。需要注意的是,Google Cloud上有些功能可能无法使用,例如phpinfo()函数、文件系统访问等。然而,可以自由地使用Google Cloud Storage。这个PHP Web应用的代码可以下载。

这是Web应用在桌面上的样子:

这是同一个Web应用在移动设备上的样子(感谢Twitter Bootstrap的响应式HTML5!):

步骤4:调用Google API

当前的演示调用了Google的URL缩短API。使用的PHP代码非常简单。要能够使用Google API,需要下载并使用Google PHP客户端库。然而,在Google Cloud上使用与正常使用有一个主要区别,因为不能使用文件系统缓存和CURL。要在Google Cloud上使用Google API,需要在google-api-php-client\src\config.php中更改以下几行代码。(如果没有这篇博客,这将很难调试 - 非常感谢!)

In google-api-php-client\src\config.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', This is particularly troublesome as I did not memcache on my filesystem I had to switch between 'cacheClass' => 'Google_FileCache' (Local Testing) and 'cacheClass' => 'Google_MemcacheCache' (Google Cloud Production). URL Shortening Logic is as simple as $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); } The "Hello World" of PHP Kingdom is as simple as phpinfo();

运行Web应用

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

C:\eclipse\workspace>dev_appserver.py --php_executable_path=C:\php\php-cgi.exe php-4-gae C:\eclipse\workspace>appcfg.py update php-4-gae
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485