2016-02-12 96 views
2

谷歌官方文档可以在这里找到:
https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_PHPGoogle App Engine PHP SDK - 如何在Ubuntu(15.10)上安装?

但它不提供有关下一步骤足够的信息:
“4 - 编译并安装PHP解释器和App Engine的PHP扩展指定路径。到运行开发服务器时的php-cgi和gae_runtime_module.so。“

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

是否有人可以提供有关步骤4的明确说明?我需要做什么来安装PHP解释器和App Engine php扩展?

P.s.我已经搜索谷歌,但我只发现旧的/令人困惑的教程

回答

4

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被使用的模块和包。我认为Google有一个正式的模块和扩展名列表,它们在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仓库包含了详细的建造指令,所以你应该建立时可能参考这些。)

启用导致.so对于您刚刚使用PHP配置文件构建的PHP5.5。

之后,你需要安装PHP SDK,并将其配置为使用新建成的PHP二进制

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

的SDK将让你知道,如果PHP编译的二进制文件与您使用SDK版本不兼容。我记得大约5次编译PHP源代码之前,它没有任何警告。

但实际上他们告诉你从源代码编译PHP,然后从源代码编译它们的扩展,然后使用内置的PHP +扩展与下载的SDK。这些说明来自我的头顶,因此您可能需要调整命令和程序。

+0

非常感谢您!你描述的过程是合理的。我会尽快尝试并接受答案。我不知道如何在配置文件中启用.so for PHP ...希望通过谷歌搜索来解决这个问题 –

+1

作为一个方面说明,我认为谷歌应该真正简化这个过程。我发现其他服务(托管广告推送部署)更容易使用/设置,因为他们只需要您拥有git和Bitbucket/Github帐户。 –

+0

是的,GAE需要相当多的前期配置才能在Linux上正常工作(考虑到谷歌以要求员工使用我听说的Linux而闻名,这很有趣)。但一旦完成,它应该没问题,直到谷歌决定引入更大的变化。 – ojrask

1

可以通过使用泊坞窗被简化的过程,这里是一个图片,你可以使用:https://hub.docker.com/r/mhariri/docker-google-appengine-php/

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

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

您的拉取请求是否解决了此问题? – peak

+0

它做到了!当php.ini正在被读取,并且它被正确配置为在App Engine中执行libxml调用时,该模块未安装在docker容器中。 App Engine支持的模块列表尚未安装。建立一个小测试来检查每个模块是否已安装并正在工作,比如MongoDB,我很快就会需要它。 –