2013-05-21 28 views
0

我有一個index.php如何引用嵌套需要在app.yaml中爲App Engine PHP

require 'myfolder/folder/lib1.php'; 

所以在app.yaml我引用:

- url: /myfolder/folder/lib1.php 
    script: myfolder/folder/lib1.php 

但這lib1.php確實另一require 'lib2.php';在同一文件夾級別/myfolder/folder/。所以它會顯示錯誤500,因爲它找不到lib2.php。 如何在app.yaml中正確引用它們?

+0

爲什麼你認爲你需要在'app.yaml'文件中列出需要的庫文件? – hakre

回答

0

錯誤500被拋出基本上是因爲Google App Engine for php不支持Facebook php SDK中使用的CURL擴展。沒有任何與app.yaml相關的內容。 我分叉了官方fb sdk git,現在我正在修補一個解決方案。

+1

已經完成 - 從這裏開始。 https://github.com/camfitz/facebook-php-sdk –

+0

我的解決方案已經拉到官方SDK https://github.com/facebook/facebook-php-sdk/pull/77 – Veilkrand

+0

真棒 - 你能離線ping我? –

4

您的app.yaml文件用於將來自傳入URL的請求路由到您想用來處理請求的初始腳本。

您不需要爲每個* .php文件添加路由,您希望從一個腳本包含到另一個腳本。

例如,查看運行wordpress的app.yaml示例。它只包含客戶端將訪問的URL,但不包含wordpress使用的所有php腳本。

+0

好吧,我在這裏有點無知... 我想包括Facebook API,但它始終顯示錯誤500。 – Veilkrand

+0

@Veilkrand:獨立於'app.yaml'。而應考慮使用* composer */* packagist *來進行PHP包管理,這是一種簡單的方法。 http://getcomposer.org - https://packagist.org/search/?q=facebook – hakre

1

您面臨的問題很可能與Google App Engine無關。在Google App Engine上,standard rules of PHP file-inclusion仍然適用。這裏唯一的區別是這些文件是隻讀的(但這不應該在你的情況下造成任何問題)。

因此,如果lib1.php需要lib2.php您需要在需要另一個需求之後。這是標準的PHP行爲:

require 'myfolder/folder/lib2.php'; 
require 'myfolder/folder/lib1.php'; 

要了解究竟是什麼造成了谷歌應用程序引擎,consider downloading the log and look into it 500錯誤。這也是獨立於Google App Engine的,因爲這是對500個錯誤的任何Web服務器提供的最佳建議。

相關問題