【问题标题】:Google App Engine PHP SDK - How to install on Ubuntu (15.10)?Google App Engine PHP SDK - 如何在 Ubuntu (15.10) 上安装?
【发布时间】:2016-05-23 09:21:58
【问题描述】:

谷歌官方文档在这里:
https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_PHP

但它没有提供有关以下步骤的足够信息:
"4 - 构建并安装 PHP 解释器和 App Engine PHP 扩展。在运行时指定 php-cgi 和 gae_runtime_module.so 的路径开发服务器。”

我正在使用带有 Ubuntu 15.10 和 PhpStorm 的新 Virtualbox 机器来测试 GAE。

有人可以提供有关第 4 步的明确说明吗?安装 php 解释器和 App Engine php 扩展需要做什么?

附:我已经用谷歌搜索过,但我只找到了旧的/令人困惑的教程

【问题讨论】:

    标签: google-app-engine ubuntu google-app-engine-php


    【解决方案1】:

    GAE PHP 扩展似乎是一个很新的东西。不记得在 Ubuntu 14.04 的 SDK 上使用它。

    您需要从源代码构建 PHP 和该扩展。您应该从他们的源代码库 (http://php.net/git.php) 中获取最新的 PHP5.5 分支并构建它。该链接页面包含有关构建 PHP 的说明,但过程类似于以下内容:

    $ git clone <php-src> 
    $ cd ./php-src/ 
    $ git checkout PHP-5.5
    $ ./buildconf
    $ ./configure --prefix="/opt/php55"
    $ sudo make && sudo make install
    

    记得选择你想用 PHP5.5 编译的模块和包,以便在 SDK 中使用。我认为谷歌有一个他们在 GAE PHP 和 SDK PHP 中使用的模块和扩展的官方列表。 prefix 参数告诉编译器在哪里安装生成的应用程序。

    然后你需要获取 PHP 扩展的源代码并构建它

    $ git clone https://github.com/GoogleCloudPlatform/appengine-php-extension
    $ cd appengine-php-extension
    $ phpize # remember to use the phpize from the just built PHP5.5 binaries
    $ ./configure
    $ sudo make && sudo make install
    

    (该 Git 存储库包含详细的构建说明,因此您应该在构建时参考它们。)

    为您刚刚使用 PHP 配置文件构建的 PHP5.5 启用生成的 .so。

    之后,您需要安装 PHP SDK 并将其配置为使用新构建的 PHP 二进制文件

    $ dev_appserver.py <...> --php_executable_path=/opt/php55/bin/php-cgi
    

    如果构建的 PHP 二进制文件与您使用的 SDK 版本不兼容,SDK 会通知您。我记得在没有任何警告的情况下从源代码编译 PHP 大约 5 次。

    但本质上,他们是在告诉您从源代码编译 PHP,然后从源代码编译他们的扩展,然后将构建的 PHP+扩展与下载的 SDK 一起使用。这些说明来自我的头脑,因此您可能需要调整命令和过程。

    【讨论】:

    • 非常感谢!!你描述的过程是有道理的。我会尽快尝试并接受答案。我不知道如何在配置文件中为 php 启用 .so ......希望通过谷歌搜索解决这个问题
    • 附带说明,我认为谷歌应该真正简化这个过程。我发现其他服务(通过托管广告推送部署)更易于使用/设置,因为它们只需要您拥有 git 和 Bitbucket/Github 帐户。
    • 是的,GAE 需要大量的前期配置才能使其在 Linux 上正常工作(这很有趣,因为 Google 以要求员工使用 Linux 而闻名,据我所知)。但是一旦完成,在 Google 决定引入更大的变化之前应该没问题。
    • 我在第一部分遇到了麻烦:构建和安装 PHP 解释器 (github.com/GoogleCloudPlatform/appengine-php)。当我执行“make”命令时,我总是收到以下错误:/home/mark/Experiments/appengine-php/php-src/ext/libxml/libxml.c:39:27: fatal error: libxml/parser.h : 没有这样的文件或目录编译终止。 Makefile:500: 目标“ext/libxml/libxml.lo”的配方失败 make: *** [ext/libxml/libxml.lo] 错误 1
    • 附言。我已经执行了 sudo apt-get install libxml2-dev 但没有工作
    【解决方案2】:

    使用 Docker 可以简化这个过程,这里有一个你可以使用的镜像:https://hub.docker.com/r/mhariri/docker-google-appengine-php/

    要运行您的应用程序,您只需要安装 docker,然后在您的应用程序目录中运行以下命令:

    docker run -it -v $(pwd):/app --rm --net=host mhariri/docker-google-appengine-php
    

    【讨论】:

    • 你的拉取请求解决了这个问题吗?
    • 它做到了!在读取 php.ini 并正确配置为在 App Engine 中进行 libxml 调用时,该模块未安装在 docker 容器上。有一长串 App Engine 支持但未安装的模块。最好构建一个小测试来检查每个模块是否已安装并正常工作......例如我很快需要的 MongoDB。
    猜你喜欢
    • 2018-02-10
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多