sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Error de almacenamiento de configuración de phpMyAdmin

Después de revisar el código, terminé en esta función.

/**
 * Gets all available MIME-types
 *
 * @access  public
 * @staticvar   array   mimetypes
 * @return array    array[mimetype], array[transformation]
 */
function PMA_getAvailableMIMEtypes()
{
    static $stack = null;

    if (null !== $stack) {
        return $stack;
    }

    $stack = array();
    $filestack = array();

    $handle = opendir('./libraries/plugins/transformations');

    if (! $handle) {
        return $stack;
    }

    while ($file = readdir($handle)) {
        $filestack[] = $file;
    }

    closedir($handle);
    sort($filestack);

    foreach ($filestack as $file) {
        if (preg_match('|^.*_.*_.*\.class\.php$|', $file)) {
            // File contains transformation functions.
            $parts = explode('_', str_replace('.class.php', '', $file));
            $mimetype = $parts[0] . "/" . $parts[1];
            $stack['mimetype'][$mimetype] = $mimetype;
            $stack['transformation'][] = $mimetype . ': ' . $parts[2];
            $stack['transformation_file'][] = $file;

        } elseif (preg_match('|^.*\.class.php$|', $file)) {
            // File is a plain mimetype, no functions.
            $base = str_replace('.class.php', '', $file);

            if ($base != 'global') {
                $mimetype = str_replace('_', '/', $base);
                $stack['mimetype'][$mimetype] = $mimetype;
                $stack['empty_mimetype'][$mimetype] = $mimetype;
            }
        }
    }

    return $stack;
}

Mis habilidades con php son limitadas, pero puedo decir que está leyendo los archivos en el directorio de complementos/transformaciones y devolviendo esos nombres de archivo a los scripts que hacen referencia a esta función. Cuando navegué por este directorio desde una terminal, noté que estaba lleno de archivos ._ creados por el buscador. Utilizo una Mac para hacer mi desarrollo y saqué esta última copia de phpmyadmin usando finder en lugar de wget, por lo que se crearon todos estos archivos ._. Algo sobre ellos arruinó esta función y una vez que los eliminé con un comando de búsqueda en el nivel base, todo funcionó según lo previsto. Aquí está el comando de búsqueda para cualquier persona que experimente algo similar:

find . -type f -name '._*' -exec rm {} \;

Nuevamente, ejecútelo en el nivel base del directorio phpmyadmin y todo debería estar bien.