Cambio Host: "include(Controller.php): Failed To Open Stream: No Such File Or Directory "

Io uso git, in modo da avere sempre tutto ‘pulito’ e in ordine.

Oggi ho committato tutto, rilasciato su un host, e tutto va.

Quindi mi sono spostato su un host diverso (in realtà è lo stesso host, solo macchina diversa, ma php/mysql/os, etc… identici)…

Solo che qui mi da questo errore all’avvio (visibile solo mettendo debug a true)


include(Controller.php): failed to open stream: No such file or directory 

Visti i meccanismi di autoload di php, non riesco ne a spiegarmi la possibile causa, ne come diavolo debbuggarlo !

Nello stack trace vedo le chiamate,eseguite bene, quindi di per se Yii lo carica a CApplication e compagnia bella.

Quando arriva, nella home, a caricare SiteController, che estende Controller, dà questo errore.

Controller è di default dentro la cartella components, e ovviamente fa parte degli import (ribadisco che sull’altro host va)…

non riesco a capire dove sbattere la testa…

Hai scritto “è di default”? La mia domanda è … ma c’è? Quell’errore dice che non c’è. Hai controllato se effettivamente si trova li dove ti aspetti?

oppure problemi di permessi

:( Il problema era decisamente altrove, per un problema di battitura dentro al main certe cartelle non venivano caricate, è una storia lunga che ha relazione con una pesante modifica al sistema di configurazione, dovuto alla natura ‘distribuita’ ed autoconfigurante dell’applicazione che abbiamo realizzato :(

Decisamente not-yii-related.

Chiudo, sorry

Spiegati meglio: se dovesse capitare ad altri potresti aiutare qualcuno lasciando qui la tua testimonianza. Altrimenti questo diventa solo un post in cui si dice che c’è un problema e che è stato risolto, … ma non come.

Si, hai ragione.

Il problema nasce nel fatto che oltre al normale ‘main.php’ di configurazione, nel nostro progetto abbiamo anche un ‘config.php’ che è specifico per ogni installazione.

Questo file ‘carica’ main.php … il problema era che nel copia/incollare una di queste, ho perso la riga dove includevo il main.php.

Solo che per come è fatta l’applicazione (pesantemente moddata da un collega), riusciva parzialmente a sopravvivere lo stesso, e non capivo dove stava il problema. E’ stato un errore umano, quindi, assolutamente NON relazionata ad Yii.

Mi è capitato di avere una applicazione con diverse installazione. In quel caso mi sono procurato uno script di installazione con phing. In poche parole nel repository tengo solo un config/main.php.dist ovvero un file di configurazione da configurare. Il mio script di phing mi richiedeva quali fossero il database, username e password per copiare config/main.php.dist in config/main.php ma con i dati corretti dell’host in cui sarebbe stato installato il mio software. Questo può aiutarti?

L’idea non è male, grazie, lo terrò presente.

E comunque, non avendo mai usato phing, ora ho una scusa per studiare una cosa nuova. il che non guasta mai.

Puoi usare phing, php, la bash, … Il concetto rimane lo stesso: crearsi degli script di configurazione.