在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
答案 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)"并且您会看到其他人遇到同样的问题。不确定是否找到了用户端解决方案。尝试更改版本号并重新部署。销毁控制台中的所有打开实例。