Ошибка Внутреннего Сервера 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:
- ошибка в скрипте (неправильные конфигурации PHP, отсутствующие пакеты и т. д...)
- 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**
это работает нормально для меня