2017-11-11 99 views
0

我的項目是一個基本的PHP網站,只有一點點的PHP包括頁眉/頁腳。App Engine PHP - dev_appserver工作,但appspot不

項目結構

  1. app.yaml駐留在根與/www目錄根也
  2. /www dir是所有PHP文件和目錄/www/assets
  3. /www/assets包含所有靜態文件。

配置文件

app.yaml文件被構造爲這樣:

runtime: php55 
api_version: 1 

handlers: 
- url:/
    script: www/index.php 

- url: /about.php 
    script: www/about.php 

- url: /(.*) 
    static_files: www/\1 
    upload: www/(.*) 

關注,這是不太正確的。

我也需要任何其他的配置文件,如php.ini?或app.yaml將足夠?

問題

當我運行該項目在本地使用dev_appserver.py .它可以完美運行。

然而,當我使用gcloud app deploy部署項目中,我得到:

HTTP錯誤404,該頁面無法找到」。

回答

0

您可能不希望匹配static_files中的www本身,因爲默認情況下表示該位置的.php文件不會被視爲應用程序文件。

您應該配置只是/www/assetsstatic_files(最後一個,到static_files URL模式不匹配),並從谷歌example保持推薦.php處理程序:

- url:/
    script: www/index.php 

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

- url: /(.*) 
    static_files: www/assets/\1 
    upload: www/assets/(.*) 

或者你可能能只需使用application_readable選項(Handlers element表中的第一行):

application_readable

可選。布爾。默認情況下,在靜態文件處理程序 中聲明的文件將作爲靜態數據上傳,並僅供最終用戶使用。他們 不能被應用程序讀取。如果此字段設置爲true,則 文件也將作爲代碼數據上傳,以便您的應用程序可以讀取它們的 。這兩種上傳都是針對您的代碼和靜態數據收取的 存儲resource quotas

像這樣:

- url:/
    script: www/index.php 

- url: /about.php 
    script: www/about.php 

- url: /(.*) 
    static_files: www/\1 
    upload: www/(.*) 
    application_readable: true 

我個人認爲第一次的做法清潔。

相關問題