phpMyAdmin по-русски
   О проекте  |  Скачать  |  Документация  |  Форум
  
Главная страница / Документация /

FAQ по phpMyAdmin. Настройка сервера



[1.1] Я запускаю PHP 4+ и сервер "падает" каждый раз каждый раз, когда начинает выполняться какое-либо действие, либо phpMyAdmin открывает в браузере пустую страницу, либо страницу, полную непонятных символов. Что делать?
Скорее всего, это связано с ошибками PHP при буферизации на выходе и сжатии. Попробуйте установить в config.inc.php для переменной $cfg['OBGzip'] значение FALSE, и php.ini для директивы zlib.output_compression значение Off. Кроме того, известно о проблемах при работе PHP - 4.2.0 (кандидата в релиз) с Internet Explorer MS (проверенно на PHP 4.2.0 RC1 к RC4). Обновите версию релиза PHP 4.2.0.

[1.2] Мой Apache "падает" при использовании phpMyAdmin.
Прежде попробуйте последние версии Apache (и возможно MySQL). См. также другую запись FAQ по багам PHP с буферизацией на выходе. Если сервер продолжает "падать", обратитесь за помощью в группу поддержки Apache.

[1.3] Я запускаю phpMyAdmin в "cookie" режиме аутентификации под PHP 4.2.0 или 4.2.1 загруженном как Apache 2+ модуль, но всегда получаю лишь окно авторизации.
Это известный PHP баг (см. этот баг репорт) из официальной базы PHP багов. Это означает, что силами phpMyAdmin эта проблема не решается

[1.4] Используя, phpMyAdmin на IIS, я получаю сообщение об ошибке: "The specified CGI application misbehaved by not returning a complete set of HTTP headers...".
Вы забыли прочитать файл install.txt из дистрибутива php. Взгляните на последнее сообщение в этом баг репорте из официальной PHP базы данных ошибок.

[1.5] Используя phpMyAdmin на IIS, я получаю сбой и/или множественные сообщения об ошибках при работе в режиме HTTP-аутентификации.
Это - известная проблема с PHP ISAPI фильтром, которая заключается в его нестабильности. Для разрешения данной проблемы рекомендуется использование вместо данного режима 'cookie' - аутентификацию

[1.6] Я не могу использовать phpMyAdmin на PWS (Personal Web Server): ничего не отображается!
Скорее всего, это - баг PWS. Решением этой проблемы (лучшего пока не предложили) является удаление или закомментирование декларации DOCTYPE (2 линии) в скриптах libraries/header.inc.php, libraries/header_printview.inc.php, index.php, navigation.php и libraries/common.lib.php.

[1.7] Как я могу выполнять GZip или Bzip компрессию дампа или CSV экспорт. У меня складывается впечатление, что она не работает.
Эти возможности основаны на функциях PHP gzencode () и bzcompress (), для достижения большей независимости от платформы (Unix/Windows, безопасного режима, и т.д.). Таким образом, должен быть установлен PHP4> = 4.0.4, с поддержкой Zlib/Bzip2 (-с - zlib и - с - bz2). Если "падения" PHP возникают при попытке загрузки дампа с помощью Internet Explorer MS, при phpMyAdmin, запущенным под бетой PHP 4.2.0. В этом случае необходимо установить как минимум релиз PHP 4.2.0.

[1.8] Я не могу вставить текстовый файл в таблицу - я получаю ошибку "safe mode being in effect".
Ваш загруженный файл сохраняется PHP в директорию "upload dir", которая определена в php.ini переменной upload_tmp_dir (обычно, по умолчанию -/tmp). Мы рекомендуем, следующие установки для серверов Apache, запущенных в безопасном режиме, чтобы обеспечить разумную безопасность загрузки файлов:
  • создать отдельную директорию для загрузок: mkdir /tmp/php
  • дать права (монопольное использование) user.group Апача: chown apache.apache /tmp/php
  • дать соответствующие разрешения: chmod 600 /tmp/php
  • задать upload_tmp_dir = /tmp/php in php.ini
  • перезапустить Apache

[1.9] Проблемы при загрузке файлов. Загруженные файлы не работают на моей системе, и имеют заголовок в первой строке Content-Type:.
Если у Вас стоит RedHat 7.0 и Вы обновили PHP RPM до php-4.0.4pl1-3.i386.rpm, то в этом случае эта проблема связана не с phpMyAdmin, а с RedHat 7.0. Дело в том, что данный пакет имеет серьезную ошибку, которая была давным-давно исправлена в PHP (2001-01-28: см. для получения подробной информации PHP's bug tracking system).
Проблема усугубляется еще тем, что сбойный пакет все еще доступен, хотя данный баг был исправлен (см. RedHat's BugZilla). Поэтому если у Вас возникает даная проблема, то для её решения загрузите исправленный пакет (4.0.4pl1-9). Данное действие решит также \r\n проблему загружаемого файла!

[1.10] Проблемы при загрузке файлов с помощью phpMyAdmin, под управлением безопасного сервера. Браузер - Internet Explorer, веб-сервер - Apache.
Как предложил "Rob M" на форуме phpWizard: добавьте следующую строчку в httpd.conf:
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
В большинстве случаев это решает решает многие проблемы между Internet Explorer и SSL.

[1.11] Я получаю 'open_basedir restriction' при загрузке файла из блока запроса.
Начиная с версии 2.2.4, phpMyAdmin может работать с серверами, поддерживающими open_basedir с завершающим слешем. Завершающий слеш позволит открывать файлы в текущей директории ('.'), все, что требуется, - создать директорию 'tmp' в папке phpMyAdmin, установить права на доступ 777 и остальным - такие же права как и у папки phpMyAdmin. Загружаемые файлы будут помещаться сюда, и после выполнения ваших SQL команд - удаляться.

[1.12] Я потерял свой MySQL root пароль, что можно сделать?
Мануал MySQL объясняет, как сбросить права доступа.

[1.13] Я получаю ошибку 'No SQL query' при попытке открыть закладку.
Если PHP не имеет разрешения чтения/записи в upload_tmp_dir, он соответственно не может получить доступ к загружаемому запросу.

[1.14] Я получаю ошибку 'No SQL query' при попытке отправить запрос из текстовой области.
Проверьте директиву post_max_size в конфигурационном файле PHP и попробуйте увеличить её значение.

[1.15] У меня проблемы с именами полей mysql.user.
В старших версиях MySQL, поля User и Password назывались соответственно user and password. Преобразуйте имена полей, с целью приведения их к текущему стандарту.

[1.16] Я не могу загрузить дамп большого размера (память, http или timeout проблемы).
Начиная с версии 2.7.0, механизм импорта был переписан, и эта проблема в принципе не должна иметь место. По возможности, обновите установленный phpMyAdmin до последней версии, чтобы использовать новые возможности импорта. Первым делом проверьте (или попросите проверить вашего хост-провайдера) значения переменных upload_max_filesize, memory_limit и post_max_size в php.ini. Все три перечисленные параметры ограничивают максимальный размер данных, которые могут быть переданы и обработаны PHP. Существует также мнение, что post_max_size и memory_limit должны быть больше чем upload_max_filesize.
Существует несколько вариантов, которые можно применить в случае необходимости загрузки слишком больших файлов, либо в случае невозможности конфигурирования php.ini:
  • Обратите внимание на переменную $cfg ['UploadDir']. Она позволяет загружать файл на сервер с помощью scp, ftp, либо с помощью другого предпочитаемого вами метода передачи данных. PhpMyAdmin в данном случае может импортировать файлы из временной директории. Более подробная информация доступна в разделе документации "Конфигурация".
  • Использование утилиты (такой как BigDump), для разбития файлов на части перед загрузкой.
Если Вы имеете shell-доступ, используйте MySQL, для непосредственного импортирования файлов. Это выполняется с помощью запуска sql-команды изнутри MySQL: источник filename.sql.

[1.17] Какие версии MySQL поддерживает phpMyAdmin?
Полностью поддерживаются все версии MySQL с 3.23.32 до 5.0 (за исключением 4.1.0 и 4.1.1). Обратите внимание на то, что чем старше версия MySQL, тем больше ограничений накладывается. phpMyAdmin может соединяться с вашим MySQL сервером, используя классические php-расширения: MySQL и его усовершенствованный вариант (MySQLi), который доступен в php 5.0. И в том и другом случае, разработчики обоих расширений рекомендуют использовать классическое расширение для MySQL 4.0 и ниже и MySQLi для MySQL 4.1 и новее.
При компилировании php, настоятельно рекомендуется, вручную связать выбранное Вами MySQL расширение с клиентской библиотекой MySQL по крайней мере с упрощенными версиями, которые присутствуют в дистрибутивах php. Чаще всего библиотеки, входящие в дистрибутив php - старые, их использование может вызывать проблемы (см. FAQ 1.17a). Если Ваш веб-сервер запущен под Windows вы можете попробовать MySQL Connector/PHP вместо MySQL / MySQLi расширений, который входит в состав сборки php под Win32. MySQL 5.1 еще не поддерживается.

[1.17a] Я не могу соединиться с MySQL сервером: он всегда возвращает сообщение об ошибке "Client does not support authentication protocol requested by server; consider upgrading MySQL client"
Вы пытаетесь получить доступ к MySQL со старой клиентской библиотекой MySQL. Версия клиентской библиотеки MySQL может быть проверена с помощью phpinfo (). Как правило, версия должна быть той же, что ваш сервер - как упомянуто в FAQ 1.17.
Эта проблема как правило, возникает при использовании версии 4.1 MySQL или более новой. MySQL изменил хеш аутентификации, а ваш PHP пытается использовать старый метод. Решение состоит в использовании расширения mysqli с клиентской библиотекой, соответствующей вашей установке MySQL. Выбранное расширение определено в $cfg ['Servers'] [$i] ['extension']. Дополнительную информацию и примеры можно найти в документации MySQL.

[1.18] Запущена MySQL <= 4.0.1 с директивой lower_case_table_names установленной в 1. Если я создаю новую таблицу с заглавной буквой в её названии, она заменяется на строчную. Но если я пытаюсь удалить эту таблицу, MySQL не может найти соответствующий файл.
Это баг MySQL <= 4.0.1. Обновите, MySQL как минимум до версии 4.0.2, либо отключите директиву lower_case_table_names.

[1.19] Я не могу использовать опцию "display relations" потому что скрипт не знает шрифт, который я использую!
Библиотека "FPDF", которая используется для этой опции, подключает некоторые специальные файлы для использования шрифтов. Для получения большей информации об этих файлах ознакомьтесь с мануалом FPDF.

[1.20] Я получаю ошибку "cannot load MySQL extension, please check PHP Configuration".
Чтобы соединиться с MySQL сервером, PHP необходимо установить MySQL расширение (MySQL extension). Это расширение может быть частью PHP дистрибутива (compiled-in), в противном случае необходимо подгружать его динамически. Его имя скорее всего mysql.so или php_mysql.dll. В данном случае phpMyAdmin пытается загрузить расширение но безуспешно.

[1.21] Я запускаю CGI версию PHP под Unix, и не могу зарегистрироваться с помощью cookie аутентификации
В php.ini, установите mysql.max_links выше чем 1.

[1.22] Я не вижу поле "Location of text file", и как следствие не могу осуществлять загрузку.
Причина, скорее всего, в том, что в php.ini, параметр file_uploads не установлен в "on".

[1.23] Я запускаю MySQL на машине Win32. Каждый раз, когда я создаю новую таблицу имена таблицы и полей преобразуются в нижний регистр!
Это происходит потому что MySQL директива lower_case_table_names по умолчанию имеет значение 1 (ON) в Win32 версии MySQL. Вы можете изменить это поведение, просто присвоив директиве значение 0 (OFF): Только не забудьте отредактировать файл my.ini, который обычно по умолчанию расположен в каталоге Windows и добавьте следующую строчку в группу [mysqld]:
set-variable = lower_case_table_names=0
Затем, сохраните файл и перезапустите MySQL. Вы всегда можете проверить значение этой директивы, используя запрос
SHOW VARIABLES LIKE 'lower_case_table_names';

[1.24] Некоторые символы искажаются в моих запросах, либо символы добавляются беспорядочно. Запущен PHP 4.2.3.
Это баг PHP 4.2.3.

[1.25] Я запускаю Apache с mod_gzip-1.3.26.1a под Windows XP, и сталкиваюсь с такой проблемой как неопределенные переменные, при запуске SQL запроса.
Решение от Jose Fandos: закомментируйте следующие две строки в httpd.conf:
# mod_gzip_item_include file \.php$ # mod_gzip_item_include mime "application/x-httpd-php.*"
В данной версии mod_gzip на Apache (Windows) имеет проблемы при обращении с PHP скриптами. Разумеется, после изменений не забудьте перезапустить Apache.

[1.26] Я установил phpMyAdmin в корневую директорию IIS, но при попытке запуска phpMyAdmin получаю ошибку "No input file specified".
Это проблема разрешений. Кликните правой кнопкой на папке phpmyadmin и выберите свойства. На вкладке Security, кликните "Add" и выберите пользователя "IUSR_machine" из списка. Теперь задайте для него разрешения - как правило, это решает проблему.

[1.27] При попытке просмотра большой страницы (напр. db_structure.php с множеством таблиц) я получаю пустую страницу.
Это - баг PHP, который проявляется, когда разрешена GZIP буферизация на выходе. Если отключить эту опцию ($cfg ['OBGzip'] = FALSE в config.inc.php), проблема, как, правило решается. Эта ошибка будет пофиксена в PHP 5.0.0.

[1.28] Мой MySQL сервер иногда останавливает запросы и возвращает сообщение 'Errorcode: 13'. Что это значит?
Это может происходить из-за бага MySQL, который проявляется в случае использования прописных букв в названиях баз данных/таблиц, хотя lower_case_table_names установлена в 1. Чтобы пофиксить проблему, отключите эту директиву, преобразуйте все имена базы данных и названия таблиц к строчным буквам и включите директиву снова. Как альтернатива -- bug-fix доступный начиная с MySQL 3.23.56 / 4.0.11-gamma.

[1.29] Когда я создаю таблицу или преобразую поле, то получаю ошибку и поля дублируются.
Возможно Apache сконфигурирован таким образом, что PHP имеет проблемы с интерпретированием .php файлов. Проблемы возникают, при использовании двух различных (и конфликтующих) наборов директив: SetOutputFilter PHP
SetInputFilter PHP
&
AddType application/x-httpd-php .php

Вышеуказанная настройка есть в /etc/httpd/conf/httpd.conf, в то время как другая установка - в /etc/httpd/conf/addon-modules/php.conf.
Рекомендуется - использовать AddType, поэтому закомментируйте первые строчки и перезапустите Apache:
#SetOutputFilter PHP #SetInputFilter PHP

[1.30] Я получаю ошибку "navigation.php: Missing hash".
Эта проблема возникает, обычно когда сервер запускает Turck MMCache, но обновление MMCache до версии 2.3.21 решает данную проблему.

[1.31] Поддерживает ли phpMyAdmin php5?
Да. Однако, phpMyAdmin должен в то же время быть совместим с php4. Поэтому не удастся запустить phpMyAdmin, с разрешенным E_STRICT в настройках сообщения об ошибках (error_reporting).

[1.32] Могу ли я использовать HTTP-аутентификацию на IIS?
Да. Эта процедура была протестирована на phpMyAdmin 2.6.1, PHP 4.3.9 в ISAPI-режиме под IIS 5.1.
1. В конфигурационном файле php.ini file, установите cgi.rfc2616_headers = 0
2. В конфигурационной настройке Web Site Properties -> File/Directory Security -> Anonymous Access, выберите "Anonymous access" (анонимный доступ) и снимите выбор с остальных чекбоксов (снимите Basic authentication, Integrated Windows authentication, and Digest если они выбраны). Кликните "OK".
3. В "Custom Errors", выберите диапазон 401;1 через 401;5 и кликните "Set to Default" (установить по умолчанию)

[1.33] Насколько проблемно использование mysqli расширения с PHP 5.0.4 на 64-битных системах?
Да существует проблема: "Call to undefined function pma_reloadnavigation", таким образом в данном случае необходимо обновление PHP до следующей версии.

[1.34] Могу я получить непосредственный доступ к страницам базы данных или таблицы?
Да. Вне блока Вы можете использовать URLs: http://server/phpMyAdmin/index.php?db=database&table=table&target=script. Параметры "table" и "script" необязательны. Если Вы хотите видеть URL следующего типа: http://server/phpMyAdmin/database[/table][/script], вам необходимы некоторые настройки. Указанные ниже строки применимы только для веб-сервера Apache. Для начала убедитесь, что можете включать некоторые особенности не прибегая к глобальному конфигурированию. Вам нужно включить Options FollowSymLinks и AllowOverride FileInfo для директории куда установлен phpMyAdmin и также должен быть включен mod_rewrite. Затем Вам нужно создать следующий файл .htaccess в папке, куда установлен phpMyAdmin (не забудьте изменить название папки phpMyAdmin в приведенном примере):
RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]


[1.35] Могу я использовать HTTP аутентификацию с Apache CGI?
Да. Однако вам необходимо передавать переменную аутентификации к CGI, используя следующее правило подстановки:
RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]


[1.36] Я получаю ошибку "500 Internal Server Error".
Здесь может быть много причин, и просмотр ваших серверных логов может дать объяснение возникновению данной ошибки.

[1.37] При запуске phpMyAdmin на кластере (группе) различных машин - при использовании cookie-аутентификации не работает шифрование пароля.
Если ваш кластер состоит из различных архитектур, PHP код, используемый для шифрования/дешифрования не будет работать корректно. Это происходит из-за использования в коде функций упаковки/распаковки. Единственным решением может стать использование расширения mcrypt, которое прекрасно работает в данном случае.