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:
Próbuję wykonać plik cron.php w przeglądarce i nie generuje on harmonogramu w tabeli cron_schedule.
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.
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.
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.
/usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1
.Odpowiedzi:
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.
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.
źródło
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 -e
ponieważ Linux jest używany jako system operacyjny serwera.źródło
Problem
magento_root/cron.php
nie został ustawiony na serwerzecrontab
. Musimy dodać ten plik do crontab, aby działał dla nas w następujący sposób.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.
Dodaj następującą instrukcję do pliku i zamknij ją po zapisaniu.
Aby uzyskać więcej informacji, odwiedź ten link
źródło