Ошибка Внутреннего Сервера CodeIgniter 500

Я загрузил PHP-скрипт, написанный с помощью CodeIgniter. когда я запускаю его из localhost, при переходе в папку admin он снова показывает localhost. Также при запуске с моего веб-узла он показывает ошибку внутреннего сервера 500.

Я запускаю сайт из http://localhost/myproj это работает. Затем, когда я пытаюсь перейти на страницу администратора, которая находится в http://localhost/myproj/administrator, это дает внутреннюю ошибку сервера 500.

Я читал здесь, что это может быть связано с неправильным кодом в.файл htaccess. Это мой подарок .htaccess файл

RewriteEngine On
RewriteBase /

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

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

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

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

пожалуйста, помогите мне. Я знаю, что это может быть очень маленькая проблема, но я не могу найти ошибку.

9 ответов


проблема с 500 ошибками (с CodeIgniter), с различными настройками apache, он отображает 500 ошибок, когда есть ошибка с конфигурацией PHP.

вот как он может вызвать ошибку 500 с помощью CodeIgniter:

  1. ошибка в скрипте (неправильные конфигурации PHP, отсутствующие пакеты и т. д...)
  2. PHP "фатальные ошибки"

пожалуйста, проверьте свои журналы ошибок apache, там должна быть какая-то интересная информация.


на случай, если кто-то еще наткнется на эту проблему, я унаследовал более старый проект CodeIgniter и имел много проблем с его установкой.

Я потратил кучу времени, пытаясь создать локальную установку, попробовал все. В конце концов решение оказалось простым.

проблема в том, что более старые версии CodeIgniter (например, 1.7 и ниже) не работают с PHP 5.3. Решение-перейти на PHP 5.2 или что-то постарше.


вы пытаетесь удалить индекс.php с URL вашего сайта, правильно?

попробуйте установить свой $config['uri_protocol'] до REQUEST_URI вместо AUTO.


удалить комментарий в httpd.conf (файл конфигурации apache):

LoadModule rewrite_module modules/mod_rewrite.so 

попробуйте это для вашего .файл htaccess:

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

всякий раз, когда я запускаю CodeIgniter в подкаталоге, я устанавливаю RewriteBase к нему. Попробуйте установить его как /myproj/ вместо /.


это, вероятно, больше не имеет отношения к этой теме, но, надеюсь, полезно для кого-то. У меня было 500 ошибок за последний час, так как у меня был контроллер, возвращающий массив, не поддерживаемый версией php, запущенной на моем (дерьмовом) сервере. Кажется тривиальным, но имеет признаки ошибки codeigniter.

мне пришлось использовать:

class emck_model extends CI_Model {

    public function getTiles(){

        return array(...);

    }

} 

вместо

class emck_model extends CI_Model {

    public function getTiles(){

        return [...];

    }

}

Ура


Я знаю, что опоздал, но это поможет кому-то.

проверьте, является ли rewrite engine включено.

если нет, включите механизм перезаписи и перезапустите сервер.

sudo a2enmod rewrite
sudo service apache2 restart

Если Wampserver версии 2.5 затем изменить конфигурацию apache как

httpd.conf (файл конфигурации apache): От

#LoadModule rewrite_module modules/mod_rewrite.so** 

чтобы удалите #

LoadModule rewrite_module modules/mod_rewrite.so** 

это работает нормально для меня