wp-cron.php Gerçekten Gerekiyor mu? Gerçek Cron ile Değiştirme
wp-cron.php
gerçekten gerekiyor mu? sorusuna verilecek yanıt: “Evet, ama optimize edilebilir.”
WordPress sitelerinde wp-cron.php
, zamanlanmış görevleri yürütmek için kullanılır. Örnek olarak:
- Yazıların zamanında yayınlanması
- Eklenti güncellemelerinin kontrolü
- Ön bellek temizliği
- Otomatik yedeklemeler
Ancak, varsayılan davranışı her ziyaretçide çalıştırılmasıdır – bu da yoğun trafikte performans sorunlarına veya hiç trafik almayan sitelerde cron görevlerinin çalışmamasına yol açabilir.
Gerçek Cron ile Değiştirme
1. WordPress’in varsayılan Cron’unu devre dışı bırak
wp-config.php
dosyanızda aşağıdaki satırı ekleyin:
Bu satır, WordPress’in wp-cron.php
dosyasını otomatik olarak çalıştırmasını engeller.
2. Gerçek cronjob oluşturun (Linux sunucu için)
Eğer paylaşımlı hosting değil de kendi VPS veya bir Linux sunucunuz varsa, şu adımları izleyin:
Cronjob Komutu (örnek: her 5 dakikada bir):
Alternatif olarak curl
kullanılabilir:
Güvenlik notu: Eğer wp-cron.php
‘yi herkese açık bırakmak istemiyorsanız, IP sınırlaması veya htaccess
koruması ekleyebilirsiniz.
Avantajlar
- Daha doğru zamanlama
- Daha düşük sunucu yükü
- Trafik bağımlılığının kaldırılması
Ne zaman Gerekli Değildir?
- Düşük trafikli ve az işlem yapan küçük sitelerde çok büyük fark yaratmaz.
- Bazı managed WordPress hostingler zaten
wp-cron
‘u optimize şekilde çalıştırır (örneğin Kinsta, WP Engine).
DirectAdmin Üzerinden Cronjob Ekleme
Adımlar:
- DirectAdmin’e giriş yap.
- Sol menüden “Advanced Features” > “Cron Jobs” sekmesine git.
- “Add New Cron Job” kısmını doldur:
Ayar | Değer |
---|---|
Minute | * /5 (her 5 dakikada bir) |
Hour | * |
Day | * |
Mount | * |
Weekday | * |
Command alanına şunu yaz:
Notlar:
- kullaniciadi: DirectAdmin’deki kullanıcı adınız.
- siteniz.com: Alan adınız.
- Eğer
php
komutu çalışmazsa, tam PHP yolu gerekebilir. Örneğin:
Alternatif olarak wget ya da curl ile de çalıştırabilirsiniz:
Doğrulama
Cron’un düzgün çalıştığını test etmek için WordPress panelinden bir zamanlanmış görev (örneğin: zamanlı yazı yayını) oluşturun. Yayın saati geldiğinde düzgün çalışıyorsa sistem tamamdır.
Ekstra: wp-cron.php’yi dışarıya kapatmak için?
Eğer sadece sunucudan çalışsın, ziyaretçiler erişemesin istiyorsan .htaccess dosyanıza şunu ekleyebilirsin:
Bu, sadece sunucunun kendisinin çalıştırmasına izin verir.