CodeIgniter 500内部服务器错误

时间:2011-09-11 11:22:16

标签: php .htaccess codeigniter internal-server-error

我下载了使用CodeIgniter编写的PHP脚本。当我从localhost运行它时,在转到admin文件夹时,它再次显示localhost。此外,当从我的Web主机运行时,它显示500内部服务器错误。

我从http://localhost/myproj开始运行该网站。然后,当我尝试转到位于http://localhost/myproj/administrator的管理页面时,它会产生500内部服务器错误。

我在这里读到这可能是由于.htaccess文件中的代码错误造成的。这是我现在的.htaccess文件

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php

请帮帮我。我知道这可能是一个非常小的问题,但我无法找到错误。

11 个答案:

答案 0 :(得分:19)

500错误(使用CodeIgniter)的问题,使用不同的apache设置,当PHP配置出错时显示500错误。

以下是CodeIgniter触发500错误的方法:

  1. 脚本出错(PHP配置错误,缺少软件包等......)
  2. PHP“致命错误”
  3. 请检查您的apache错误日志,那里应该有一些有趣的信息。

答案 1 :(得分:4)

为了防止其他人遇到这个问题,我继承了一个较旧的CodeIgniter项目,并且在安装它时遇到了很多麻烦。

我浪费了大量时间尝试创建网站的本地安装并尝试了一切。最后,解决方案很简单。

问题是较旧的CodeIgniter版本(如1.7及以下版本)不适用于PHP 5.3。解决方案是切换到PHP 5.2或更旧版本。

答案 2 :(得分:2)

您是否尝试从网站网址中删除index.php,对吗?

尝试将$config['uri_protocol']设置为REQUEST_URI而不是AUTO

答案 3 :(得分:1)

删除httpd.conf中的注释(apache配置文件):

LoadModule rewrite_module modules/mod_rewrite.so 

答案 4 :(得分:1)

尝试使用.htaccess文件:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >

答案 5 :(得分:0)

每当我在子目录中运行CodeIgniter时,我都会将RewriteBase设置为它。尝试将其设置为/myproj/而不是/

答案 6 :(得分:0)

这可能与此主题无关​​,但希望对某人有帮助。 我在过去一小时内遇到了500个错误,因为我有一个控制器返回一个不支持在我的(糟糕的)服务器上运行的php版本的数组。看似微不足道,但有一个codeigniter错误的标志。

我不得不使用:

class emck_model extends CI_Model {

    public function getTiles(){

        return array(...);

    }

} 

而不是

class emck_model extends CI_Model {

    public function getTiles(){

        return [...];

    }

}

干杯

答案 7 :(得分:0)

我知道我迟到了,但这对某人有帮助。

检查重写引擎是否为enabled

如果没有,请启用重写引擎并重新启动服务器。

sudo a2enmod rewrite
sudo service apache2 restart

答案 8 :(得分:0)

如果wampserver版本2.5然后将apache配置更改为

httpd.conf(apache配置文件):

#LoadModule rewrite_module modules/mod_rewrite.so** 

要删除#

LoadModule rewrite_module modules/mod_rewrite.so** 

这对我来说很好

答案 9 :(得分:0)

这对我来说很好

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >

答案 10 :(得分:0)

确保您的根index.php文件具有正确的权限,其权限必须为07550644