Ошибка в 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 и дайте ей права на чтение и права.
Ответ 18
это видео может исправить вашу проблему https://www.youtube.com/watch?time_continue=78&v=sLsGp2wWGX0.
Если ваша ОС - это centos, то путь к phpmyadmin: /usr/local/cwpsrv/var/services/pma/config.inc.php Вот и все!
Ответ 19
Для меня phpmyadmin dir был найден внутри /opt/lampp/
- открытый тэмил внутри
/opt/lampp/phpmyadmin/
- назначьте терминалу привилегии
root
, введя команду sudo su
.
- теперь в том же терминале (
mkdir -p /tmp/
) нажмите ввод
- сейчас,
chmod 777 /tmp
- Внутри каталога
phpmyadmin
находится файл config.inc.php
. Откройте его, используя тот же терминал.
- добавьте эту строку
$cfg['TempDir'] = /tmp;
и сохраните.
- Теперь все готово, просто перезагрузите вкладку, и ошибка исчезнет.