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.

È stato utile?

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:

  1. Errore in script (errate configurazioni errate PHP, pacchetti mancanti, ecc ...)
  2. 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top