【问题标题】:How to install App Engine for PHP on Fedora 24如何在 Fedora 24 上安装 App Engine for PHP
【发布时间】:2016-09-06 22:41:38
【问题描述】:

尝试关注App Engine Standard's guide,但App Engine PHP Development Plugin installation instructions 仅显示如何编译它,而 protobuf 标头似乎已经随 Fedora 的官方 repos 提供。

有没有人用 Fedora 的方式安装 App Engine PHP 环境?

【问题讨论】:

    标签: php google-app-engine fedora


    【解决方案1】:

    Tl;博士;你的选择是可怕的。您必须在 chroot 中构建或制作自己的容器。

    这里有一个带有一些主要错误的预构建 docker: https://stackoverflow.com/a/38415948/370238

    我可能会尝试在 yum strap 中构建它,看看效果如何。


    你不能。您不仅需要一堆相互冲突的依赖项,而且应用程序引擎 php 扩展是使用静态路径制作的,这意味着您必须对 php 和 bison 进行核对才能使其工作。这就是没有应用引擎支持的其他 php 扩展。正确的做法是在 chroot 中完成所有操作……但现在我们正在描述 docker,并且已经有人在这里为此制作了 docker 镜像:https://stackoverflow.com/a/38415948/370238


    这些说明是死胡同:

    对于初学者来说,这并不容易。您需要从源代码构建 php,然后从源代码构建 PHP 扩展。幸运的是,官方 repo 中的 protobuf-devel 运行良好。

    Ubuntu 的人也有类似的问题。 Google App Engine PHP SDK - How to install on Ubuntu (15.10)?

    Battle #1 Bison 2.6.5

    免责声明:这些说明对 Fedora 24 进行了不兼容的更改。您可能遇到升级错误或不兼容问题。如果您有更好的建议,例如 chroot 方法,请发表评论。

    您需要 bison 2.6.5,因为 fedora 附带 3,它不能用于构建 PHP-5.5。只需阅读来自http://ftp.gnu.org/gnu/bison/的代码的安装文件

    战斗#2 PHP 5.5

    Fedora 24 附带 PHP 5.6,此时它与 appengine-php-extension 完全不兼容。这需要一段时间。

    git克隆https://github.com/php/php-src.git

    Battle #3 App Engine PHP 运行时扩展

    1. 使用sudo dnf install protobuf-devel 安装 Google 的 Protocol Buffer 标头,因为我们将使用内置的部分 protobuf 编译 PHP 运行时扩展。
    2. 克隆 App Engine PHP Extension 存储库,我建议到 /opt。 git clone git@github.com:GoogleCloudPlatform/appengine-php-extension.git
    3. Cd 进入它并为 remote_api.protourlfetch_service.proto 生成 C++ 源文件和头文件

    这两个命令应该可以,并且没有输出。

     protoc --cpp_out=. remote_api.proto
     protoc --cpp_out=. urlfetch_service.proto
    
    1. 你仍然需要谷歌使用的 C++ 构建工具,确保你有它们 sudo dnf install autoconf automake libtool curl make gcc-c++ unzip libxml2-devel
    2. protobuf 的 lib 路径是 /usr/lib64,包含路径是 /usr/include。您可以通过运行sudo dnf repoquery -l protobuf-devel 找到它

    请注意,在撰写本文时,App Engine 使用的是 PHP 5.5.34,而 Fedora 24 使用的是 5.6.23...所以如果您打算在 App Engine 上启动,请不要使用数组常量。

    故事结束:要完成这项工作,您需要手动将 php55 的所有方面覆盖到 fedora 24 中,并编译应用引擎支持的每个扩展。通过这样做,您将完全削弱依赖于 php.ini 的 repo 包。不要这样做。

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2016-12-31
      • 2016-05-23
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      相关资源
      最近更新 更多