Google App Engine PHP CodeIgniter"错误:服务器错误#34; (500服务器错误)记录为错误代码204

时间:2014-05-07 21:36:56

标签: php codeigniter google-app-engine

在Google App Engine上运行PHP(CodeIgniter),大约三分之一的时间发生页面加载以下错误...

500服务器错误 错误:服务器错误 服务器遇到错误,无法完成您的请求。 请在30秒后再试一次。

..并在应用引擎日志中:

处理此请求的进程遇到问题,导致它退出。这可能会导致新进程用于您的应用程序的下一个请求。 (错误代码204)

大约2次中有3次正确刷新页面加载。配置设置:

的php.ini

 

    google_app_engine.enable_functions = "php_sapi_name, gc_enabled"
    display_errors = on
    allow_url_fopen = on
    apc.cache_by_default = 0
    apc.enabled = 0

的app.yaml



    application: APP_NAME_ABC123
    version: 1
    runtime: php
    api_version: 1

    handlers:
    - url: /img
      static_dir: img

    - url: /app
      static_dir: app

    - url: /
      script: index.php

    - url: /.*
      script: index.php

3 个答案:

答案 0 :(得分:1)

我在app引擎上测试了CodeIgniter v2.1和v3,并且也遇到了这个错误。

使用$autoload['libraries'] = array('database');

时会发生这种情况

然后在几个随机页面刷新后弹出这个错误。

更改database.php中的以下内容后:

'pconnect' => TRUE,

'pconnect' => FALSE,

这个错误在我的申请中消失了。

现在版本2.1和3都适用于我。

答案 1 :(得分:0)

如果您将App Engine实例与Cloud SQL一起使用,请记住App Engine cannot have more than 12 concurrent connections to a Cloud SQL instance。因此,您需要在处理请求之前关闭任何已建立的连接。如果不这样做会导致泄漏,最终新连接可能会失败。这可能是你得到204错误的原因之一。我建议不要通过将持久性属性设置为false来使用持久连接。 (As for example if you use PHP Data Object to connect your SQL you can set PDO::ATTR_PERSISTENT => FALSE

如果您在database.php文件的DB Settings部分中使用CodeIgniter,则可以更改行$ db ['production'] ['pconnect'] = TRUE;到$ db ['production'] ['pconnect'] = FALSE;并看看它是否有效。

答案 2 :(得分:-1)

几年来,这一直是App Engine上令人讨厌,间歇性的问题。 Google"应用引擎(错误代码204)"并且您会看到其他人遇到同样的问题。不确定是否找到了用户端解决方案。尝试更改版本号并重新部署。销毁控制台中的所有打开实例。