Magento cron.php nic nie robi po uruchomieniu

10

Mój Magento cron działa normalnie kilka miesięcy temu. Ale ostatnio nagle przestał generować harmonogram. Samo polecenie cron działa poprawnie na moim serwerze hostingowym. Jest to Magento wersja 1.8.0.0.

Oto, co próbowałem:

  1. Próbuję wykonać plik cron.php w przeglądarce i nie generuje on harmonogramu w tabeli cron_schedule.

  2. Zainstaluj rozszerzenie AOE Scheduler, mając nadzieję, że rozwiąże ono problem. Mogę wygenerować harmonogram przy użyciu tego rozszerzenia, ale Magento cron nie może wykonać harmonogramu cron.

  3. Zainstaluj nową wersję Magento 1.8.0.0 na serwerze hostingowym, a następnie uruchamiając plik cron.php w przeglądarce, tabela cron_schedule jest nadal pusta.

  4. Zainstaluj świeżą wersję Magento 1.8.0.0 na moim localhost, a następnie uruchamiając cron.php w przeglądarce, generuje harmonogram. Próbuję więc przesłać go na serwer hostingowy. Wyczyszczam pamięć podręczną Magento, a następnie uruchamiam cron.php w przeglądarce, co zaskakujące, nic się nie dzieje w tabeli cron_schedule. Ale działa dobrze w moim localhost.

Mam inną witrynę Magento w wersji 1.7.0.2 na tym samym serwerze hostingowym, cron działa dobrze.

Nadal nie wiem, co jest przyczyną tego problemu, więc zamieszczam go tutaj. Mam nadzieję, że ktoś będzie miał ten sam problem i podzieli się rozwiązaniem.

Wakanina
źródło
2
Podobny problem spotkałem kilka miesięcy temu. Interpretator linii poleceń miał osobną konfigurację php.ini, a limit_pamięci był zbyt niski, aby zadania cron zakończyły się niepowodzeniem. Nie jestem pewien, czy to jest twój problem.
Fiasco Labs,
Limit_pamięci wynosi 256 MB i to jest polecenie, którego używam /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1.
Wakanina,

Odpowiedzi:

24

Znalazłem rozwiązanie na forach ( link nie jest już online )

Wcześniej próbowałem zainstalować Magento 1.7.0.2 na moim serwerze hostingowym, a cron działa poprawnie. Więc założyłem, że mój hosting nie może uruchomić Magento 1.8.0.0 cron, więc planowałem obniżyć moją stronę Magento do 1.7.0.2. Ale zanim zdegradowałem swoją witrynę, znalazłem rozwiązanie na powyższym linku.

  • Edytuj plik cron.php
  • Po $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; około 47 dodaj ten wiersz kodu

    $isShellDisabled = true;

A teraz My Magento 1.8.0.0 cron działa idealnie.

Wakanina
źródło
W moim przypadku pracuję na serwerze, który sprawił mi ból głowy z powodu niejednoznacznej konfiguracji. To był jedyny sposób, aby uruchomić crona.
pspahn
Działa dla wget, ale lepiej zmień nazwę na eq cron89128923489.php;)
user956584
To też działało dla mnie. Prawdopodobnie ma to związek z ograniczeniami dostępu do powłoki.
Daniel West
Link ma MageBayVaporated ...
Fiasco Labs
Wyjaśniłem, dlaczego to obejście działa i jakie jest prawdziwe rozwiązanie tutaj: magento.stackexchange.com/questions/137130/...
Fabian Schmengler
11

Rozwiązanie podane przez Wakaninę działało dla mnie. Jednak zmiana pliku cron.php była w naszej polityce niedopuszczalna. Dziwne jest to, że wdrożyłem moją witrynę na dwóch serwerach (z tym samym systemem operacyjnym, wersją PHP) i na jednym serwerze wykonuje zadania cron po uruchomieniu cron.php, a na innym serwerze nic się nie dzieje.

Musiałem więc wypróbować lepsze rozwiązanie, które zachowa dowód mojej aktualizacji witryny.

Zamiast wykonywania cron.php, jestem teraz wykonywania cron.sh poprzez crontab -eponieważ Linux jest używany jako system operacyjny serwera.

Rakesh Shewale
źródło
2
Tak właśnie należy to zrobić.
Robbie Averill,
2

Problem magento_root/cron.phpnie został ustawiony na serwerze crontab. Musimy dodać ten plik do crontab, aby działał dla nas w następujący sposób.

# crontab -l (this command will list all the Cron jobs in Crontab)

Powinien znajdować się wpis dla pliku magento_root / cron.php. Jeśli nie, musimy dodać ten plik, ponieważ ten plik jest odpowiedzialny za inicjowanie zadań Magento Cron. Musimy więc edytować Crontab w następujący sposób.

# crontab -e

Dodaj następującą instrukcję do pliku i zamknij ją po zapisaniu.

* / 5 * * * * wget -O / dev / null -q ścieżka_do katalogu_głównego_magento / cron.php> / dev / null

Aby uzyskać więcej informacji, odwiedź ten link

saiid
źródło