Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Procédure

Czym jest WP-Cron?

WP-Cron to wewnętrzny mechanizm WordPress, który imituje usługę Linux cron w celu uruchamiania zaplanowanych zadań w tle na WordPress. Umożliwia to między innymi automatyczne aktualizacje, rozgrzewanie pamięci podręcznej i wykonywanie zadań konserwacyjnych WooCommerce. Ponieważ wtyczki mają dostęp do tego mechanizmu, mogą dodawać zadania do wykonania w celu zaplanowania dodatkowych działań. Więcej informacji można znaleźć w naszym dedykowanym wpisie na blogu: Co to jest WordPress CRON?

Po co uruchamiać WP-Cron za pomocą cronjob?

WP-Cron został pierwotnie zaprojektowany w celu zastąpienia cronjob w pakietach hostingowych, które nie pozwalają na dodanie skryptu do usługi Linux cron. W rezultacie WP-Cron wyzwala wykonywanie zadań dzięki żądaniom kierowanym do pliku wp-cron.php, podczas żądań AJAX kierowanych do wp-admin/admin-ajax.php i/lub podczas ładowania strony. Tak więc wyzwalaczem dla tych żądań HTTP jest nieuchronnie wizyta na stronie internetowej. W rezultacie ładowanie strony będzie obciążone wykonywaniem zadań WP-Cron, a wydajność może zostać zmniejszona. Co gorsza, niektóre wtyczki dodają do WP-Cron zadania, które są o wiele za długie, aż do przekroczenia możliwych czasów oczekiwania HTTP. A co najbardziej niepokojące, wykonanie zadań może być opóźnione, ponieważ w witrynie nie ma odwiedzających w czasie, gdy zadanie powinno zostać wykonane. Niektóre zadania mogą się zatem kumulować, a gdy odwiedzający otworzy stronę, dziesiątki lub nawet setki zaplanowanych zadań mogą zostać porzucone, co znacznie pogorszy czas ładowania dla tego niefortunnego odwiedzającego.

Wyzwalanie WP-Cron za pomocą zadania cron zapewnia zatem, że zadania zaplanowane za pomocą WP-Cron są wykonywane bez wpływu na odwiedzających: wp-cron.php będzie wtedy wykonywany w regularnych odstępach czasu, niezależnie od tego, czy są odwiedzający, czy nie, a odwiedzający mogą natychmiast otworzyć witrynę bez czekania na wykonanie oczekujących zadań.

Krok 1: Wyłączenie wykonywania WP-Cron po załadowaniu strony

Przede wszystkim należy wyłączyć WP-Cron z uruchamiania po załadowaniu strony. Odbywa się to poprzez dodanie następującego wiersza do pliku wp-config.php:

define( 'DISABLE_WP_CRON', true );

Aby to zrobić, przejdź do klienta FTP, połącz się z kontem FTP i edytuj plik wp-config.php:

Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Krok 2: Wyzwalanie wp-cron.php z zadania cron

W panelu sterowania ISPConfig, przejdź do Witryny > Zadania cron i kliknij na"Nowy cron":

Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Następnie wprowadź zadanie cron, które będzie uruchamiane co minutę i wykona plik wp-cron.php:

Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Polecenie do wykonania,"php7.4 [web_root]/wp-cron.php" można dostosować:

  • php7.4 wskazuje wersję binarną PHP, która ma być używana. Jeśli witryna korzysta z innej wersji, należy dostosować wskazaną wersję.
  • [web_root] reprezentuje folder "web" na FTP. Należy go również dostosować, jeśli witryna WordPress znajduje się w określonym katalogu.

Pole wyboru "Log output" umożliwia rejestrowanie danych wyjściowych wp-cron w "prywatnym" folderze konta FTP. Możesz to zaznaczyć, jeśli chcesz mieć dane wyjściowe stdout i stderr wp-cron.php, przydatne na przykład do debugowania.

Więcej informacji na tematzaplanowanych zadań cron na VPS można znaleźć w dedykowanym artykule.

Kilka pułapek, których należy unikać

Domyślnie, witryny utworzone w ISPConfig nie są powiązane z żadnym kontem klienta:

Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Jeśli jednak dobrowolnie powiązałeś swoją witrynę z kontem klienta lub resellera utworzonym w ISPConfig, to konto to może mieć pewne limity cron, które mogą uniemożliwić prawidłowe działanie zadania cron. Aby sprawdzić te limity, przejdź do zakładki Limity na koncie klienta/sprzedawcy:

Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Następnie upewnij się, że wybrałeś Pełny cron, aby zadanie cronjob nie działało w ograniczonym chroot jail, który nie ma wszystkich funkcji wymaganych do prawidłowego działania cronjob:

Wyzwalanie WP-Cron za pomocą cronjob na stronie WordPress z ISPConfig

Upewnij się również, że ustawiłeś minimalny czas między uruchomieniami na "1", aby cronjob mógł być uruchamiany co minutę.

Jeśli utworzyłeś już cronjobs i/lub użytkowników powłoki dla witryny, konieczne będzie usunięcie wszystkich istniejących cronjobs i użytkowników powłoki, a następnie ponowne ich utworzenie, aby ISPConfig mógł przełączyć je ze środowiska chroot do pełnego środowiska cron.

Oceń ten artykuł :

5/5 | 2 opinia

Ten artykuł był dla Ciebie przydatny ?

Article utileTak

Article non utileNie

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobne artykuły

0mn czytanie

Jak wyłączyć mod_security na stronie internetowej na VPS za pomocą panelu ISPConfig?

1mn czytanie

Limity przepustowości na serwerach VPS

2mn czytanie

Jak skonfigurować uwierzytelnianie dwuskładnikowe w ISPConfig?


Zadaj pytanie zespołowi LWS i jego społeczności