我在与phpMyAdmin 4.0.10一个奇怪的问题。 首先是因为我的MySQL版本是57年5月1日我在运行此版本。
我有phpMyAdmin设置和配置除了存储设置应有尽有。 我创建了phpmyadmin的数据库和必要的表。 我还创建了PMA用户,并确保所有的权限是正确的。 在我的配置文件我已经添加了设置该用户和复制的密码。
如果我在这一点上节省我的配置,而无需实际设置存储数据库和表一切工作就好了。 但是,如果我让这些表我得到了我的日志以下错误消息500每当我尝试将列添加到表的结构。
PHP Fatal error: Call to undefined function ._Application_Octetstream_Download_getInfo() in /htdocs/phpmyadmin/libraries/transformations.lib.php on line 153
任何想法是怎么回事? 我已经删除并重新创建我的phpMyAdmin的数据库。 我已经删除并重新创建的PMA用户。 我已经删除并重新创建我的配置文件,这就是我如何跟踪,最终这个错误倒在存储表中。
如果有帮助,这是一段代码导致的transformations.lib.php文件中的问题:
/**
* Returns the description of the transformation
*
* @param string $file transformation file
* @param boolean $html_formatted whether the description should be formatted
* as HTML
*
* @return String the description of the transformation
*/
function PMA_getTransformationDescription($file, $html_formatted = true)
{
// get the transformation class name
$class_name = explode(".class.php", $file);
$class_name = $class_name[0];
// include and instantiate the class
include_once 'libraries/plugins/transformations/' . $file;
return $class_name::getInfo();
}
通过代码看后,我结束了在此功能。
/**
* 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;
}
我的PHP技能是有限的,但我可以告诉它通读文件在plugins /转换目录,并返回这些文件的名称来引用此功能的脚本。 当我从终端浏览该目录,我注意到它是通过取景器创建._文件填充。 我使用的是Mac做对我的发展,我一直在使用取景器,而不是这样的wget所有这些._文件的创建拉升的phpmyadmin的这一最新副本。 关于他们的事情搞砸了这个功能,一旦我在基地水平find命令删除它们按预期一切正常。 下面是任何人都遇到类似的东西find命令:
find . -type f -name '._*' -exec rm {} \;
再次,运行在phpMyAdmin的目录的基础水平,都应该很好。