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