Error del servidor interno CodeIgniter 500
-
28-10-2019 - |
Pregunta
Descargué un script PHP escrito usando CodeIgniter. Cuando lo ejecuto desde Localhost, al ir a la carpeta de administración, muestra a Localhost nuevamente. También cuando se ejecuta desde mi host web, muestra un error de servidor interno 500.
Ejecuto el sitio desde http: // localhost/myproj Funciona. Luego, cuando intento ir a la página de administración que está en http: // localhost/myproj/administrador, ofrece un error de servidor interno 500.
Leí aquí que esto podría deberse a un código incorrecto en el archivo .htaccess. Este es mi presente .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
Por favor, ayúdame. Sé que podría ser un problema muy pequeño, pero no puedo encontrar el error.
Solución
El problema con 500 errores (con CodeIgniter), con diferentes configuraciones de Apache, muestra un error de 500 cuando hay un error con la configuración de PHP.
Así es como puede activar el error 500 con CodeIgniter:
- Error en script (configuraciones erróneas de PHP, paquetes faltantes, etc.)
- PHP "Errores fatales"
Verifique sus registros de errores de Apache, debe haber información interesante allí.
Otros consejos
En caso de que alguien más se tope con este problema, heredé un proyecto CodeInigniter anterior y tuve muchos problemas para instalarlo.
Perdí un montón de tiempo tratando de crear una instalación local del sitio y probé todo. Al final, la solución fue simple.
El problema es que las versiones más antiguas de CodeIgniter (como 1.7 y menos), no funcionen con PHP 5.3. La solución es cambiar a PHP 5.2 o algo más antiguo.
Estás tratando de eliminar index.php de la URL de su sitio, ¿correcto?
Intenta configurar tu $config['uri_protocol']
a REQUEST_URI
en vez de AUTO
.
Eliminar el comentario en httpd.conf (archivo de configuración de Apache):
LoadModule rewrite_module modules/mod_rewrite.so
Pruebe esto en su archivo .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
Cada vez que ejecuto Codeigniter en un subdirectorio, configuro el RewriteBase
lo. Intenta configurarlo como /myproj/
en vez de /
.
Probablemente esto ya no sea relevante para este hilo, pero con suerte es útil para alguien. He tenido 500 errores durante la última hora, ya que tuve un controlador que devolviera una matriz no compatible con la versión PHP ejecutada en mi servidor (horrible). Parece trivial pero tuvo las características de un error CodeInigniter.
Tuve que usar:
class emck_model extends CI_Model {
public function getTiles(){
return array(...);
}
}
En vez de
class emck_model extends CI_Model {
public function getTiles(){
return [...];
}
}
Salud
Sé que llego tarde, pero esto ayudará a alguien.
Compruebe si el motor de reescritura es activado.
Si no, habilite Reescribir el motor y reiniciar el servidor.
sudo a2enmod rewrite
sudo service apache2 restart
Si la versión 2.5 de WampServer, cambie la configuración de Apache como
httpd.conf (archivo de configuración de Apache):De
#LoadModule rewrite_module modules/mod_rewrite.so**
Para, eliminar el #
LoadModule rewrite_module modules/mod_rewrite.so**
Esto funciona bien para mi
Esto funciona bien para mi
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
Asegúrate de tu raíz index.php
El archivo tiene el permiso correcto, su permiso debe ser 0755
o 0644