PDA

Zobacz pełną wersję : class JConfig błąd w pliku



MagicWawa
19-11-2009, 22:42
Witam Was ponownie.

Zauważyłem pewną ciekawą rzecz w Joomla! 1.5.15 (we wcześniejszych nie wiem, bo nie trafiłem na ten błąd).
Jeśli wstawimy w pliku configuration.php taki skrypt:
<?php
require( dirname( __FILE__ ) . 'ścieżka do nowego pliku konfiguracji' );
?>
Przeniesiemy plik configuration.php poza ścieżkę serwera i jednocześnie zmienimy mu nazwę na jakąkolwiek (oczywiście ścieżka w pliku udającym configuration.php musi zawierać właśnie tę nazwę pliku), to po usunięciu w panelu administracyjnym opisu i słów kluczowych występuje błąd:
Fatal error: Cannot redeclare class JConfig in /tu ścieżka do pliku .php on line 2
Gdyby komuś coś takiego się przydarzyło, to sposobem jest edycja pliku configuration.php (tego starego tworzonego przy instalacji, w którym powinna być ścieżka do nowego pliku konfiguracji), bo Joomla! w tym przypadku nadpisuje ten plik z <?php
require( dirname( __FILE__ ) . 'ścieżka do nowego pliku konfiguracji' );
?> poprawnym plikiem konfiguracyjnym.
Nie wiem czy wytłumaczyłem to dość klarownie, ale jeśli ktoś się skupi, to powinien zrozumieć o co chodzi. Jeśli ktoś nie będzie mógł zrozumieć, to postaram się to jakoś wytłumaczyć łopatologicznie.

Zastanawia mnie tylko dlaczego Joomla! nadpisuje ten plik danymi poprawnego pliku configuration.php?

jaroxs
14-03-2010, 18:31
Witam Was ponownie.

Zauważyłem pewną ciekawą rzecz w Joomla! 1.5.15 (we wcześniejszych nie wiem, bo nie trafiłem na ten błąd).
Jeśli wstawimy w pliku configuration.php taki skrypt:
<?php
require( dirname( __FILE__ ) . 'ścieżka do nowego pliku konfiguracji' );
?>
Przeniesiemy plik configuration.php poza ścieżkę serwera i jednocześnie zmienimy mu nazwę na jakąkolwiek (oczywiście ścieżka w pliku udającym configuration.php musi zawierać właśnie tę nazwę pliku), to po usunięciu w panelu administracyjnym opisu i słów kluczowych występuje błąd:
Fatal error: Cannot redeclare class JConfig in /tu ścieżka do pliku .php on line 2
Gdyby komuś coś takiego się przydarzyło, to sposobem jest edycja pliku configuration.php (tego starego tworzonego przy instalacji, w którym powinna być ścieżka do nowego pliku konfiguracji), bo Joomla! w tym przypadku nadpisuje ten plik z <?php
require( dirname( __FILE__ ) . 'ścieżka do nowego pliku konfiguracji' );
?> poprawnym plikiem konfiguracyjnym.
Nie wiem czy wytłumaczyłem to dość klarownie, ale jeśli ktoś się skupi, to powinien zrozumieć o co chodzi. Jeśli ktoś nie będzie mógł zrozumieć, to postaram się to jakoś wytłumaczyć łopatologicznie.

Zastanawia mnie tylko dlaczego Joomla! nadpisuje ten plik danymi poprawnego pliku configuration.php?


No wlasnie mam tego typu problem i nie za bardzo zrozumialem o co w tym chodzi. Czy mozesz to jakos jasniej wytlumaczyc. Ja np. przygotowywalem nowa wersje serwisu a potem wrzucilem ja na serwer i teraz zglasza mi caly czas blad :

Cannot redeclare class JConfig

kiedy probuje sie dostac do panelu administracyjnego.

Nie wiedzialem jak sie tego pozbyc wiec stara wersje serwisu wykopiowalem na serwerze do innego katalogu a nowa wersje ktora udoskonalilem skopiowalem do tego starej nazwy katalogu. I teraz w nowej wersji moge sie dostac do panelu administracyjnego, ale w tej starej wersji serwisu ktora przenioslem do innego katalogu juz nie.

Co powoduje nadpisanie tego pliku i gdzie szukac rozwiazania mozesz jakos pomoc ?

Jarek

Jola
14-03-2010, 19:04
Witam,
to akurat nie jest żadna tajemnica. Zawartość panelu konfiguracyjnego Joomla jest zapisywana do pliku configuration.php za pomocą własnego mechanizmu, który nie uwzględnia własnej "twórczości".
Czyli podczas każdego zapisu konfiguracji witryny takie dodatkowe informacje zostaną utracone.

MagicWawa
14-03-2010, 19:17
I dlatego po przeniesieniu gdzieś pliku configuration.php i zadeklarowaniu do niego ścieżki w pliku udającym go w głównym katalogu witryny należy wszystkie ustawienia konfiguracji robić już bezpośrednio w pliku configuration.php (czy jak on się u Was nazywa po przeniesieniu), a nie z poziomu PA Joomla. Inaczej Joomla zmieni plik configuration.php (ten w głównym katalogu witryny, w którym zadeklarowaliśmy ścieżkę do właściwego pliku konfiguracji) i cała praca zabezpieczająca ten plik idzie na marne. A swoją drogą przydałoby się zmodyfikować zapisywanie konfiguracji w taki sposób, że po przeniesieniu pliku i zadeklarowaniu go w configuration.php zmiany dokonują się w docelowym pliku.

jaroxs
14-03-2010, 20:08
Nadal nie rozumiem co zrobilem zle i w ktorym momencie. Moze opisze swoj proces postepowania.

1) Stary serwis mialem w katalogu /STARY_SERWIS
2) Wykopiowalem go recznie i przenioslem baze danych recznie na lokalnego kompa
3) Udoskonalalem serwis i go rozbudowalem, miedzy czasie oczywiscie modyfikowalem plik configuration.php poniewaz pracowalem na lokalnym kompie z serverem joomlas2go.
4) Zakonczylem prace i wykopiowalem go do katalogu na serwer o nazwie /NOWY_SERWIS
5) Front dziala ok ale do panelu juz nie dalo sie wejsc. Myslalem ze przyczyna bylo wywalenie domowej templatki rhuk_milkiway - co jeden gostek opisywal tutaj -> http://forum.joomla.org/viewtopic.php?f=429&t=285490&start=0&st=0&sk=t&sd=a

6) Pokusilem sie nawet o probe tych rzeczy o ktorych napisal ale nadal nic i gdy probowalem wchodzic /NOWY_SERWIS/ADMINISTRATOR to caly czas byl blad o ktorym mowimy. Co ciekawe w zglaszanym bledzie odwolanie bylo caly czas do katalogu /STARY_SERWIS/ADMINISTRATOR a nie do nowego.

7) W koncu stary serwis wykopiowalem do jakiegos innego katalogu a nowy ulepszony serwis przenioslem do katalogu /STARY_SERWIS i teraz juz wszystko dziala ale oczywiscie do starego serwisu nie moge wejsc na panel.

8) Lopatologicznie prosze w ktorym momencie popelnilem blad? W googlu o tym bledzie nie mozna praktycznie znalezc nic co dla niektorych moze byc dosc frustrujace jezeli nie wpadna na pomysl z proba przeniesienia nowej wersji serwisu do starego katalogu.

Dzieki z gory za dobre checi !

Jarek

jaroxs
14-03-2010, 20:31
No i posiedzialem i juz znalazlem odpowiedz na wkur.... mnie sytuacje. Okazalo sie ze ja nigdzie nie popelnilem bledu jezeli chodzi o zmiany jakie przeprowadzalem w trakcie rozbudowywania serwisu i pracy na pliku configuration.php.

Odpowiedz jest bardzo prosta. Sa pewne moduly i komponenty ktore sa wczytywane jako pierwsze nim sie wejdzie na panel. W moim przypadku byl to platny komponent JRECACHE ktory zakupilem. Okazalo sie ze udoskonalilem wszystko ale zapomnialem w tym komponencie podczas pracy na serwerze lokalnym wymienic stara sciezke dostepu do pliku configuration.php na nowy katalog na serwerze do ktorego bede wgrywal serwis.

JRECACHE dziala tak ze za kazdym razem kiedy wchodzi sie na serwis wczytywany jest najpierw jego plik konfiguracyjny w ktorym ustawiona jest sciezka dostepu do pliku configuration.php.

Po recznej wymianie sciezki dostepu w tym komponencie dziala wszystko jak nalezy. Cudow nie ma sam se napsuc w brutalny sposob nic nie moglem, az taki amator nie jestem ;-).

Uwaga na obce komponenty ktore moga naruszac bezpieczenstwo...

Pozdro

Jarek

Myszoor
21-06-2010, 12:56
cze

czy macie pomysł na to co się mogło stać? Komunikat błędu jest taki:


Fatal error: Class 'JConfig' not found in /home/....... /_Joomla01/includes/framework.php on line 49

przy czym ta linijka ma taką postać:


$CONFIG = new JConfig();