【问题标题】:404 Page Not Found - CodeIgniter related404 Page Not Found - CodeIgniter 相关
【发布时间】:2011-11-09 03:16:10
【问题描述】:

我在一个项目中使用 Codeigniter 框架 - 我有一个工具可以读取数组并使用 SwiftMailer 电子邮件框架发送超过 10,000 封电子邮件。

我曾经提交的一个表单应该发送每个单独的电子邮件,但是它并没有发送所有这些,因为在一段时间后我收到以下错误:

404 Page Not Found 找不到您请求的页面。 - 500.shtml

页面本身实际上并没有重定向到其他任何地方,所以无法理解为什么会这样说 - 有人有什么想法吗?

谢谢

【问题讨论】:

    标签: php codeigniter swiftmailer


    【解决方案1】:

    看起来您实际上以 500 错误告终,但是当 CI 尝试显示 500 错误 (500.shtml) 的自定义错误页面时,它找不到它,因此会引发 404 .检查您的日志以了解 500 错误的原因。

    【讨论】:

    • 如何删除这个自定义错误页面并让它加载默认错误页面?
    【解决方案2】:

    这将是一个自定义错误页面,可能设置在网络服务器本身上。如果是 Apache 服务器,请检查 httpd 配置并删除任何您不想要的 ErrorDocument 指令,以便查看实际错误。

    正如汤姆所说,如果这种情况发生在明显延迟之后,您很可能会超时。可以使用set_time_limit() 或php.ini 设置max_execution_time 从PHP 端增加超时长度。但是,一般来说,如果您有一个长时间运行的任务,最好在后台进程中运行它,而不是尝试将其硬塞到 HTTP 请求中。

    【讨论】:

    • 大家好 - max_execution_time 设置为 360,所以这真的很奇怪。我会继续调查并很快回来。
    • 发生这种情况很奇怪,尽管有时实际的整个持续时间可能只有 30-40 秒。所以我对这一切有点困惑。
    • 嗯。 30 秒是默认的 PHP 超时,所以我想知道这是否坚持?在任何情况下,当您删除隐藏它的 500 ErrorDocument 时,您应该能够从错误消息中获得更多信息。
    • 如何检查 ErrorDocument 指令? (我不太喜欢 Apache :)
    • 正确,因此您没有在本地测试服务器上设置错误重定向。 120 秒似乎是 WAMP 下的默认超时。同样,这应该可以通过php.ini 中的max_execution_time 进行更改。但是我建议 120 秒对于网页响应来说太慢了,所以邮件任务应该在后台进程中完成。
    猜你喜欢
    • 2020-12-05
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多