Error en phpMyAdmin luego de actualizar a v4.8.0: El $cfg[‘TempDir’] (./tmp/) no es accesible

6 minutos de lectura

avatar de usuario
David

phpMyAdmin funcionó bien con v4.7.9. Ahora, después de actualizar a v4.8.0 hoy (reemplazando el antiguo phpmyadmin carpeta contra la nueva) Recibo este mensaje en phpMyAdmin:

El $cfg[‘TempDir’] (./tmp/) no es accesible. phpMyAdmin no puede almacenar plantillas en caché y será lento debido a esto.

agregué la carpeta ./tmp/ como esto: /usr/share/tmp

phpMyAdmin está activado: /usr/share/phpmyadmin

Esto no cambió nada.

¿Quién conoce este error? ¿Que puedo hacer?

  • ejecute la instalación del compositor dentro de la carpeta phpmyadmin recién colocada

    – Praneeth Nidarshan

    9 de abril de 2018 a las 9:54

avatar de usuario
David

La solución fue crear una carpeta llamada tmp como esto: /usr/share/phpmyadmin/tmp.

También asegúrese de que el usuario (o grupo) que ejecuta el servidor web (por ejemplo, Apache) tenga acceso de escritura a la carpeta tmp recién creada. En consecuencia, cambie la propiedad a ese usuario o agregue acceso de escritura para todos los usuarios. Este último podría no ser muy recomendable.

  • Esto parece no funcionar en la instancia de Amazon EC2 que ejecuta AMI Linux con phpMyAdmin instalado manualmente. Traté de dar todo /usr/share/phpmyadmin carpeta, subcarpetas y archivos chown y setfacl a apache grupo e incluso chmod 777 a /usr/share/phpmyadmin/tmp pero todavía recibe un error. La única manera de hacer que funcione es establecer $cfg['TempDir'] = '/tmp'; en config.inc.php pero no estoy seguro si esta es la mejor manera de manejarlo

    – Fabio

    10 de abril de 2018 a las 10:51


  • i'm not sure if this is the best way to manage it; creo que no importa Está bien hacerlo de esta manera.

    – David

    11/04/2018 a las 15:00


  • no puedo encontrar config.inc.php. Solo veo la ‘muestra’ de eso.

    –Oki Erie Rinaldi

    12 de abril de 2018 a las 2:56

  • config.inc.phpdebe estar en la carpeta phpMyAdmin. tal vez este en /etc/phpmyadmin/config.inc.php?

    – David

    12 de abril de 2018 a las 6:19

  • Descubrí que se debía a SELinux. Probado dando chcon -R -t httpd_sys_rw_content_t /usr/share/phpmyadmin/tmp mando, después chmod 777 /usr/share/phpmyadmin/tmp. No se informaron más errores en la página de phpMyAdmin. Así que hice el cambio permanente con semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?" y reiniciado. Se aseguró de que al contexto se le asignaron los permisos adecuados al verificar tmp línea del directorio con ls -Z /usr/share/phpmyadmin | grep tmp. El error parece definitivamente desaparecido.

    – Fabio

    18/04/2018 a las 16:00

la solución simple es crear el directorio tmp en su directorio phpmyadmin y establecer el permiso en 777

mkdir tmp && chmod 777 tmp

después

actualice su archivo config.inc.php agregue esa línea

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

  • Hice esto, pero agregué $cfg['TempDir'] = '/tmp'; al archivo de configuración.

    – skolind

    14 de junio de 2018 a las 8:51

  • Según la sugerencia de @skolind, la línea para mí fue $cfg['TempDir'] = '/tmp';. El problema ahora ha sido solucionado. ¡Gracias!

    – TechnoCat

    6 de febrero de 2020 a las 1:40


  • Para problemas de permisos en los directorios, 777 da a cada usuario acceso completo al directorio. Todo lo que realmente necesitas hacer es chown -R user:user ~/phpMyAdmin dónde user es el nombre del usuario del servidor web que sirve a PMA; es decir www-data/nginx/apache. Esto resolverá cualquier conflicto de propiedad en la instalación total, incluyendo tmpsin dar permisos a todos.

    – Por siempre Cuber

    9 abr 2021 a las 18:50

avatar de usuario
Wevrem

Tuve este mismo problema en Ubuntu 18.04 cuando reemplacé la versión de phpMyAdmin del repositorio de paquetes (v4.6.6) con la última versión (4.8.0). No sé si está ejecutando Ubuntu, pero tal vez mi respuesta sea útil para usted (u otros) que encuentren algo similar.

Puse la nueva versión en la ubicación estándar, /usr/share/phpmyadmin/pero la instalación del paquete de Ubuntu de PMA pone algunos ajustes de configuración en otros lugares (ver /etc/phpmyadmin/ y /var/lib/phpmyadmin/). Encontré esta configuración en /etc/phpmyadmin/apache.conf:

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

y, efectivamente, ese directorio se había creado y tenía los permisos adecuados. Queriendo permanecer lo más cerca posible de la configuración de instalación del paquete, hice este cambio en /usr/share/phpmyadmin/libraries/vendor_config.php y señaló directamente a esa carpeta:

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

Esta configuración es recogida por /usr/share/phpmyadmin/libraries/config.default.php (que se supone que no debes editar) para establecer $cfg['TempDir'].

  • Confirmando que funcionó para mí también en Ubuntu 18.04, actualizando de 4.6.6 a 4.8.0

    – shanehoban

    11 mayo 2018 a las 16:47

  • ahhhh bonito. Trabajó como un campeón.

    – usuario5248

    16 de noviembre de 2019 a las 5:30

  • también cambiar define('CONFIG_DIR', ROOT_PATH); a define('CONFIG_DIR', '/etc/phpmyadmin/'); en el vendor_config.php archivo para deshacerse del error de frase de contraseña secreta (blowfish_secret)

    – Guillermo Ardila

    11 de junio de 2020 a las 19:23


En mi caso agregué

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

hacia

Archivo config.inc.php dentro de la carpeta phpmyadmin

Espero que ayude a alguien

Cree un directorio temporal propiedad y restringido al usuario del servidor web. Hacer no colóquelo dentro de la raíz web de phpMyAdmin. (En este ejemplo, el servidor web se ejecuta como apache):

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

A continuación, establezca TempDir dentro de phpMyAdmin’s config.inc.php:

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

Cualquier respuesta que sugiera que crees /usr/share/phpmyadmin/tmp aboga por malas prácticas de seguridad. Esto es generalmente cierto para los directorios temporales y se establece explícitamente en la documentación oficial de phpMyAdmin:

Por razones de seguridad, todos los directorios deben estar fuera del árbol publicado por el servidor web.

avatar de usuario
Harsha Biyani

Para mí, phpmyadmin dir se encontró dentro /opt/lampp/

  1. terminal abierto en el interior /opt/lampp/phpmyadmin/
  2. dar root privilegios a la terminal escribiendo sudo su dominio.
  3. ahora en el mismo uso de terminal (mkdir -p /tmp/) Presione enter
  4. ahora, chmod 777 /tmp
  5. En el interior phpmyadmin directorio hay un archivo config.inc.php. Ábralo usando la misma terminal.
  6. añadir esta línea $cfg['TempDir'] = /tmp; y guardar.
  7. Ahora está listo para comenzar, simplemente vuelva a cargar la pestaña y el error desaparecerá.

avatar de usuario
jormaster3k

Crear un tmp carpeta en el directorio base de la instalación de phpMyAdmin (p. ej. /usr/share/phpmyadmin/tmp), y asegúrese de que el usuario con el que se ejecuta PHP pueda escribirlo.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad