【问题标题】:500 Internal Server Error in CodeIgniter applicationCodeIgniter 应用程序中的 500 内部服务器错误
【发布时间】:2015-08-05 14:21:28
【问题描述】:

我在 CodeIgniter Web 应用程序上做了一些本地工作。它在本地运行良好,但在上传到实时服务器时。

我得到空白页,当通过 Firebug 检查时,我在 Firebug 的控制台中收到内部服务器错误消息。

我正在寻找两天后的解决方案,并且有很多内部服务器错误的答案,例如 .htaccess 可能配置错误或 mod_rewrite 可能未启用等。

这是我到目前为止测试过的。

1. mod_rewrite 在 cpanel linux 共享主机服务器上运行良好。还通过创建一个简单的 .htaccess 文件和 test2.php 文件对其进行了测试。

2. .htaccess 对我来说似乎很好,我尝试了许多其他方法但没有用,但是这个 .htaccess 在本地 wampp 和 xampp 服务器上对我有用。

    DirectoryIndex index.php <IfModule mod_rewrite.c>

    Options +FollowSymLinks -Indexes    RewriteEngine on

    #RewriteBase /projects/HouseRentSystem  RewriteBase /demos/hrs
     # Hide the application and system directories by redirecting the request to index.php
     RewriteRule ^(application|system|\.svn) index.php?/$1 [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule>

 <IfModule !mod_rewrite.c>
     ErrorDocument 404 index.php </IfModule>

但为了确保,我还尝试删除 .htaccess 并通过使用 url 中的 index.php 直接访问控制器。但那里没有成功,所以它不是 .htaccess 问题,即使使用 index.php 我也会收到内部服务器错误。

3. 测试基本 URL 或数据库设置是否可能不正确。但他们没事。

我很困惑要检查什么?为什么我不能让这个应用程序在我的共享主机上运行?

这是应用程序链接出错。这是一个空白页。控制台显示错误。

检查cPanel中的错误日志,看看是否有任何错误,但它是空的。

更新:

感谢@vinod Tigadi

终于发现了一些问题。

cpanel 的错误日志为空,但需要查看我的应用程序/项目根文件夹中的错误日志。

另外我在配置中定义的前缀是

$config['subclass_prefix'] = 'MY_';

而我的主控制器文件名为 My_Controller,y 很小。 由于空白页且没有错误且不知道错误日志文件的位置,我无法知道此更改。

【问题讨论】:

  • 不要试图猜测错误是什么。检查错误日志。它应该告诉你发生了什么。
  • 我检查了cpanel中的错误日志,它是空的:(
  • 是否启用了 csrf_protection?
  • @RejoanulAlam 在我的配置文件中没有设置为FALSE..
  • 如果您收到 500 错误,则应该转到某个错误日志文件。我猜你只是看错了。我已经很多年没有使用 cpanel 了,但我似乎记得当发生 php 错误时,它会将一个名为 error_log 的文件添加到您的 Web 根目录中的目录中。检查一下。如果没有,请参阅stackoverflow.com/questions/8955411/…。如果您仍然无法获得它,请联系您的房东,让他们为您指明正确的方向。

标签: php apache .htaccess codeigniter mod-rewrite


【解决方案1】:

我检查了您的其他应用程序,发现除了“hrs”之外,大多数应用程序都在工作。您应该采用循序渐进的方法。

  1. 首先,重命名codeigniter自带的index.php,创建自己的index.php或index.html 并尝试访问相同的内容。看看有没有效果
  2. 如果仍然无法正常工作,请删除 .htaccess 文件并尝试访问那些新创建的 index 文件并检查
  3. 如果您能够使用 .htaccess 文件访问 index 文件,那么 CodeIgniter 应该有一些问题。您应该开始为其启用调试模式
  4. 如果您发现 CodeIgniter 存在该问题,则再次恢复 CodeIgniter 的 index.php 并修改您的 config.php 为 $config['log_threshold'] = 4。然后在index.php中添加如下代码

    error_reporting(E_ALL); 
    ini_set('display_errors', 1);
    

    然后尝试应用程序。

希望借此,您应该能够获得错误详细信息。让我们知道这些信息,以便我们进一步为您提供帮助。

【讨论】:

  • 我已经尝试过以确保我的 .htaccess 正常工作。我将 echo 放在我的 index.php 文件中,它完美地回显了。所以问题出在 codeigniter 上。但我不确定如何找到问题的实际所在。我对 E_ALL 做了错误报告,但仍然没有用。我在控制台中收到内部服务器错误。我检查了数据库路径。但一切似乎都很好,因为它适用于本地 wamp/xampp 但不适用于在线共享托管服务器?
  • 您是否启用了 ERROR_REPORTING 并尝试过?不仅是错误报告,甚至是 'ini_set(display_errors)。如果没有,请尝试一下并告诉我们。还有 Config - log_threshold 到 4
  • 我刚刚将 log_threshold 从 0 更改为 4,但在控制台中仍然出现相同的内部服务器错误。
  • 太棒了,Loader Class Initialized 显示在本地日志中,但没有显示在实时服务器上,并且没有任何负载.. 看起来 Loader Class 有问题.. 但是什么是 loader 类??
  • 太棒了!!你开始看到的东西。您使用的是哪个版本的 CI? Loader Class 用于加载 CI 的所有不同元素 - 参考 ellislab.com/codeigniter/user-guide/libraries/loader.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 2018-02-22
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多