it-swarm.com.ru

Ошибка в phpMyAdmin после обновления до v4.8.0: $ cfg ['TempDir'] (./tmp/) недоступен

phpMyAdmin отлично работал с v4.7.9. Теперь после обновления до v4.8.0 сегодня (заменив старую папку phpmyadmin на новую), я получаю это сообщение в phpMyAdmin:

$ Cfg ['TempDir'] (./tmp/) недоступен. phpMyAdmin не может кэшировать шаблоны и будет медленным из-за этого.

Я добавил папку ./tmp/ примерно так: /usr/share/tmp

phpMyAdmin включен: /usr/share/phpmyadmin

Это ничего не изменило.

Кто знает эту ошибку? Что я могу сделать?

22
David

Решением было создать папку с именем tmp, например: /usr/share/phpmyadmin/tmp.

Также убедитесь, что пользователь (или группа), на котором запущен веб-сервер (например, Apache), имеет доступ на запись во вновь созданную папку tmp. Следовательно, измените владельца на этого пользователя или добавьте права на запись для всех пользователей. Последний не может быть действительно целесообразным.

38
David

У меня была такая же проблема в Ubuntu 18.04, когда я заменил версию phpMyAdmin из репозитория пакетов (v4.6.6) на последнюю версию (4.8.0). Я не знаю, работаете ли вы на Ubuntu, но, возможно, мой ответ будет полезен вам (или другим), которые сталкиваются с чем-то подобным.

Я поместил новую версию в стандартное место, /usr/share/phpmyadmin/, но установка PMA в Ubuntu помещает некоторые параметры конфигурации в другие места (см. /etc/phpmyadmin/ и /var/lib/phpmyadmin/). Я нашел эту настройку в /etc/phpmyadmin/Apache.conf:

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

и достаточно уверен, что каталог был создан и имел соответствующие разрешения. Желая максимально приблизиться к настройкам установки пакета, я внес это изменение в /usr/share/phpmyadmin/libraries/vendor_config.php и указал прямо на эту папку:

//define('TEMP_DIR', './tmp/');
define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

Этот параметр выбирается /usr/share/phpmyadmin/libraries/config.default.php (который вы не должны редактировать) для установки $cfg['TempDir'].

11
wevrem

В моем случае я добавил

$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';

к 

config.inc.php Файл в папке phpmyadmin

Надеюсь, это поможет кому-то

9
Ishimwe Aubain Consolateur

простое решение - создать tmp dir в вашем phpmyadmin dir и установить разрешение 777 

mkdir tmp && chmod 777 tmp

затем

обновите файл config.inc.php и добавьте эту строку

$cfg['TempDir'] = 'tmp';
6
user889030

Создайте папку tmp в базовом каталоге установки phpMyAdmin (например, /usr/share/phpmyadmin/tmp) и убедитесь, что она доступна для записи пользователю, под которым работает PHP.

5
jormaster3k

В моем случае [MacOs El Capitán/portuguese], сообщение было:

The $cfg['TempDir'] (./temp/) is not accessible

Мое решение, в xamppfiles/phpmyadmin/config.inc.php:

$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';

То есть я просто добавил точку к пути ... работа в порядке.

1
Carlos Freire

Создайте временный каталог, принадлежащий и доступный только пользователю веб-сервера. Не размещайте not внутри корня phpMyAdmin. (В этом примере веб-сервер работает как Apache):

mkdir -p /var/tmp/phpMyAdmin
chown Apache:apache /var/tmp/phpMyAdmin
chmod 700 /var/tmp/phpMyAdmin

Затем установите TempDir внутри config.inc.php в phpMyAdmin's:

$cfg['TempDir'] = '/var/tmp/phpMyAdmin';

Любой ответ, предлагающий создать /usr/share/phpmyadmin/tmp, защищает плохую практику безопасности. Как правило, это верно для временных каталогов, и явно указано в официальной документации phpMyAdmin :

По соображениям безопасности все каталоги должны быть вне дерева опубликовано веб-сервером.

1
rsanden

У меня была похожая проблема с каталогом "temp". Решением было изменить владельца и группу каталога «twig» (внутри «temp») на «Apache» (как владельца, так и группы)

1
Ari

ну, в моем случае эта ошибка произошла, когда я использовал Ubuntu 18.04 ... Все, что вам нужно, это перейти в каталог установки (в Ubuntu - opt/lampp/phpmyadmin) и создать папку tmp со всеми подходящие разрешения на чтение/запись.

Выполните следующие действия в случае Ubuntu-

1. Перейдите в каталог установки PMA, введя следующие команды в cmd- 

cd opt/lampp/phpmyadmin

2. Затем введите следующую команду: 

Sudo Mkdir TMP && CHMOD 777 TMP

и тогда вы закончите .. !! Я надеюсь, что это помогает ..

1
Nakshtra Pradhan

Из документации phpMyAdmin:

$cfg['TempDir']
    Type:   string
    Default value:  './tmp/'

Имя каталога, в котором могут храниться временные файлы . В настоящее время используется для нескольких целей:

Кеш шаблонов, который ускоряет загрузку страниц . Импорт шейп-файлов ESRI, см. 6.30 Импорт: Как импортировать шейп-файлы ESRI ?.

Чтобы обойти ограничения open_basedir для загружаемых файлов, см. 1.11. Я получаю «ограничение open_basedir» при загрузке файла со вкладки импорта.

Этот каталог должен иметь как можно более строгие разрешения, поскольку для доступа к этому каталогу требуется только тот, кто запускает веб-сервер. Если у вас есть привилегии root, просто сделайте этого пользователя владельцем этого каталога и сделайте его доступным только для него:

chown www-data:www-data tmp
chmod 700 tmp

Если вы не можете изменить владельца каталога, вы можете выполнить аналогичную настройку, используя ACL:

chmod 700 tmp
setfacl -m "g:www-data:rwx" tmp
setfacl -d -m "g:www-data:rwx" tmp

Если ни один из вышеперечисленных вариантов не подходит для вас, вы все равно можете создать каталог chmod 777, но это может создать риск для других пользователей при чтении и записи данных в этом каталоге.

1
Geraldo Freitas

1) создать папку tmp

mkdir /usr/share/phpmyadmin/tmp

2) узнай своего пользователя php

<?php echo `whoami`; ?>

3) Смена владельца папки tmp на пользователя php, найденного на шаге 2

Sudo chown -R step2phpuser:step2phpuser /usr/share/phpmyadmin/tmp

4) Выйдите из phpmyadmin и войдите снова

1
Kareem

просто зайдите в папку phpmyadmin и вставьте этот код 

$ cfg ['TempDir'] = './tmp/';

и затем проверьте, существует ли папка tmp или нет в phpmyadmin, если ее нет, создайте папку tmp и дайте ей права на чтение и права.

0
pawan kumar

Я просто изменил свой vendor_config.php файл на define('TEMP_DIR', '/tmp/'); вместо define('TEMP_DIR', './tmp/');

Это похоже на работу. 

0
smack7s

У меня было то же сообщение об ошибке. Я использую Ubuntu16.04 с lampp. Вы должны перейти в каталог 'phpmyadmin', в моем случае '/ opt/lampp/phpmyadmin /', создать новую папку 'tmp'. Откройте окно терминала и:

cd YOUR_PATH_TO_PHPMYADMIN
Sudo mkdir tmp

Теперь вам нужно изменить группу папки 'tmp', чтобы предоставить доступ пользователю php. Чтобы найти его, вы можете создать php-файл в вашем каталоге localhost, в моем случае «htdocs»

Sudo touch user.php
Sudo nano user.php

Внутри нано-редактора введите:

<?php echo `whoami`; ?>

Затем нажмите CTRL + O и CTRL + X для сохранения и выхода . Откройте браузер и введите адресную строку

localhost/user.php

Это показывает ваш php пользователь.

После этого перейдите в терминал и перейдите к недавно созданному каталогу 'tmp' внутри каталога phpmyadmin и введите:

Sudo chgrp YOUR_PHP_USER tmp -R

И измените разрешение на каталог 'tmp':

Sudo chmod 775 tmp -R

Я рекомендую никогда не давать разрешение 777 на любой файл.

Я надеюсь, что это помогает!

0
Nirlan Neckir Zamprogno

Мой ответ распространяется на пользователей Cento 7 Sentora, папка tmp должна быть создана в phpMyadmin из Sentora, как показано ниже

cd /etc/sentora/panel/etc/apps/phpmyadmin/
Sudo mkdir tmp

После создания папки убедитесь, что вы предоставили Apache права доступа к папке tmp.

chown -R Apache /etc/sentora/panel/etc/apps/phpmyadmin/tmp/

0
gumisirizab1