2009-08-11 34 views
6

Właśnie przeniosłem witrynę na serwer produkcyjny, a raz działająca instalacja CodeIgniter zwraca teraz pusty ekran. Uważam, że wynika to z białych znaków, ale jak masz coś takiego znaleźć?Pusty ekran z CodeIgniter

Odpowiedz

11

Co należy sprawdzić:

  • Wewnątrz config.php, upewnij się, że jest prawidłowo ustawiony $config['base_url']
  • byłeś w stanie skopiować .htaccess, jak również?
  • Czy masz te same wersje PHP na obu komputerach? Jeśli twoja odpowiedź brzmi "tak", zapytam cię ponownie: czy jesteś pewien?
  • Jaka jest wartość twojego konta $ db ['default'] ['hostname']?
  • Czy masz taką samą konfigurację bazy danych na swoim lokalnym i produkcyjnym serwerze? Nie może być różnic z nazwą hosta, nazwę użytkownika, hasło i bazy

Inne rzeczy można zrobić:

  • Ustaw $db['default']['db_debug'] do TRUE
  • wdrożyć instalacji CodeIgniter świeże na serwerze produkcyjnym i sprawdzenie jeśli możesz zobaczyć coś, jeśli nadal widzisz pustą stronę, zainstaluj pojedynczy plik PHP z tekstem i powiedz nam, co widzisz,
+0

Okazuje się, że na serwerze działa PHP 4 zamiast 5. Mam nadzieję, że firma hostingowa zaktualizuje ją dla mnie jutro. Dzięki za odpowiedź. – Tisch

+0

@ Moja nowa aplikacja jest na CI i działa na serwerze heroku. Index.php to echo "Hello", ale mój domyślny kontroler nie działa. I nie jestem pewien co do wersji phoku heroku i mojej aplikacji (CI = '2.1. 2 ', PHP = 5.5.16) – HaRsH

+2

@HaRsH, upewnij się, że 'display_errors' i' display_startup_errors' są ustawione na' true'. Upewnij się również, że 'error_reporting' jest ustawione na' E_ALL'. Zobacz na przykład http://stackoverflow.com/a/21429652/106778. – Randell

7

Doświadczyłem tego samego problemu i rozwiązałem go, ustawiając mój folder z logami na zapisywalny. Wygląda na to, że jeśli włączysz rejestrowanie, a twój folder logów na serwerze nie będzie można zapisać, CodeIgniter pokazuje tylko pustą stronę.

+2

Właśnie uratowałeś mnie od 3 godzin polowania. naprawdę musimy sprawdzić zdolność zapisu tego katalogu. –

10

Problem może wynikać z braku modułu mysqli w php. To jest kierowca twojego wywołania bazy danych. Sprawdziłbym to z:

php -i | grep mysqli

php -m

+0

To już dwukrotnie rozwiązało mój problem. CodeIgnitor wyświetli pusty ekran, jeśli PHP nie ma zainstalowanego odpowiedniego rozszerzenia bazy danych –

+0

To rozwiązało mój problem, dzięki @rlane. Nie było błędów nawet w dziennikach apache2, aby wskazać, że to był problem ... – Jarrett

+0

Dziękuję. To był mój problem podczas hostowania na Heroku. Musiałem zaktualizować plik composer.json, aby uwzględnić "ext-mysql": "*" 'w sekcji" "wymaga" ', następnie uruchom' aktualizację composer'a ', aby zaktualizować plik composer.lock. –

0

mam zblizonym problem. Próbuję wszystkiego, co ludzie napisali. Ale nikt nie pracuje dla mnie. Ale, finnaly znalazłem, że mój index.php nie jest kompletny podczas transferu do serwera za pośrednictwem ftp. Tak więc, jeśli ktoś nadal nie może rozwiązać białego ekranu śmierci, twój index.php nie jest kompletny.

1

Załaduj url pomocnika podczas tworzenia funkcji, np

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

} 

To pokaże Ci błędy lub widok załadowanego.

0

Po przeprowadzce na nowy serwer upewnij się, że na serwerze jest zainstalowany PHP-5. Powód, dla którego ekran jest pusty, jest taki, że serwer nie może jeszcze renderować PHP.

Rodzaj ta linia i restart po:

sudo apt-get install php5 libapache2-mod-php5

Aby ponownie:

sudo service apache2 restart 

Jest to oczywiście przy założeniu, masz dostęp do serwera za pośrednictwem klienta SSH z uprawnieniami administratora.

powodzenia, Niall

0

Stwierdzenie to gdzieś w pliku /index.php:

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

set_exception_handler('exception_handler'); 

Wydaje CodeIgniter obsługuje tylko wyjątki, które pochodzą z CI_Exception, więc każdy nieprzechwycony (v2?) wyjątki (z bibliotek stron trzecich, itp.) nie są obsługiwane.

Powiązane problemy