CODEIGNITER 500 Errore del server interno
-
28-10-2019 - |
Domanda
Ho scaricato uno script PHP scritto usando CodeIgniter. Quando lo eseguo dal Localhost, andando alla cartella Admin, mostra di nuovo LocalHost. Anche quando si esegue dal mio host web, mostra un errore del server interno 500.
Eseguo il sito da http: // localhost/myproj Funziona. Quindi quando provo ad andare alla pagina di amministrazione che è a http: // localhost/myproj/amministratore, fornisce un errore del server interno 500.
Ho letto qui che ciò potrebbe essere dovuto a un codice sbagliato nel file .htaccess. Questo è il mio presente file .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
Mi aiuti per favore. So che potrebbe essere un problema molto piccolo, ma non riesco a trovare l'errore.
Soluzione
Il problema con 500 errori (con codeIgniter), con diverse impostazioni di Apache, visualizza 500 errori quando si verifica un errore con la configurazione PHP.
Ecco come può attivare 500 errori con codeigniter:
- Errore in script (errate configurazioni errate PHP, pacchetti mancanti, ecc ...)
- PHP "Errori fatali"
Si prega di controllare i registri degli errori Apache, ci dovrebbero essere alcune informazioni interessanti lì dentro.
Altri suggerimenti
Nel caso in cui qualcun altro si imbatte in questo problema, ho ereditato un vecchio progetto di codeigniter e ho avuto molti problemi a farlo installare.
Ho perso un sacco di tempo cercando di creare un'installazione locale del sito e ho provato tutto. Alla fine, la soluzione era semplice.
Il problema è che le versioni di codeigniter più vecchie (come 1.7 e inferiore), non funzionano con PHP 5.3. La soluzione è passare a PHP 5.2 o qualcosa di più vecchio.
Stai cercando di rimuovere Index.php dal tuo sito URL, giusto?
Prova a impostare il tuo $config['uri_protocol']
a REQUEST_URI
invece di AUTO
.
Rimuovi il commento in httpd.conf (file di configurazione apache):
LoadModule rewrite_module modules/mod_rewrite.so
Prova questo sul tuo file .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
Ogni volta che eseguo codeIgniter in una sotto -directory imposta il RewriteBase
ad esso. Prova a impostarlo come /myproj/
invece di /
.
Questo probabilmente non è più rilevante per questo thread, ma si spera utile per qualcuno. Ho avuto 500 errori nelle ultime ore poiché avevo un restituzione del controller un array non supportato dalla versione PHP e bancaria sul mio server (scadente). Sembra banale ma ha avuto i segni distintivi di un errore di codeigniter.
Ho dovuto usare:
class emck_model extends CI_Model {
public function getTiles(){
return array(...);
}
}
Invece di
class emck_model extends CI_Model {
public function getTiles(){
return [...];
}
}
Saluti
So di essere in ritardo, ma questo aiuterà qualcuno.
Controlla se il motore di riscrittura è abilitato.
In caso contrario, abilitare il motore a riscrivere e riavviare il server.
sudo a2enmod rewrite
sudo service apache2 restart
Se la versione 2.5 Wampserver, modifica la configurazione Apache come
httpd.conf (file di configurazione apache):Da
#LoadModule rewrite_module modules/mod_rewrite.so**
A, elimina il #
LoadModule rewrite_module modules/mod_rewrite.so**
Questo funziona bene per me
Questo funziona bene per me
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
Assicurati la tua radice index.php
Il file ha l'autorizzazione corretta, la sua autorizzazione deve essere 0755
o 0644