Bir WordPress Sitesini Düzeltmek için 4 İpucu
Yayınlanan: 2020-09-03Birkaç gün önce bir arkadaşım aradı ve bana eski bir WordPress projesini sürdürme görevinin verildiğini söyledi. Görünüşe göre web sitesi üç yıldan fazla bir süredir güncellenmemişti ve her yerde sorunlar vardı. Zavallı adam tamamen sıkıştı, çünkü orada hiçbir şeyi güncelleyemedi: eklentiler, tema, içerik… hiçbir şey işe yaramadı. Tüm eylemler (siteye göz atmak dışında) WordPress'in çökmesine ve bir hata döndürmesine neden oldu.
Sürekli olarak hatalar üreten ve güncellenemeyen kullanılamaz bir WordPress'imiz olduğunda, yapmamız gereken ilk şey neden böyle davrandığını belirlemektir. Yani, suçluyu bulmamız gerekiyor. Genellikle, bir WordPress sitesinde karşılaşabileceğiniz sorunlar, temanız veya eklentilerinizden biri (veya daha fazlası) nedeniyle oluşur.
Bunu göz önünde bulundurarak, bir WordPress sitesini düzeltmenin olağan prosedürü, rahatsız edici eklentiyi belirlemek, denklemden çıkarmak, her şeyi güncellemek ve son olarak, kusurlu eklentiyi web sitemize yeniden yükleyip güncelleyemeyeceğimize bakmaktır. değiştirme. Bugün size bir web sitesinin neden başarısız olduğunu keşfetmeniz ve böylece onu düzeltebilmeniz için dört basit numara anlatacağım.
Sunucumuzun Hata Günlüğünü Kullanma
Web sitemizdeki hatalara neden olanın bir eklenti olduğu hipotezini varsayarsak, yapmamız gereken ilk şey, söz konusu hipotezi doğrulamaktır. Bunu yapmak için farklı formüller var. Şahsen, cPanel'de kendi seçeneği olan sunucumun hata günlüğüne bakarak başlamak istiyorum:

Umarım, hata günlüğü sadece web sitemizde meydana gelen hataların izini değil, aynı zamanda "nerede" meydana geldiğine ve dolayısıyla suçlunun kim olduğuna ilişkin bilgileri de içerir. Örneğin, geçen hafta geliştirme ortamımın hata günlüğünde aşağıdaki sorunla karşılaştım:
appserver_1 | [Mon Aug 24 09:18:20.977541 2020] [php7:notice] [pid 1107] [client 172.20.0.2:34396] PHP Notice: register_rest_route was called <strong>incorrectly</strong>. The REST API route definition for <code>yoast/v1/get_head</code> is missing the required <code>permission_callback</code> argument. For REST API routes that are intended to be public, use <code>__return_true</code> as the permission callback. Please see <a href="https://wordpress.org/support/article/debugging-in-wordpress/">Debugg ing in WordPress</a> for more information. (This message was added in version 5.5.0.) in /app/.lando/wordpress/wp-includes/functions.php on line 5225, referer: http://nab5.lndo.site/wp-admin/edit.php Günlük, WordPress'in kendi dosyalarından birinde ( wp-includes/functions.php ) meydana gelen ve bize "suçlunun bir eklenti olduğu" hakkında hiçbir şey söylemeyen bir PHP uyarısı bildiriyor. Şans eseri, mesajın tamamını okursanız, neyin başarısız olduğunu (yani register_rest_route işlevine yapılan bir çağrı) açıkladığını ve bize neyin yanlış olabileceğine dair bir ipucu verdiğini göreceksiniz: Yoast (“ yoast/v1/get_head ”den nasıl bahsettiğine bakın) ?).
Hata günlükleri, bir şeyin ne zaman/yanlış olduğunu ve yanlışsa, bir hatanın arkasındaki nedeni hızlı bir şekilde bulmanın en kolay yoludur. Bu özel örnekte Yoast ile ilgili bir sorunum olduğunu öğrendim ve tek yapmam gereken eklentiyi en son sürümüne güncellemekti.
Eklentileri WordPress Kontrol Panelinden Devre Dışı Bırakma
Ne yazık ki, işlerin ne zaman kötüye gittiğini öğrenmek için bir web sitesinin hata günlüğüne erişmek her zaman mümkün değildir. Veya günlüğe erişiminiz varsa, eksik olabilir. Bu durumlarda, ilk hipotezimizi doğrulamak (veya çürütmek) için alternatif formüllere ihtiyacımız var.
Web sitemizin hatalı bir eklenti nedeniyle başarısız olduğunu varsayarsak, yapılacak en kolay şey tüm eklentileri devre dışı bırakmak ve hatanın devam edip etmediğini kontrol etmektir. Olmazsa, suçlu bir eklentiydi; devam ederse sorun başka yerdedir.
Bunu yapmak için WordPress Kontrol Paneli » Eklentiler bölümüne gidin, tüm etkin eklentilerinizi seçin ve toplu olarak Devre Dışı Bırakın:

ve hatanın devam edip etmediğini kontrol edin. Olmazsa, sorunun az önce devre dışı bıraktığınız eklentilerden birinden kaynaklandığını biliyorsunuzdur. Şimdi tam olarak hangisi olduğunu keşfetme zamanı.
Hatalı eklentiyi belirlemek için bunları tek tek etkinleştirebilir ve hatanın tekrar ortaya çıkıp çıkmadığını kontrol edebilirsiniz. Veya daha hızlı gitmek istiyorsanız aşağıdaki adımları uygulayabilirsiniz:
- Eklentilerinizin yarısını etkinleştirin.
- Hata yeniden ortaya çıkarsa, suçlu az önce etkinleştirdiğiniz yarıdadır, böylece diğer yarıyı güvenle etkinleştirebilirsiniz.
- Hata görünmüyorsa, suçlu diğer yarısındadır.
- Hatalı eklentinin hangi "grupta" olduğunu öğrendikten sonra, yalnızca buna odaklanmanız ve işlemi tekrarlamanız gerekir. Bu grubun yarısını etkinleştirin ve diğer yarısını devre dışı bırakın (yani şimdi toplamın dörtte birini kontrol ediyor olacaksınız) ve web sitenizin düzgün çalışıp çalışmadığına bakın.
- Suçluyu bulana kadar işlemi tekrarlayın.
Hangi eklentinin başarısız olduğunu öğrendikten sonra, sorunu nasıl çözeceğiniz size kalmış. Geliştiriciyle iletişime geçmeniz, eklentiyi kendiniz düzeltmeye çalışmanız veya hatta onu bir alternatifle değiştirmeyi düşünmeniz gerekebilir. Ama en azından artık sorundan kurtulmak için ne yapmanız gerektiğini biliyorsunuz.

Aktif Eklentiler Listenizi Yedekleyin
Arkadaşımı en başından hatırlıyor musun? Web sitesini araştırırken, önceki tüm adımları izledik ve web sitesindeki tüm eklentileri devre dışı bıraktık…
...beyaz bir ölüm ekranıyla sonuçlandı!

Görünüşe göre web, birçok çapraz bağımlılığa sahip özel eklentiler ve tema ince ayarlarıyla doluydu. Eklentileri devre dışı bırakarak, temanın dayandığı bazı işlevler artık kullanılamıyordu ve bu da önemli bir hatayı tetikledi. Bu açıkça kötü bir uygulamadır: Bir tema, aktif olan bir eklentiye güvenemez . Belirli bir eklenti tarafından sağlanan bazı özelliklere ihtiyacı varsa, kullanılabilir olup olmadıklarını doğrulamak için güvenlik kontrolleri uygulamalıdır.
Her neyse, olay şu ki site tamamen kapatıldı ve Pano'yu kullanarak eklentileri yeniden etkinleştiremedik. Peki buradaki çözüm nedir? Pekala, yeni başlayanlar için, her zaman web sitenizin bir yedeğini almalısınız… ama bu özel durumda, elinizde daha kolay ve daha hızlı bir çözüm var.
WordPress veritabanınızda wp_options adında bir tablo var. Orada active_plugins adlı bir seçenek bulacaksınız. Değeri, tüm aktif eklentileri içeren bir dizidir. Bu nedenle, daha önce bahsettiğim toplu işlemi kullanarak eklentileri devre dışı bırakmadan önce, bu değeri bir metin dosyasına kaydetmeniz yeterlidir:

Bu şekilde, "tüm eklentileri devre dışı bırakmak" olası olmayan (ama imkansız olmayan) bir WSOD ile sonuçlanırsa, veritabanındaki active_plugins seçeneğini geri yükleyerek tüm eklentileri yeniden etkinleştirebilirsiniz.
FTP ile Eklentiler Nasıl Devre Dışı Bırakılır
Sorununuzun belirli bir eklenti tarafından oluşturulduğunu biliyorsanız ancak bunu WordPress panosundan devre dışı bırakmanın bir yolu yoksa, FTP aracılığıyla güvenli bir şekilde yapabilirsiniz.
Bildiğiniz gibi, eklentiler bir dizi dosyadan başka bir şey değildir. Web sitenize yeni bir eklenti yüklediğinizde, kodu WordPress'in wp-content/plugins klasörüne düşer. Bu bilgiden yararlanarak eklentiyi söz konusu klasörden “kaldırarak” devre dışı bırakabiliriz.
Sunucunuzun cPanel'ine gidin ve FTP seçeneğini arayın:

Ardından, FTP dosya gezginini kullanarak wp-content/plugins klasörünü bulun ve eklentinizi bulun:

Şimdi tek yapmanız gereken eklentiyi silmek veya WordPress'in bulamaması için klasörünü yeniden adlandırmak. Bu şekilde, WordPress sitenize giriş yaparsanız, WordPress artık eklentiyi göremeyecek ve hatalı kodunu yükleyemeyecek, böylece yaşadığınız sorunu çözecektir.
Varsayılan Tema Kullan
Son olarak, soruna eklentilerinizden birinin neden olduğu hipotezi doğru değilse, bir sonraki adım, suçlunun temanız olduğunu varsaymaktır. Bu durumda tek yapmanız gereken varsayılan bir WordPress teması (Yirmi Yirmi gibi) yüklemek ve sorunun ortadan kalkıp kalkmadığını görmek. Kaybolursa, orijinal temanızda bir sorun olduğunu zaten biliyorsunuzdur; değilse, bu farklı bir gönderide tartışmamız gereken bir şey.
Herhangi bir nedenle WordPress panosuna erişiminiz yoksa, FTP ( wp-content/themes ) yoluyla yükleyerek web sitenize yeni bir tema yükleyebilir ve veritabanını kullanarak etkin temayı değiştirebilirsiniz: wp_options içindeki seçenekler template ve stylesheet . Örneğin, yüklediğiniz temanın bu olduğunu varsayarak her iki seçeneği de twentytwenty olarak ayarlamak isteyebilirsiniz.
Özetle
Vanilya bir WordPress'in (eklentiler ve özel bir tema olmadan) başarısız olması pek olası değildir. Bu nedenle, web sitenizde sorun yaşıyorsanız, suçlu büyük olasılıkla eklentilerinizden veya temanızdan biridir. Bugünkü gönderide, suçluyu bulmak, onu ortadan kaldırmak ve web sitesini kurtarmak için farklı formüller gördük. Umarım bu numaralardan herhangi birini kullanmanıza gerek yoktur… ama yaparsanız, umarım yardımcı olurlar.
Arkadaşımın web sitesi ne olacak? Bilmiyorum, bazıları onun kariyer değiştirdiğini söylüyor…
Unsplash'ta Olia Nayda'nın öne çıkan görseli.
