Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] 1.4/Propel działa na dev, ale na prod nie może znaleźć klasy
Forum PHP.pl > Forum > PHP > Frameworki
pepe77
Witam,
aplikacja uruchamiana przed frontend_dev.php działa i nie generuje błędów.
Natomiast próba wykonania tej samej akcji z pominięciem nazwy skryptu (a więc przez index.php) generuje błąd:

[Wed Jun 01 01:09:49 2011] [error] [client 10.0.0.104] PHP Fatal error: Class 'MeetingPeer' not found in /xxxxxx/apps/frontend/modules/meetings/actions/actions.class.php on line 70

settings.yml standardowo wygenerowane.
Inne klasy "odnajdują się" w porządku.
symfony cc wykonałem.

Jakieś podpowiedzi, gdzie szukać problemu?

Z góry dziękuję,
pp
LBO
A wygenerowałeś na produkcyjnym klasy bazowe Propela?
pepe77
Środowiskiem produkcyjnym jest serwer NAS (Synology), na którym nie ma części bibliotek XML, dlatego klasy generuję na stagingu
i potem przenoszę przez rsync na produkcję.
To nie powinien jednak być problem, bo aplikacja działa w ten sposób od kilku miesięcy.
Dopiero po pojawianiu się nowego modułu (i nowej tablicy) w środowisku prod objawił się ten problem.
(przypominam: na środowisku dev wszsytko jest ok).
Co więcej staging (inny serwer, ale ta sama baza danych) działa dobrze i dev, i prod.
Innymi słowy: "stare klasy" widzi, "nowych" nie.

To wygląda jak jakis problem z cache, ale przecież mam ją wyczyszczoną...
pp.

PS.
środowiska wyglądają tak

STAGING
dev - działa ok
prod - działa ok

PRODUKCJA
dev - działa ok
prod - nie może znaleźć jednej klasy

Kod: za wyjątkiem config/ProjectConfiguration.php - dokładnie to samo.
DB: we wszsytkich przypadkach ta sama

  1. app/frontend/config/settings.yml
  2.  
  3. prod:
  4. .settings:
  5. no_script_name: true
  6. logging_enabled: false
  7. cache: false
  8.  
  9. dev:
  10. .settings:
  11. error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
  12. web_debug: true
  13. cache: false
  14. no_script_name: false
  15. etag: false


LBO
A próbowałeś usunąć ręcznie wszystko z folderu cache?

edit:
Z doświadczenia wiem, że czasem pomaga - szczególnie w przypadku problemów z autoloaderem.
pepe77
Usunąłem ręcznie - pomogło.
Diagnoza - był problem z uprawnieniami, "głębiej" w katalogu cache. wstydnis.gif
rsync "rozjeżdża" mi uprawnienia, muszę je zmieniać potem skryptem po stronie produkcji.
cache miał trzy siódemki, ale pod spodem ostał się frontend/prod, gdzie brakowało ostatniego "w".
Zmodyfikowałem skrypt, żeby kasował zawartość cache przez rm -rf zamiast symfony cc.

Dziękuję za pomoc!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.