Ошибка в phpMyAdmin после обновления до версии 4.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

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

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

Ответ 1

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

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

Ответ 2

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

mkdir tmp && chmod 777 tmp

затем

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

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

Ответ 3

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

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

к

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

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

Ответ 4

У меня была такая же проблема в 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/');

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

Ответ 5

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

Ответ 6

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

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

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

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

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

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

Ответ 7

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

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

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

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

Чтобы обойти ограничения 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, но он может нанести риск другим пользователям при чтении и записи данных в системе в этом каталоге.

Ответ 8

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

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

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

cd opt/lampp/phpmyadmin

2. Затем введите следующее command-

sudo mkdir tmp && chmod 777 tmp

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

Ответ 9

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 и войдите снова

Ответ 10

Для пользователей Arch и Manjaro:

Создайте папку tmp в /etc/webapps/phpmyadmin/ - mkdir/etc/webapps/phpmyadmin/tmp

Установите разрешение 777 - chmod 777/etc/webapps/phpmyadmin/tmp

Добавьте эту строку в файл конфигурации по адресу /etc/webapps/phpmyadmin/config.inc.php - $cfg['TempDir'] = '/tmp';

Ура :)

Ответ 11

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

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

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

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

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

У меня было то же сообщение об ошибке. Я использую 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 на любой файл.

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

Ответ 15

Создайте папку tmp в корне файлов phpmyadmin

Кроме того, вам также необходимо предоставить все разрешения для этой папки. Это то, что я сделал в Windows.

Ответ 16

Мой ответ отправляется пользователям Centos 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/

Ответ 17

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

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

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

Ответ 19

Для меня phpmyadmin dir был найден внутри /opt/lampp/

  1. открытый тэмил внутри /opt/lampp/phpmyadmin/
  2. назначьте терминалу привилегии root, введя команду sudo su.
  3. теперь в том же терминале (mkdir -p /tmp/) нажмите ввод
  4. сейчас, chmod 777 /tmp
  5. Внутри каталога phpmyadmin находится файл config.inc.php. Откройте его, используя тот же терминал.
  6. добавьте эту строку $cfg['TempDir'] = /tmp; и сохраните.
  7. Теперь все готово, просто перезагрузите вкладку, и ошибка исчезнет.