2014-01-13 68 views
1

我一直在使用Google App Engine PHP SDK在本地處理PHP網站,並且在我的計算機上一切正常。然後,我部署該網站並說它成功上傳,但是,當我查看託管網站時,該網頁是空白的。當我檢查應用程序儀表板中的日誌時,我收到一些警告和錯誤:Google App Engine PHP包含部署網站上的錯誤

PHP Warning: include(): apc failed to locate includes/functions.php - bailing in /base/data/home/apps/s~raven3mil/1.373024475561310665/login.php on line 2 

PHP Warning: include(includes/functions.php): failed to open stream: No such file or directory in /base/data/home/apps/s~raven3mil/1.373024475561310665/login.php on line 2 

PHP Warning: include(): Failed opening 'includes/functions.php' for inclusion (include_path='.;/base/data/home/apps/s~raven3mil/1.373024475561310665/;/base/data/home/runtimes/php/sdk') in /base/data/home/apps/s~raven3mil/1.373024475561310665/login.php on line 2 

PHP Warning: require_once(includes/session.php): failed to open stream: No such file or directory in /base/data/home/apps/s~raven3mil/1.373024475561310665/login.php on line 3 

PHP Fatal error: require_once(): Failed opening required 'includes/session.php' (include_path='.;/base/data/home/apps/s~raven3mil/1.373024475561310665/;/base/data/home/runtimes/php/sdk') in /base/data/home/apps/s~raven3mil/1.373024475561310665/login.php on line 3 

This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application. 

有沒有人有任何關於此事的見解?我不知道該從哪裏出發......謝謝!

UPDATE:

的app.yaml

application: raven3mil 
version: 1 
runtime: php 
api_version: 1 
threadsafe: yes 

handlers: 
- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

- url: /includes 
    static_dir: includes 

- url: /fullcalendar-1.6.2/fullcalendar 
    static_dir: fullcalendar-1.6.2/fullcalendar 

- url: /ckeditor 
    static_dir: ckeditor 

    # Serve php scripts. 
- url: /(.+\.php) 
    script: \1 

- url: /.* 
    script: login.php 

error_handlers: 
- file: errors/404.php 

名稱相匹配,一切都運行良好的本地應用程序。

+0

你的app.yaml文件是什麼樣的? – IanGSY

+0

和什麼是app_id? –

+0

從上面的日誌輸出它看起來像他的應用程序ID是raven3mil – IanGSY

回答

8

通過靜態文件處理程序默認的文件不能被你的應用程序,除非你指定application_readable標誌作爲的app.yaml處理程序的一部分被讀取,所以你應該改變

- url: /includes 
    static_dir: includes 

- url: /includes 
    static_dir: includes 
    application_readable: true 

當然,如果你只有在這個文件夾中有php腳本,你實際上並不想從你的應用程序提供服務,但只想在運行時部署和訪問,那麼你應該一起刪除這個處理程序。您不需要在app.yaml文件中輸入要與您的應用程序一起上傳的文件的條目,只有當您希望隨後響應傳入的請求才能提供這些條目。

+0

此文件夾包含PHP腳本,只包含在其他頁面;他們不會被單獨訪問。 – Guy

+0

然後刪除處理程序。 –

+0

網站最初設置的方式是在網頁中包含任何內容。所以我的PHP,JS和CSS文件都在那裏。如果我刪除處理程序,其他文件不包括在內......我接受它,我應該將它們分開,對吧? – Guy

2

該錯誤也可能是由於某些操作系統(例如MAMP堆棧)不區分大小寫,但Jetty(GAE構建於其上)的事實造成的。因此,如果您正在Apache堆棧上開發並遷移到GAE,則需要檢查所有包含路徑是否區分大小寫。

+0

+1用於檢查案例。我們只是遇到了這個問題,而且很容易被忽視,特別是如果一切都在本地工作的話。 – Matt

+0

在我的情況下谷歌改變OAuth2.php Oauth2.php很難找到 – Tino