Отсутствует временная папка несмотря на настройки в wp-config.php

12 окт. 2014 г., 22:53:15
Просмотры: 45.5K
Голосов: 4

При попытке загрузить медиафайлы в WordPress 4.0, работающий на shared-хостинге с Apache 2.2.14 и PHP 5.3.2, я получаю сообщение об ошибке "Missing a temporary folder" (Отсутствует временная папка). У меня нет доступа к php.ini, который глобально управляется хостингом и находится вне моей папки html.

Я установил WP_TEMP_DIR в wp-config.php. Вот соответствующая часть этого файла:

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
define('WP_TEMP_DIR', ABSPATH . 'wp-content/temp/');

Я также пробовал другие варианты, такие как:

define('WP_TEMP_DIR', '/www/wp-content/temp/'); // абсолютный путь

и:

define('WP_TEMP_DIR', 'wp-content/temp/');

Обратите внимание, что обе папки wp-content и wp-content/temp имеют права доступа 777.

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

Итак, мои вопросы:

  1. Должны ли изменения в wp-config.php иметь немедленный эффект?
  2. Как я могу получить больше информации в WordPress, кроме сообщения об ошибке в админ-панели? Как можно отладить эту ошибку?
  3. Есть ли у вас другие идеи о том, что вызывает эту проблему и как её решить в моей среде shared-хостинга (без консоли, только FTP и админка WordPress)?
2
Комментарии

У вас включена отладка? Если да, то что вы видите?

s_ha_dum s_ha_dum
13 окт. 2014 г. 02:32:27

Моя проблема была решена с помощью этой статьи. Попробуйте этот способ, если столкнулись с такой же проблемой.

Sam Sam
13 дек. 2014 г. 17:50:26
Все ответы на вопрос 3
1
10

попробуйте использовать

get_temp_dir() 

чтобы проверить, использует ли WordPress вашу константу WP_TEMP_DIR.

я протестировал этот код в wp-config.php, и он работает:

define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');

но его нужно разместить перед строкой:

/* That's all, stop editing! Happy blogging. */

в вашем файле wp-config.php.

13 окт. 2014 г. 05:03:05
Комментарии

Работает отлично на сервере MediaTemple grid

Brian Fegter Brian Fegter
15 апр. 2016 г. 19:13:39
1

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

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

13 окт. 2014 г. 06:09:10
Комментарии

Очень полезный ответ, с нюансами, которые я не смог найти через Google. Однако мое решение оказалось довольно простым, поэтому пришлось выбрать собственный ответ.

mcbetz mcbetz
13 окт. 2014 г. 12:41:32
0

Сама настройка в порядке. Проблема может быть в правах доступа. Измените права рекурсивно для папки wp-content на 777. Это может вызвать проблемы с безопасностью, поэтому важно следить за тем, кто имеет доступ и возможность записи файлов в эту директорию.

Возможно, также потребуется изменить права для папок wp-admin и wp-includes на 777. Обратите внимание, что это не рекомендуется.

В моем случае, после установки прав для всех трех папок, загрузки снова заработали.

13 окт. 2014 г. 12:45:06