使用session-> set_flashdata会导致502错误的网关错误

时间:2013-04-25 06:44:17

标签: php codeigniter session internal-server-error

我使用

时遇到502错误的网关错误
$this->session->set_flashdata('message', 'Profile updated.');

我在nginx上使用CodeIgniter。代码在localloast(WAMP)上运行良好。如果我注释掉行,应用程序运行正常。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

在application / config / config.php中

将“use_database”设置为TRUE

答案 1 :(得分:1)

我弄清楚出了什么问题。首先,一位拥有更多服务器知识的同事向我解释说,我的设置可能是nginx接收到所有请求,然后直接提供静态文件。对于非静态请求,它将工作传递给apache,并充当中介。因此,当apache尝试向nginx发送数据时(或者当nginx尝试向apache发送信息时)可能出现了问题。

由于我之前从未使用过nginx,我也没想过检查nginx日志文件。并且我可以使用错误:

[错误] 27453#0:* 9223上游在从上游读取响应头时发送了太大的头,客户端:

我最终应用了这个其他堆栈溢出解决方案的第一位:

将此添加到通常位于
的nginx.conf文件中 代码:
/etc/nginx/nginx.conf:

proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;

顺便说一下,它应该添加到文件的http部分。这就是解决方案中缺少的东西。

参考:
https://forum.codeigniter.com/archive/index.php?thread-59675.html

答案 2 :(得分:0)

来自@sasho的回答

$ config [' sess_use_database'] = TRUE;

通过更改为数据库,您可以将会话数据移动到数据库表中,以避免与权限相关的问题。在这里试试并回复。

https://www.codeigniter.com/user_guide/libraries/sessions.html

您可以从官方文档中查看数据库驱动程序部分,以避免出现这类错误。