как устранить странные ошибки 404 в wp-admin?

<p>я управляю сайтом wordpress с около 70 активными плагинами.</p><p>время от времени я получаю страницу со случайной ошибкой ("не найдено"), хотя я не проверял заголовки, чтобы увидеть, 404 ли это, на странице <code>/wp-admin/</code>, которая появляется из ниоткуда.</p><p>простая повторная попытка устраняет ошибку, однако это довольно неудобно, если ошибка происходит во время обновления плагина (из-за сбоя автореактивации). я думаю, что эта проблема связана с тем, что некоторые модули на панели инструментов иногда не загружаются.</p><p>учитывая <a href="http://technobabbl.es/about/">список плагинов, которые я установил</a> , кто-нибудь знает о проблемах с ними или между ними, которые могут вызвать эту проблему?</p><h3>правка:</h3><p>информация о хостинге: dreamhost; я думаю, что на сервере работает пользовательская сборка debian с apache httpd</p>

<p>у меня были проблемы в течение всего дня с 404 пропусками.</p><p>в любом случае, я только что закончил общаться с сотрудником службы технической поддержки dreamhost, который сказал мне, что учетная запись пользователя, с которой я работаю, выходит за пределы ограничений памяти процесса (все процессы), и именно это вызывает странные, казалось бы, проблемы, связанные с htaccess. я получал периодически возникающие ошибки 404 из файла htaccess, который вообще не должен был вызываться! это был мечта с домом с привидениями.</p><p>по-видимому, робот, убивающий процесс, который использует dreamhost, убьет веб-процесс в середине, а затем, по какой-то причине, (теперь зомби) apache фактически пытается завершить свою работу (изо всех сил, чтобы чисто выйти из безоблачного конца в подзапрос моя лучшая догадка). он выдает ошибку 500 в основной журнал http, но после этого он фактически запускает условие и правило перезаписи, которые никогда не должны запускаться (используя стандартный файл -f и каталог -d htaccess выше), - и не не пишите новую запись в журнале! новый (невидимый человек) запрос затем запускает индексный файл в последней строке файла htaccess</p><p>остерегайтесь ограничений ресурсов в основных учетных записях dreamhost! если вы выйдете за их пределы, и у вас есть htacess с линиями mod\_rewrite, вы увидите странные вещи, которые подходят только для ночи хэллоуина - невидимые люди, преследуемые 404! нежить! зомби-апач! htaccess движется сам по себе! хлоп!</p><p>надеюсь, это поможет вам избежать нескольких часов боли.</p>

<p>единственный способ отладки - отключить один плагин за раз, каждый раз пытаясь воспроизвести проблему, прежде чем отключить другой плагин. начните с плагинов, которые имеют какое-либо отношение к администрированию wp, затем перейдите к обычным плагинам тем, виджетам и тому подобному.</p><p>проверьте страницу "не найдено", которая вам лучше обслуживается (перейдите в opera и откройте панель "информация", которая покажет вам заголовки, альтернативно просмотрите firefox и включите firebug с включенной панелью "сеть") и выполните поиск по всем ваши плагины, чтобы увидеть, могут ли они обслуживать его напрямую. если нет, взгляните на журнал веб-сервера, чтобы узнать, какой именно ресурс он не может обслуживать; плагин может выполнять какую-то причудливую переадресацию или переписывание, поэтому не обязательно url, который вы видите в своем браузере, вызывает 404.</p>

<p>я могу рассказать только о своем собственном опыте, и до сих пор я не нашел "определенного" правила, которое бы решало<em> все </em>проблемы одним махом.</p><p>основная проблема с настройкой dreamhost заключается в том, что в вечной борьбе за поддержание минимального потребления памяти это означает избавление от как можно большего числа функций, а именно всего, что уменьшит пропускную способность (хорошо для посетителей!) или цп (хорошо). для сервера, но dreamhost не контролирует потребление ресурсов процессора так агрессивно, как они контролируют оперативную память). например, это означает избавление от gzip'а html + css (который будет использовать cpu + ram) или любого из нескольких плагинов minify (которые также будут использовать ram). чем сложнее кеш (мне нравится использовать w3 total cache или, по крайней мере, wp super cache), тем больше будет потребляться ram.</p><p>точно так же многие плагины, которые ограничивают количество запросов mysql для повышения производительности, вместо этого потребляют оперативную память. поэтому найти компромисс, при котором вы все равно сможете поддерживать хороший отклик на своем сайте, не тратя драгоценное время ram, - трудная задача!</p><p>пока что мои лучшие результаты на загруженных сайтах - это снять флажок page speed optimization и extra web security, которые, очевидно, потребляют много оперативной памяти, и вместо этого полагаться на комбинацию с w3 total cache и cloudflare (бесплатный сервис обратного прокси-сервера). cloudflare будет выполнять те же действия, что и модуль "extra web security", но, поскольку он работает за пределами dreamhost, все в порядке. w3 total cache занимает много памяти, но как только страницы статически хранятся локально, cloudflare очень эффективно их кеширует - так что вы можете получить 404/500 при редактировании сообщений, по крайней мере ваши посетители их не увидят (cloudflare также может обслуживать статические страницы даже если dreamhost дает 404 или 500).</p><p>кроме того, благодаря <a href="http://boomshadow.net/tech/php-handlers/">этой статье</a> , я обнаружил, что fastcgi использует больше ram, чем "обычный" cgi. а поскольку php 5.3 лучше справляется с управлением ram (более агрессивная сборка мусора, меньше утечек памяти), я экспериментально переключился на php 5.3 cgi (не fastcgi) без оптимизации скорости страницы и extra web security, полагаясь на w3 total cache + cloudflare для ускорения работы сайта. теперь бэк-офис работает медленнее (больше потребляет процессор!), но, по крайней мере, я не вижу 404/500 (пока!).</p><p>я все еще недоволен этой комбинацией, поэтому я непременно продолжу настраивать настройки dreamhost, надеясь еще больше уменьшить потребление ram и все же получить адекватную производительность. как сказал @dgw, я также использую много плагинов - потому что мне требуется их функциональность. не у всех, кто размещает wp с dreamhost, есть простые потребности в блогах; чем сложнее сайт, тем больше функциональности он потребует ... и в этом прелесть wordpress, вам просто нужно использовать действительно нужные плагины и поддерживать простую установку ядра wp, если вы довольны мало потребностей. однако плагины не обязательно являются "плохими" или слишком тяжелыми на сайте; но это правда, что некоторые могут потреблять много оперативной памяти ...</p>

<p>это просто грубая идея: если вы получаете "настоящую" ошибку 404 (с установленными заголовками), то вы можете искать в своих плагинах и искать функцию <a href="http://www.php.net/manual/en/function.header.php">php <code>header()</code></a> и число 404 , это может уменьшить количество плагинов с 70 до нескольких. тогда вам нужно только проверить это.</p><p>это легко сделать с помощью ide, подобного eclipse pdt, который предлагает поиск определенной функции php.</p><p>рядом с этим, но без гарантии того, что он успешно работает, стоит написать плагин, который подключается к настройке заголовка, а затем дает вам проследить, какой код на самом деле устанавливает потенциал 404 (обратная трассировка). это будет работать только если плагин использует функцию api wordpress. первый способ поиска функции php будет работать независимо от api wp.</p>

<p>требуется больше информации:</p><p>1) почему так много плагинов?</p><p>2) какую ос использует ваш хостинг-провайдер?</p><p>3) какой веб-сервер?</p><p>4) есть ли у вас доступ к журналам сервера httpd, особенно к журналам ошибок?</p><p>5) что говорят журналы ошибок в сроки, связанные с этими проблемами?</p><p>(теперь, по правде говоря, если мы обобщаем для "среднего j6p, на котором работает wordpress, может возникнуть именно этот вопрос, мы могли бы начать с того, что указали бы указанному j6p ответить по крайней мере на 5 вопросов ...")</p>