Cevap görünüşe göre EVET, endişelenmeliyim . Bazı araştırmalardan sonra, uyarının WordPress'in barındırıldığı sunucudaki yanlış yapılandırmalarla ilişkili olduğunu gördüm (yani, WordPress ile değil, sunucumla ilgili bir sorun).
Yaygın yanlış yapılandırmalar:
- Sunucunun DNS'si yoktur ve bu nedenle kendisi olmasına rağmen "example.com" un kim olduğunu anlayamaz.
- Yanlış yönlendirilmiş bir güvenlik denemesinde sunucu yöneticileri "geri döngü" isteklerini engelledi, bu yüzden kendi kendine geri arama yapamaz.
- Sunucu "mod_security" veya benzeri bir şey çalıştırıyor, bu da beyin ölü yapılandırması nedeniyle çağrıyı aktif olarak engelliyor.
Benim durumumda sorun aslında varsayılan olarak "NAT yansımasını devre dışı bırak" (ortak neden # 2 olarak listelenmiştir ) olan güvenlik duvarım (pfSense) neden oldu.
Sunucunun kendisinde telnet kullanarak kendime ulaşmaya çalıştım ve sonuç şöyle oldu:
$ telnet external.server.hostname.com 19235
XXX.XXX.XXX.XXX çalışıyor ...
telnet: Uzak ana bilgisayara bağlanamıyor: Bağlantı zaman aşımına uğradı
Bunu düzeltmek için güvenlik duvarımdaki NAT yansımasını devre dışı bırak seçeneğinin işaretini kaldırdım . Benim durumumda, bu Sistem-> Gelişmiş-> Güvenlik Duvarı / NAT altında pfSense web arayüzündeydi.
Kaynak: http://forum.pfsense.org/index.php?topic=3473.0
Şimdi kendime (sunucunun kendisinde) güvenlik duvarı üzerinden bağlanabiliyorum:
$ telnet external.server.hostname.com 19235
XXX.XXX.XXX.XXX çalışıyor ...
External.server.hostname.com sitesine bağlandı.
Kaçış karakteri '^]'.
ve artık wp-cron hakkında PHP uyarısı almıyorum.
Nasıl çalıştığını açıklayan bu ayrıntılı cevabı okuduktan sonra bunu anladım .wp_cron
Kısa cevap: Bunu wp-config.php dosyanızdaki tanımlara ekleyin: define ('ALTERNATE_WP_CRON', true);
Mazoşistler için gerçekten uzun bir cevap: Programlanmış yayınlar artık değil ve hiç "kırılmadı". WordPress geliştiricileri bunu düzeltemez çünkü düzeltilecek hiçbir şey yoktur.
Sorun, sunucunuzun bir nedenle wp-cron işlemini düzgün bir şekilde yürütememesi gerçeğinde yatmaktadır. Bu işlem WordPress'in zamanlama mekanizmasıdır, zamanlanmış yayınlardan XMLRPC pinglerine geri ping göndermeye kadar her şeyi işler.
Çalışma şekli oldukça basit. Bir WordPress sayfası her yüklendiğinde, WordPress dahili olarak wp-cron'u tetiklemesi gerekip gerekmediğini kontrol eder (geçerli saati wp-cron'un son çalıştırılmasıyla karşılaştırarak). Wp-cron'u çalıştırması gerekiyorsa, wp-cron.php dosyasını çağırarak kendisine bir HTTP bağlantısı kurmaya çalışır.
Kendi kendine olan bu bağlantı bir sebep için var. wp-cron'un yapacak çok işi var ve bu iş zaman alıyor. Kullanıcının web sayfasını bir sürü şey yaparken görmesini ertelemek kötü bir fikirdir, bu nedenle bu bağlantıyı kendisine geri vererek, wp-cron programını ayrı bir işlemde çalıştırabilir. WordPress'in kendisi wp-cron'un sonucunu umursamadığı için, sadece bir saniye bekler, ardından web sayfasını kullanıcı için oluşturmaya geri döner. Bu arada, başlatılan wp-cron, işini bitene veya yürütme süresi bitene kadar yapar.
Bu HTTP bağlantısı, kötü yapılandırılmış bazı sistemlerin başarısız olduğu yerdir. Temel olarak, WordPress bir web tarayıcısı gibi davranıyor. Siteniz
http://example.com/blog ise , WP işlemi başlatmak için http://example.com/blog/wp-cron.php adresini arar
. Ancak, bazı sunucular bunu bir nedenle yapamazlar. Olası nedenler arasında:
- Sunucunun DNS'si yoktur ve bu nedenle kendisi olmasına rağmen "example.com" un kim olduğunu anlayamaz .
- Yanlış yönlendirilmiş bir güvenlik denemesinde sunucu yöneticileri "geri döngü" isteklerini engelledi, bu yüzden kendi kendine geri arama yapamaz.
- Sunucu "mod_security" veya benzeri bir şey çalıştırıyor, bu da beyin ölü yapılandırması nedeniyle çağrıyı aktif olarak engelliyor.
- Başka bir şey.
Mesele şu ki, web sunucunuz WordPress'in işini yapmasını engelleyen standart dışı bir şekilde yapılandırılmıştır. WordPress bunu düzeltemez.
Ancak, bu koşula sahipseniz, bir geçici çözüm vardır. Wp-config.php dosyanızdaki tanımlara şunu ekleyin:
define ('ALTERNATE_WP_CRON', doğru);
Bu alternatif yöntem, cronun çalışması gerektiğinde kullanıcıların tarayıcısının yeniden yönlendirilmesini sağlayan bir yönlendirme yaklaşımı kullanır, böylece cron bıraktıkları bağlantıda çalışmaya devam ederken hemen siteye geri dönerler. Bu yöntem bazen biraz iffy, bu yüzden varsayılan değil.
Kaynak: http://wordpress.org/support/topic/scheduled-posts-still-not-working-in-282#post-1175405
Bu harika ve ayrıntılı gönderide belirtildiği gibi, sunucu yapılandırmanız veya varsa ortam üzerinde herhangi bir kontrolünüz yoksa - bir çözüm
define ('ALTERNATE_WP_CRON', doğru);
wp-config.php dosyanızda.
allow_url_fopen
AÇIK olarak ayarlanmış mı?