2009-08-11 18 views
6

Ich habe gerade eine Site auf einen Produktionsserver verschoben, und eine einmal funktionierende CodeIgniter-Installation gibt jetzt einen leeren Bildschirm zurück. Ich glaube, es liegt an Leerzeichen, aber wie soll man so etwas finden?Leerer Bildschirm mit CodeIgniter

Antwort

11

Dinge überprüfen:

  • Innen config.php, stellen Sie sicher, dass Ihre $config['base_url'] richtig eingestellt ist und .htaccess kopieren
  • Konnten Sie?
  • Haben Sie in beiden Maschinen die gleichen PHP-Versionen? Wenn Ihre Antwort ja lautet, frage ich Sie noch einmal: Sind Sie sicher?
  • Was ist der Wert Ihrer $ db ['default'] ['hostname']?
  • Haben Sie die gleiche Datenbankkonfiguration auf Ihrem lokalen und Produktionsserver?

    • Set $db['default']['db_debug']-TRUE
    • Deploy eine frische CodeIgniter Installation in dem Produktionsserver und Kontrolle: Es konnte

    Andere Dinge, die Sie tun können, Unterschiede mit dem Hostnamen, Benutzernamen, Passwort und Datenbankname Wenn Sie etwas sehen können

  • Wenn Sie immer noch eine leere Seite sehen, stellen Sie eine einzige PHP-Datei mit Text darin und sagen Sie uns, was Sie sehen
+0

stellt sich heraus, dass der Server PHP 4 statt 5 läuft. Hoffentlich wird das Hosting-Unternehmen es für mich morgen aktualisieren. Danke für Ihre Antwort. – Tisch

+0

@rendell meine App ist auf CI und läuft auf dem Heroku-Server .Index.php ist echo "Hallo", aber mein Standard-Controller läuft noch nicht. Und ich bin mir nicht sicher über die php-Version von heroku und meiner App (CI = '2.1. 2 ', PHP = 5.5.16) – HaRsH

+2

@HaRsH, stellen Sie sicher, dass 'display_errors' und' display_startup_errors' auf 'true' gesetzt sind. Stellen Sie außerdem sicher, dass 'error_reporting' auf' E_ALL' gesetzt ist. Siehe http://stackoverflow.com/a/21429652/106778 zum Beispiel. – Randell

7

Ich hatte das gleiche Problem und löste es, indem ich meinen Protokollordner auf beschreibbar setzte. Es scheint, dass wenn Sie die Protokollierung einschalten und Ihr Protokollordner auf Ihrem Server nicht beschreibbar ist, CodeIgniter Ihnen nur eine leere Seite anzeigt.

+2

Sie haben mich gerade von 3 Stunden Jagd befreit. Wir müssen wirklich die Schreibfähigkeit dieses Verzeichnisses überprüfen. –

10

Das Problem liegt möglicherweise daran, dass das PHP-Modul 'mysqli' fehlt. Dies ist der Treiber für das Aufrufen der Datenbank. Ich würde das überprüfen mit:

php -i | grep mysqli

php -m

+0

Das hat mein Problem jetzt zweimal gelöst. CodeIgnitor wird den Bildschirm leeren, wenn PHP die entsprechende Datenbankerweiterung nicht installiert hat –

+0

Das löste mein Problem auch, danke @rlane. Es gab keine Fehler sogar in den Apache2-Protokollen, um anzuzeigen, dass dies ein Problem war ... – Jarrett

+0

Danke. Das war mein Problem beim Hosting auf Heroku. Ich musste composer.json aktualisieren, um "" ext-mysql ":" * "' in den Abschnitt "require" aufzunehmen, und dann 'composer update' ausführen, um die composer.lock-Datei zu aktualisieren. –

0

I simillar Problem. Ich versuche alles mögliche, was die Leute geschrieben haben. Aber niemand arbeitet für mich. Aber ich habe festgestellt, dass meine index.php nicht vollständig ist, wenn ich sie per ftp auf den Server übertrage. Also, wenn jemand den weißen Bildschirm des Todes immer noch nicht lösen kann, ist die index.php nicht vollständig.

1

Laden Sie Ihre URL Helfer, wenn Sie eine Funktion erstellen, zB:

visibility function_name() 
{ 
    $this->load->helper('url'); 

} 

Es wird Ihnen Fehler zeigen oder eine Ansicht, die Sie geladen.

0

Wenn Sie auf einen neuen Server gewechselt sind, vergewissern Sie sich, dass auf dem Server PHP-5 installiert ist. Der Grund, warum der Bildschirm leer ist, liegt darin, dass der Server PHP noch nicht rendern kann.

Art diese Linie in und Neustart nach:

sudo apt-get install php5 libapache2-mod-php5

neu zu starten:

sudo service apache2 restart 

Dies ist natürlich vorausgesetzt, Sie haben über einen SSH-Client mit Administratorrechten Zugriff auf den Server.

viel Glück, Niall

0

erklären diese irgendwo in Ihrer /index.php Datei:

function exception_handler($exception) { 
    echo "Uncaught exception: " . $exception->getMessage(); 
} 

set_exception_handler('exception_handler'); 

Es scheint CodeIgniter nur Ausnahmen behandelt, die von CI_Exception abgeleitet werden, so dass jede abgefangene (v2?) Ausnahmen (von Bibliotheken von Drittanbietern usw.) werden nicht behandelt.

Verwandte Themen