2010-12-14 5 views
0

Ich habe vor kurzem angefangen, über eine CI-Anwendung auf den EC2-Dienst von Amazon zu migrieren. Zum Testen richte ich eine Mikroinstanz von Ubuntu und einen LAMP-Stack ein. PHP, MySQL, HTTPD funktionieren alle wunderbar. Das einzige Problem, das ich jetzt habe, ist, dass wenn ich meine Anwendung ausführe, ein Fehler angezeigt wird, der besagt, dass meine Helfer nicht geladen werden. Vor allem die Helfer, die nicht geladen werden, sind diejenigen in Unterverzeichnissen im Helferverzeichnis, zB: /var/www/system/application/helpers/subdirectory/foo_helper.phpCodeigniter App auf EC2 - Helfer wird nicht geladen

Die Helfer werden automatisch geladen und in meinem Autoload. pHP-Konfigurationsdatei sie geschrieben wie:

$autoload['helper'] = array('subdirectory/foo', 'foo2',...); 

Hat jemand in dieser Frage laufen, oder irgendwelche Hinweise auf, wo ich in meiner Konfiguration schauen gehen könnte dies zu lösen?

Danke für die Hilfe!

Antwort

0

Ich würde versuchen, das Debuggen des helper Funktion der Loader Klasse, insbesondere diese Linien:

System/Bibliotheken/Loader.php

elseif (file_exists(APPPATH.'helpers/'.$helper.EXT)) 
{ 
    include_once(APPPATH.'helpers/'.$helper.EXT); 
} 

Dies ist der Code, der getroffen wird, wenn Anwendungshelfer eingeschlossen werden. Überprüfen Sie, welchen Pfad CodeIgniter einbeziehen möchte. Überprüfen Sie, dass der Pfad existiert - jeder macht Tippfehler hin und wieder ;-)

+0

Um nur Stephen's Antwort hinzuzufügen, wäre eine gute Möglichkeit zu überprüfen, ob Loader auf den richtigen Pfad für Ihren Helfer sucht, ein Echo APPPATH.'helpers /'.$ helper.EXT vor der IF-Schleife und sehen was es gibt aus. – Shivaas

+0

Danke für die Hilfe. Die Pfade scheinen alle richtig zu sein, die Anwendung lief auf meinem Windows-Dev-Server, bevor ich sie auf EC2 umstellte. Falschschreibfehler sind also kein Problem oder sie hätten sich bei der Entwicklung gezeigt. Eine andere wirklich seltsame Sache, die ich mit EC2 bemerkt habe, ist, wann immer ich einen PHP-Ausführungsfehler bekomme. Ich werde hineingehen und den Fehler beheben und dann, wenn ich auffrische, bekomme ich immer noch den gleichen Fehler. Wie EC2 hat der Code im Cache oder so etwas. Es ist wirklich frustrierend so zu debuggen. – whobutsb

0

Ich denke, das Problem ist, dass, wenn ich von Windows zu Linux wechselte ich vergessen zu berücksichtigen, dass Linux Groß-und Kleinschreibung. Also muss ich jetzt meine Dateien und Ordner durchgehen und umbenennen.

Aber das löst immer noch nicht das Problem, wo es scheint, dass die Seite zwischengespeichert wird und ich nicht in der Lage bin, meine Änderungen zu aktualisieren und zu sehen. Gibt es eine Möglichkeit, die Seite zu zwingen, bei jeder Aktualisierung eine neue Kopie vom Server abzurufen?