phpMyAdmin отлично работал с v4.7.9. Теперь, после обновления до v4.8.0 сегодня (замена старой папки phpmyadmin на новую) я получаю это сообщение в phpMyAdmin:
The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.
Я добавил папку ./tmp/ вот так: /usr/share/tmp
phpMyAdmin включен: /usr/share/phpmyadmin
Это ничего не изменило.
Кто знает эту ошибку? Что я могу делать?






Решением было создать папку с именем tmp, например, /usr/share/phpmyadmin/tmp.
Также убедитесь, что у пользователя (или группы), запускающего веб-сервер (например, Apache), есть доступ для записи во вновь созданную папку tmp. Следовательно, измените владельца на этого пользователя или добавьте права записи для всех пользователей. Последнее может быть не совсем целесообразным.
Кажется, это не работает на экземпляре Amazon EC2 под управлением AMI Linux с установленным вручную phpMyAdmin. Я попытался передать всю папку /usr/share/phpmyadmin, подпапки и файлы chown и setfacl группе apache и даже chmod 777 группе /usr/share/phpmyadmin/tmp, но все равно получаю ошибку. Единственный способ заставить его работать - установить $cfg['TempDir'] = '/tmp'; в config.inc.php, но я не уверен, что это лучший способ справиться с этим.
i'm not sure if this is the best way to manage it; Я думаю, это не имеет значения. Это нормально.
Не могу найти config.inc.php. Я вижу только его «образец».
config.inc.php должен находиться в папке phpMyAdmin. Может дело в /etc/phpmyadmin/config.inc.php?
/var/www/pma# chown www-data tmp и любой chmod 7__ это сделали
Выяснилось, что это из-за SELinux. Протестировал, дав команду chcon -R -t httpd_sys_rw_content_t /usr/share/phpmyadmin/tmp после chmod 777 /usr/share/phpmyadmin/tmp. На странице phpMyAdmin больше нет сообщений об ошибках. Итак, я сделал изменение постоянным с помощью semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?" и перезагрузился. Убедитесь, что контексту были назначены надлежащие разрешения, проверив строку каталога tmp с помощью ls -Z /usr/share/phpmyadmin | grep tmp. Ошибка определенно исчезла.
Конфигурация по умолчанию - config.sample.inc.php, phpMyAdmin будет работать с этим из коробки. Скопируйте в config.inc.php, чтобы переопределить его.
@Fabius, ваш комментарий о SElinux может быть добавлен в ответ. Это работает для меня. Спасибо.
В дополнение к комментарию @Fabius (который работает для меня) я понял, что эта проблема TempDir также вызвана символической ссылкой (в моем случае). Я создал символическую ссылку с phpmyadmin на текущую версию (phpMyAdmin4.xxx.xx). Это позволяет мне легко переключать версию, пока я тестирую установку. Если ваш виртуальный хост указывает на эту символическую ссылку, phpmyadmin не может найти ./tmp. Так что сделайте так, как предлагает Фабиус, добавьте переменную в config.inc.php, и все заработает, как ожидалось. Спасибо, Фабиус.
Centos8, после изменений semanage, не забудьте применить их: restorecon -Rv '/ usr / share / phpmyadmin / tmp'
Создайте папку tmp в базовом каталоге установки phpMyAdmin (например, /usr/share/phpmyadmin/tmp) и убедитесь, что она доступна для записи пользователю, под которым работает PHP.
$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, но это может создать риск для других пользователей при чтении и записи данных системой в этот каталог.
В моем случае я добавил
$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';
к
config.inc.php File within the phpmyadmin folder
Надеюсь, это кому-то поможет
Не забудьте добавить необходимые разрешения, если это необходимо.
/ usr / share / phpmyadmin / tmp (не temp), если вы не добавили папку таким образом
папка была добавлена именно так
В моем случае [MacOs El Capitán / португальский] сообщение было:
The $cfg['TempDir'] (./temp/) is not accessible
Мое решение в xamppfiles / phpmyadmin / config.inc.php:
$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';
То есть я просто добавил точку к пути ... работает нормально.
У меня была такая же проблема в Ubuntu 18.04, когда я заменил версию phpMyAdmin из репозитория пакетов (v4.6.6) последней версией (4.8.0). Я не знаю, работаете ли вы на Ubuntu, но, возможно, мой ответ будет полезен вам (или другим), кто сталкивается с чем-то похожим.
Я поместил новую версию в стандартное расположение, /usr/share/phpmyadmin/, но при установке пакета Ubuntu PMA некоторые параметры конфигурации помещаются в другие места (см. /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'].
Подтверждение, что это сработало для меня также на Ubuntu 18.04 - обновление с 4.6.6 до 4.8.0
ааааа. красивый. Работал как чемпион.
Также измените define('CONFIG_DIR', ROOT_PATH); на define('CONFIG_DIR', '/etc/phpmyadmin/'); в файле vendor_config.php, чтобы избавиться от ошибки секретной парольной фразы (blowfish_secret).
простое исправление - создать tmp dir в вашем phpmyadmin dir и установить разрешение на 777
mkdir tmp && chmod 777 tmp
тогда
обновите файл config.inc.php, добавьте эту строку
$cfg['TempDir'] = 'tmp';
Я сделал это, но добавил $cfg['TempDir'] = '/tmp'; в файл конфигурации.
Согласно предложению @skolind, линия для меня была $cfg['TempDir'] = '/tmp';. Проблема решена. Спасибо!
В случае проблем с правами доступа к каталогам 777 предоставляет каждому пользователю полный доступ к каталогу. Все, что вам действительно нужно сделать, это chown -R user:user ~/phpMyAdmin, где user - это имя пользователя веб-сервера, обслуживающего PMA; то есть www-data / nginx / apache. Это разрешит любые конфликты прав собственности во всей установке, включая tmp, без предоставления разрешений всем.
Я просто изменил свой файл vendor_config.php на define('TEMP_DIR', '/tmp/'); вместо define('TEMP_DIR', './tmp/');
Кажется, это работает.
Мой ответ адресован пользователям centos 7 Sentora, Папка tmp должна быть создана в phpMyadmin Sentora, как показано ниже.
cd /etc/sentora/panel/etc/apps/phpmyadmin/sudo mkdir tmp
After creating the folder make sure you give Apache access permissions to the tmp folder
chown -R apache /etc/sentora/panel/etc/apps/phpmyadmin/tmp/
У меня была аналогичная проблема с каталогом «temp». Решением было изменить владельца и группу каталога «веточка» (внутри «temp») на «apache» (как владелец, так и группа).
Ты был прав. Я добавил это как запрос функции
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 и войдите снова
ну, в моем случае эта ошибка возникла, когда я использовал ubuntu 18.04. Все, что вам нужно, это перейти в каталог установки (в ubuntu - opt / lampp / phpmyadmin) и создайте папку tmp со всеми подходящими разрешениями на чтение / запись.
Выполните следующие действия в случае ubuntu-
1. перейдите в каталог установки PMA, набрав следующие команды в cmd-
cd opt/lampp/phpmyadmin
2.Затем введите следующую команду:
sudo mkdir tmp && chmod 777 tmp
и тогда все готово .. !! Я надеюсь, что это помогает..
просто зайдите в папку phpmyadmin и поместите этот код
$ cfg ['TempDir'] = './tmp/';
а затем проверьте, существует ли папка tmp в phpmyadmin, если она не существует, создайте папку tmp и дайте ей права на чтение и права.
Создайте временный каталог, принадлежащий пользователю веб-сервера и ограниченный им. Поместите нет в корневой каталог phpMyAdmin. (В этом примере веб-сервер работает как apache):
mkdir -p /var/tmp/phpMyAdmin
chown apache:apache /var/tmp/phpMyAdmin
chmod 700 /var/tmp/phpMyAdmin
Затем установите TempDir внутри config.inc.php phpMyAdmin:
$cfg['TempDir'] = '/var/tmp/phpMyAdmin';
Любой ответ, предполагающий, что вы создаете /usr/share/phpmyadmin/tmp, пропагандирует плохую практику безопасности. Обычно это верно для временных каталогов и явно указано в официальной документации phpMyAdmin:
For security reasons, all directories should be outside the tree published by webserver.
У меня было такое же сообщение об ошибке. Я использую 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
Внутри редактора nano введите:
<?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 любому файлу.
Я надеюсь, что это помогает!
Создайте папку tmp в корне файлов phpmyadmin
В дополнение к этому вам также необходимо предоставить все разрешения для этой папки. Это то, что я сделал в Windows.
Для пользователей 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';
Ваше здоровье :)
Для меня каталог phpmyadmin был найден внутри /opt/lampp/
/opt/lampp/phpmyadmin/root, набрав команду sudo su.mkdir -p /tmp/) нажмите Enterchmod 777 /tmpphpmyadmin находится файл config.inc.php. Откройте его с помощью того же терминала.$cfg['TempDir'] = /tmp; и сохраните.Это небезопасно, поскольку вы даете другим пользователям возможность читать файлы tmp. Это может привести к краже данных.
У меня была такая же проблема, но ни один из приведенных выше ответов не смог решить.
В моем случае мои настройки безопасности php были настолько строгими, что защищали php для доступа к каталогам, выходящим за рамки, определенные в open_basedir, расположенные на моем /etc/php.d/99-security.ini (который я добавил ранее из общего списка безопасности, и в вашем случае настройки также могут быть расположены в файле /etc/php.ini):
;; Limit PHP Access To File System
; Limits the PHP process from accessing files outside
; of specifically designated directories such as /var/www/html/
open_basedir = "/home/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/"
изменить на:
open_basedir = "/home/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/:'/usr/share/phpmyadmin/tmp/" ;<== changing to this solved the prblem
вам просто нужно добавить свой собственный каталог в сообщение об ошибке ('/ usr / share / phpmyadmin / tmp /') и конец опции open_basedir. Не забудьте поставить разделитель : перед его добавлением.
Если папка уже существует, например, из предыдущей установки:
chmod -R 777 PATH_TO_FOLDER
Поэтому разрешения на подкаталоги также изменяются (рекурсивно).
запустите установку композитора внутри только что помещенной папки phpmyadmin