Проблема WordPress, вызывающая массивные журналы ошибок

У меня проблема, из-за которой журналы ошибок растут массово каждый день.

[Thu Jan 30 08:55:55 2014] [warn] [client 2.102.44.72] mod_fcgid: stderr: PHP Warning: is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/www/vhosts/inspartnership.org.uk/:/tmp/) in /var/www/vhosts/inspartnership.org.uk/httpdocs/wp-includes/functions.php on line 1366

(Я знаю, что это старый журнал, но ошибка не изменилась).

и это линия нарушения в WordPress functions.php

 $target_parent = dirname( $target ); while ( '.' != $target_parent && ! is_dir( $target_parent ) ) { $target_parent = dirname( $target_parent ); } 

Теперь сайт функционирует нормально (пока журналы не станут слишком большими, а затем я получу ошибку 500) – и я получаю то, что происходит, чтобы вызвать проблему – сайт находится на общедоступном хостинге и пытается получить доступ к папке за пределами ее досягаемости – Я просто не знаю, как это исправить, и, честно говоря, не знаю с чего начать!

Кто-нибудь сталкивался с этой проблемой раньше и может указать мне в правильном направлении.

И может ли кто-нибудь помочь мне определить, какую часть WordPress можно было бы называть этой функцией достаточно часто, чтобы сделать такой массивный журнал

Используйте простые слова – я немного толстый: -D

заранее спасибо

php open_basedir – это конфигурация хоста; это не ошибка или проблема с ядром WordPress.

1) Попросите своего хоста отключить php safe_mode . Запуск safe_mode on бесполезен.

См. http://www.php.net/manual/en/features.safe-mode.php

2) Получить путь к каталогу tmp с веб-узла. Отредактируйте файл wp-config.php и добавьте эту строку:

define('WP_TEMP_DIR','../../relative/path/to/tmp');

3) Найдите нового хоста.

Вы находитесь на общедоступном хостинге. Следовательно, вы не можете получить доступ ко всему серверу. В соответствии с вашим журналом, это допустимый путь для вашего сайта /var/www/vhosts/inspartnership.org.uk/ /tmp/ и вы пытаетесь получить доступ к каталогу, что приводит к возникновению проблемы.

Вы можете использовать эти встроенные функции wordpress, чтобы решить эту проблему.

Для Темы

http://codex.wordpress.org/Theme_Development#Anatomy_of_a_Theme

Для плагинов

Файлы и местоположения плагинов

Немного другого справочного вопроса

Получить корневой каталог WordPress?

Очевидно, что базовый путь $ target является «ниже» допустимого базового пути для пользователя, который запускает экземпляр php. Согласно лог-файлу, допустимыми адресами являются «/ tmp /» и «/var/www/vhosts/inspartnership.org.uk/». Я предполагаю, что в вашей установке WP отсутствует какая-то конфигурация. Скорее всего, это всего лишь локализация временных файлов. Вы недавно переместили свой сайт на другой сервер? Просто посмотрите настройки в «wp-config.php», если они по-прежнему соответствуют местоположениям вашей текущей серверной среды.

Это может произойти, когда путь загрузки был изменен в каталог за пределами домашнего каталога вашего веб-сайта, я видел его несколько раз; обычно, когда люди добавили косую черту в начале пути. Такая настройка может не вызвать никаких проблем до тех пор, пока не будет изменен путь к домашнему каталогу в учетной записи хостинга, например, когда сайт перенесен или когда хостинг-сервис изменит путь.

Он может создавать огромные файлы журналов, которые иногда исчерпывают дисковое пространство на всем сервере, что приводит к сбою нескольких веб-сайтов.

Параметр upload_path можно найти в настройках -> Мультимедиа под меткой «Хранить загрузки в этой папке». Примечание: с версии 3.5 опция скрыта, если у вас уже не был путь по умолчанию (ничего, кроме wp-content / uploads).

Если по какой-либо причине вы не можете получить доступ к администратору WordPress, но у вас есть доступ к базе данных, просто удалите значение для каталога upload_path в таблице wp_options.

Вы можете найти строку в phpMyAdmin с запросом:

 SELECT * FROM `wp_options` where option_name = 'upload_path' 

Оттуда вы можете щелкнуть в поле option_value и отредактировать его, а затем просто щелкнуть за пределами поля, чтобы сохранить изменения.

скриншот phpMyAdmin

Возможно, вы уже решили проблему, но для будущей ссылки я хотел бы добавить это здесь, так как ни один из предлагаемых решений не работал для меня.

Я испытывал такое же увеличение error_log, почти мгновенно съедая все пространство на моем VPS.

Потребовалось немного времени, чтобы найти источник проблемы, так как это не происходило все время. В моем случае это не проблема safe_mode, а также обновление wp-config для установки временного каталога: проблема заключалась в том, что сайт WordPress был первоначально сайтом blogger, а затем перенесен в WordPress. Некоторые из сообщений имели строки wp_postmeta, все еще ссылающиеся на сайт blogger … Эти строки содержали путь, который мы (очевидно) находились за пределами допустимых путей. Удалив строки wp_postmeta для сообщений, которые вызвали ошибки «open_basedir», устранили проблему, и с тех пор я не видел ошибки.