Bagaimana cara menghilangkan 404 kesalahan aneh di wp-admin?

8

Saya menjalankan situs WordPress dengan sekitar 70 plugin aktif.

Sering kali, saya akan mendapatkan halaman kesalahan acak ("Tidak Ditemukan", meskipun saya belum memeriksa header untuk melihat apakah itu 404) pada /wp-admin/halaman yang muncul entah dari mana.

Cukup mencoba lagi menyelesaikan kesalahan, namun cukup merepotkan jika kesalahan terjadi selama peningkatan plugin (karena reaktivasi otomatis gagal). Saya pikir masalah yang sama ini bertanggung jawab atas modul-modul tertentu di Dasbor saya gagal memuat kadang-kadang.

Dengan daftar plugin yang saya pasang , apakah ada yang tahu masalah dengan atau di antara mereka yang mungkin menyebabkan masalah ini?

Edit:

Info hosting: DreamHost; Saya pikir server menjalankan pembangunan Debian khusus dengan Apache httpd

dgw
sumber
1
Bukan untuk menjadi PITA tetapi ini benar-benar masalah dukungan dan bukan sesuatu yang akan kami bahas di sini; Saya akan memilih untuk menutup. Bertanyalah di http://wordpress.org/support sebagai gantinya. Jika Anda melakukan beberapa pengujian dan mempersempit pertanyaan Anda agar dapat diterapkan pada lebih dari sekadar situasi Anda, itu mungkin membuat pertanyaan yang dapat diterima di sini. Sekali lagi, maaf menjadi seperti ini tetapi kami Jawaban WordPress harus berlaku untuk semua pengguna dan banyak permintaan dukungan akan mematikan itu.
MikeSchinkel
Saya setuju jadi saya akan memilih untuk menutup juga.
Ben Everard
1
Sepakat. Voting untuk ditutup terlalu terlokalisasi.
John P Bloch
2
Saya memilih untuk tidak menutup. Banyak orang yang baru mengenal WP mungkin menemukan 404 kesalahan dalam WP-Admin, dan akhirnya itu muncul karena bug dalam plugin atau tema, atau efeknya mungkin pada aturan penulisan ulang (baik disimpan dalam database di wp-options atau di. file htaccess). Apa yang harus kita lakukan, sebaliknya, adalah menyediakan langkah pemecahan masalah umum yang dapat dilakukan seseorang untuk mengidentifikasi area masalah lebih cepat.
Volomike
Yah, bahkan ini cenderung menjadi pertanyaan dukungan, ia memiliki cukup info untuk setidaknya menyarankan beberapa cara untuk menyelesaikan masalah dengan cepat.
hakre

Jawaban:

6

Saya mengalami masalah sepanjang hari dengan apa yang tampak sebagai 404 misfirings.

Lagi pula, saya baru saja selesai mengobrol dengan orang dukungan teknis dreamhost yang mengatakan kepada saya bahwa akun pengguna yang saya miliki dengan mereka telah mencapai batas sumber daya proses memori (semua proses) dan itulah yang menyebabkan masalah aneh, yang tampaknya terkait masalah htaccess. saya mendapatkan 404 kesalahan intermiten dari file htaccess yang seharusnya tidak dipanggil sama sekali! itu adalah dreamhost dengan server rumah berhantu.

rupanya, proses membunuh robot yang digunakan oleh dreamhost akan membunuh proses web di tengah dan kemudian untuk beberapa alasan, apache (sekarang zombie) benar-benar mencoba untuk menyelesaikan pekerjaannya (melakukan yang terbaik untuk keluar dengan bersih dari akhir yang tidak berkilau ke subrequest adalah tebakan terbaik saya). itu melempar 500 kesalahan ke log http utama, tetapi setelah melakukannya, itu benar-benar melepaskan kondisi penulisan ulang dan aturan yang seharusnya tidak pernah dipecat (menggunakan file standar -f dan direktori -d file htaccess di atas) - dan itu tidak dapat menulis entri log baru! permintaan baru (orang tak terlihat) kemudian memicu file indeks di baris terakhir dari file htaccess

Waspadalah dengan batasan sumber daya di akun dasar dreamhost! jika Anda melampaui batas mereka, dan Anda memiliki htacess dengan garis mod_rewrite Anda akan melihat hal-hal aneh yang hanya cocok untuk malam halloween - pria tak terlihat, 404s berhantu! proses undead! apache zombie! htaccess bergerak sendiri! Astaga!

Semoga ini membantu Anda menghindari rasa sakit selama berjam-jam.


sumber
Saya pasti punya banyak mod_rewritehal di .htaccessfile saya . Kedengarannya seperti inilah yang terjadi padaku. Saya tahu saya mencapai batas memori dengan pekerjaan cadangan saya, tetapi tidak untuk permintaan "nyata". Terima kasih telah berbagi pengalaman Anda; semoga jawaban Anda akan menghemat banyak waktu orang.
dgw
Bukan hanya Dreamhost. Saya pindah dari Dreamhost ke server pribadi di tempat lain, dan saya masih memiliki masalah ini sepanjang waktu.
supertrue
4

Satu-satunya cara untuk men-debug ini adalah dengan menonaktifkan satu plugin pada satu waktu, setiap kali mencoba mereproduksi masalah sebelum Anda menonaktifkan plugin lainnya. Mulailah dengan plugin yang ada hubungannya dengan administrasi WP, kemudian pindah ke plugin tema biasa, widget dan semacamnya.

Periksa halaman "Tidak Ditemukan" bahwa Anda dilayani dengan lebih baik (jelajahi dengan Opera dan buka panel Info yang akan menampilkan tajuk, atau jelajahi dengan Firefox dan buat Firebug dengan panel "Net" diaktifkan) dan lakukan pencarian melalui semua plugin Anda untuk melihat apakah mereka mungkin menyajikannya secara langsung. Jika tidak, lihat log server web untuk mengetahui sumber daya pasti yang tidak dapat dilayani; sebuah plugin mungkin sedang melakukan pengalihan atau penulisan ulang yang mewah sehingga URL yang Anda lihat di browser Anda tidak menyebabkan 404.

Asbjørn Ulsberg
sumber
Pada 70 plugin, akan sangat rapi jika seseorang dapat menemukan cara untuk melakukan itu dengan sangat cepat tanpa harus secara manual menonaktifkan dan menguji masing-masing, seperti dengan file tester plugin.
Volomike
Saya melihat Anda telah mengedit jawaban asli Anda dengan tip yang bagus untuk menemukan jawabannya lebih cepat.
Volomike
Terima kasih, asbjornu. Saya akan melihat melakukan ini setelah saya kembali dari liburan dengan keluarga saya.
dgw
Saya melihat melalui log server dan tidak dapat menemukan sesuatu yang lebih spesifik daripada "Akhir dari header skrip". Kira itu tidak semudah itu ...
dgw
3

Saya hanya bisa menceritakan pengalaman saya sendiri, dan sejauh ini, saya belum menemukan aturan "pasti" untuk memperbaiki semua masalah dengan satu langkah.

Masalah utama dengan pengaturan DreamHost adalah bahwa, dalam perjuangan abadi untuk menjaga konsumsi memori seminimal mungkin, itu berarti menyingkirkan sebanyak mungkin fitur - yaitu, semua itu akan mengurangi bandwidth (baik untuk para pengunjung!) Atau CPU (bagus) untuk server, tetapi DreamHost tidak mengontrol konsumsi CPU seagresif mereka mengontrol RAM). Misalnya, ini berarti menyingkirkan HTML + CSS gzip'ed (yang akan menggunakan CPU + RAM) atau salah satu dari beberapa plugin Minify (yang akan mengkonsumsi RAM juga). Cache yang lebih canggih (Saya suka menggunakan W3 Total Cache, atau setidaknya WP Super Cache), semakin banyak RAM yang dikonsumsi.

Demikian pula, banyak plugin yang membatasi jumlah permintaan MySQL untuk meningkatkan kinerja, sebaliknya akan mengkonsumsi RAM. Jadi mencari trade-off di mana Anda masih bisa menjaga situs Anda membalas dengan kinerja yang baik sambil menghindari mengkonsumsi RAM yang berharga adalah tugas yang sulit!

Sejauh ini, hasil terbaik saya di situs yang sibuk adalah menghapus centang Pengoptimalan Kecepatan Halaman dan Keamanan Web Ekstra yang tampaknya akan mengkonsumsi banyak RAM, dan sebagai gantinya bergantung pada kombinasi dengan W3 Total Cache dan Cloudflare (layanan proxy reverse gratis). Cloudflare akan secara efektif melakukan hal yang sama dengan modul "Keamanan Web Ekstra", tetapi karena berjalan di luar DreamHost, tidak masalah. W3 Total Cache menghabiskan banyak memori, tetapi begitu halaman disimpan secara statis secara lokal, Cloudflare akan secara efisien menyimpannya - sehingga Anda mungkin mendapatkan 404/500 saat mengedit posting, setidaknya pengunjung Anda tidak akan mengalaminya (Cloudflare juga dapat melayani halaman statis bahkan jika DreamHost memberi 404 atau 500).

Juga, berkat artikel ini , saya telah mengetahui bahwa FastCGI menggunakan lebih banyak RAM daripada CGI 'normal'. Dan karena PHP 5.3 lebih baik dalam mengelola RAM (pengumpulan sampah yang lebih agresif, kebocoran memori lebih sedikit), saya secara eksperimental beralih ke PHP 5.3 CGI (bukan FastCGI) tanpa Optimasi Kecepatan Halaman atau Keamanan Web Ekstra, mengandalkan W3 Total Cache + Cloudflare untuk mempercepat situs. Sekarang backoffice lebih lambat (konsumsi CPU lebih banyak!) Tapi setidaknya saya tidak melihat 404/500 (sejauh ini!).

Saya masih tidak senang dengan kombinasinya, jadi saya pasti akan terus mengubah pengaturan DreamHost dengan harapan dapat mengurangi konsumsi RAM lebih banyak lagi dan masih mendapatkan kinerja yang memadai. Seperti kata @dgw, saya juga menggunakan banyak plugin - karena saya memerlukan fungsionalitasnya. Tidak semua orang yang meng-hosting WP dengan DreamHost memiliki kebutuhan blogging yang sederhana; semakin kompleks situsnya, semakin banyak fungsionalitas yang diperlukan ... dan itulah keindahan WordPress, Anda hanya perlu menggunakan plugin yang benar-benar Anda butuhkan, dan menjaga agar WP inti tetap sederhana jika Anda senang dengan sedikit kebutuhan. Namun, plugin tidak selalu "buruk" atau terlalu berat di situs; tetapi memang benar bahwa beberapa mungkin mengkonsumsi banyak RAM ...

Gwyneth Llewelyn
sumber
3

Ini hanya ide kasar: Jika Anda mendapatkan kesalahan 404 "nyata" (dengan set header), maka Anda dapat mencari melalui plugin Anda dan mencari fungsi PHPheader() dan nomor 404. Ini dapat menelusuri jumlah plugin dari 70 hingga beberapa saja. Maka Anda hanya perlu memeriksa itu.

Ini dapat dengan mudah dilakukan dengan IDE seperti Eclipse PDT yang menawarkan pencarian untuk panggilan fungsi PHP tertentu.

Di sebelahnya tetapi tanpa jaminan bahwa itu berhasil, adalah menulis sebuah plugin yang menghubungkan ke pengaturan header dan kemudian memberi Anda melacak kode mana yang sebenarnya mengatur potensi 404 (backtrace). Ini hanya akan berfungsi jika plugin menggunakan fungsi WordPress API. Metode pertama untuk mencari fungsi PHP akan berfungsi terlepas dari WP API.

hakre
sumber
Ini kedengarannya menjanjikan. Sesuatu yang lain untuk dilihat setelah liburan saya. :)
dgw
Saya berhasil melakukan beberapa mencari sementara masih di luar kota, dan hanya menemukan bahwa plugin cadangan saya tampaknya meminta untuk menghasilkan 404. Firebug menunjukkan bahwa itu benar-benar 404. Beberapa kemajuan ... Namun saya sekarang mengalami kesulitan memicu masalah, jadi saya kira saya akan istirahat. Saya benci bug yang intermiten!
dgw
2

Informasi lebih lanjut diperlukan:

1) Mengapa banyak sekali plugin?

2) OS apa yang dijalankan penyedia hosting Anda?

3) Server web apa?

4) Apakah Anda memiliki akses ke log server httpd, terutama log kesalahan?

5) Apa yang dikatakan oleh log kesalahan dalam kerangka waktu yang mengelilingi masalah ini?

(Sekarang, sejujurnya, jika kita menggeneralisasi untuk "rata-rata J6P menjalankan WordPress mungkin memiliki pertanyaan yang tepat ini, kita bisa mulai dengan mengarahkan kata J6P untuk menjawab setidaknya 5 pertanyaan di atas ...)

ZaMoose
sumber
Saya memiliki semua plugin itu karena saya menggunakan fungsi yang mereka layani; kenapa lagi Log kesalahan tidak banyak bicara sama sekali. Saya menggunakan DreamHost, jadi saya pikir server menjalankan custom Debian build dengan Apache httpd.
dgw
Sekarang setelah Anda menyebutkannya, saya juga melihat kesalahan acak di situs DH saya juga. Ini khususnya terjadi ketika saya mencoba untuk melakukan peningkatan Jaringan di instalasi MS saya dan menjalankan importir. Aneh.
ZaMoose