2016-02-12 102 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,我很快就會需要它。 –

相關問題