5 Stimmen

PHP CodeIgniter 404 bei Bereitstellung

Oooops, ich habe es schon wieder getan.

Meine Website funktionierte lokal einwandfrei

Mein Entwicklungsrechner ist ein Windows-WAMP2-Setup Mein Server ist ein CentOS 5.5 APACHE 2.2 PHP5 seup

Ich erhalte eine 404 auf der Codeigniter-Website, die ich bereitgestellt habe, und ich kann wirklich nicht herausfinden, was falsch ist, so helfen Sie mir bitte den Fehler zu finden.

Das ist die Root-Url. Ich habe kein DNS eingerichtet, also ist es nur die IP-Adresse des Servers. Bevor ich Codeigniter hochgeladen habe, wurde die Standard-Apache-Seite angezeigt. Ich habe mir die Konfigurationsdatei angesehen, und sie sieht in Ordnung aus. Könnte es ein Fehler bei den Dateiberechtigungen sein? ich habe chmod o+rw im gesamten /var/www/html Verzeichnis gesetzt. das error_log im httpd zeigt nichts

Ich habe versucht zu testen, ob es am mod_rewrite-Modul liegt, aber ich habe ein Testverzeichnis mit einer .htaccess-Datei mit eingeschalteter RewriteEngine erstellt, die mir keinen Fehler angezeigt hat, also kann es nicht daran liegen.

In codeigniter habe ich die log_threshold auf 4 in der Konfiguration gesetzt, aber ich bekomme keine Log-Meldungen, so dass ich nicht wirklich ausmachen kann, wenn es eine pre-> codeigniter-Fehler ist, aber ich glaube wirklich nicht, dass es ist, wie es meine Fehler-Ansicht lädt, noch Warum gibt es keine Log geschrieben wird, was ist es über?

Jede Hilfe wäre sehr willkommen, da ich auf dem Zahnfleisch laufe, um dies zum Laufen zu bringen...

Update Dank @jondavidjohn habe ich entdeckt, dass der Controller direkt mit dem IE:

http://addr/index.php/GeoController/markers/

Ich erhalte eine controllerspezifische Fehlermeldung:

Ihr Modell "modelname" kann nicht gefunden werden

GELÖST Vielen Dank an @jondavidjohn und @timdream für die Hinweise zur Lösung dieses Rätsels. Es war ein Benennungsproblem, ich hatte Dateinamen, die in Großbuchstaben geschrieben waren, und sie können nur klein sein, so wie ich es jetzt verstehe, also war die ROUTE insofern fehlerhaft, als dass sie zu Site führte, aber zu site hätte führen sollen, obwohl ich eine Site.php hatte, die ich ändern musste und die Route zu site.php

4voto

jondavidjohn Punkte 60651

Stellen Sie sicher, dass Sie die richtigen Einstellungen in system/application/config/config.php .. besondere Aufmerksamkeit schenken

$config['base_url'] = "http://www.example.com";

Vergewissern Sie sich, dass Sie die Root-Domäne Ihrer Website eingeben, überprüfen Sie auch Ihre Routing-Konfiguration und stellen Sie sicher, dass Sie den richtigen Standard-Controller in system/application/config/routes.php

2voto

Alex Rapso Punkte 121

Ich habe vor kurzem mit einer Neuinstallation von codeignitor 3.0 begonnen und hatte keine Probleme auf meinem Dev-Server (Windows). Als ich dann auf meinen Live-Server (Linux) umzog, begann ich, einen 404-Fehler zu erhalten.

Der Grund dafür ist, dass Sie in 3.0 den ersten Buchstaben Ihrer Controller/Modelle und auch den Dateinamen groß schreiben müssen.

z.B..

class Test_model extends CI_Model {

Test_model.php

Ich hoffe, das hilft einigen Leuten, die hier landen!

Als Referenz:

http://www.codeigniter.com/userguide3/installation/upgrade_300.html

1voto

timdream Punkte 5704

$config['uri_protocol'] könnte ebenfalls eine Rolle spielen. Es ist Standard AUTO die automatisch nach einer Umgebungsvariablen sucht, die die aktuelle URL enthält.

Ich hatte eine Webanwendung, die fehlschlägt, wenn ich von mod_php zu php-cgi für meinen Server wechsle. Ändern Sie die Konfiguration auf REQUEST_URI löst das Problem. Ich fand das Ventil durch Graben phpinfo() Ausgänge, könnten Sie das versuchen.

0voto

Jakub Punkte 20232

Meine erste Vermutung ist, dass Sie dies entwickelt haben und die .htaccess Datei.

JEDOCH, wenn Sie von einem Windows -> Linux-Systemwechsel (dev auf Win, prod auf nix) dann müssen Sie die Controller-Namen im Auge behalten, wenn eine Datei auf Windows war "Home.php", und Sie verwendet "home.php" in der Konfiguration als Ihre Standard-Route, dann wird es fehlschlagen da es keine "home.php"-Datei.

Home.php != home.php

Bei Linux wird zwischen Groß- und Kleinschreibung unterschieden. Überprüfen Sie das, es könnte eine einfache Sache sein, aber es könnte Probleme verursachen.

Auch hier kann ich in Ermangelung von Einzelheiten nur raten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X