1 (изменено: snegovik, 2010-05-26 22:29:00)

Тема: Fatal error: Call to undefined function PMA_getenv()

Здравствуйте.
Я новичок. Установил Apache/2.2.15 (Win32), PHP Version 5.2.13, MySQL 5.1.46, phpMyAdmin 3.3.3. OS:  Vista Home Basic.
Связка Апач+РНР+мускул работают без ошибок, а вот при попытке запустить phpmyadmin в браузерах (опера и ИЕ) пишет следующие: Fatal error: Call to undefined function PMA_getenv() in D:\apache\localhost\www\phpmyadmin\libraries\common.inc.php on line 161. Искал решение этой проблемы в интернете, пока безрезультатно. В логах апача записи только с этой ошибкой. Помогите, пожалуйста, исправить данную ошибку.


Блок из файла D:\apache\localhost\www\phpmyadmin\libraries\common.inc.php :
    /**
* PATH_INFO could be compromised if set, so remove it from PHP_SELF
* and provide a clean PHP_SELF here
*/
$PMA_PHP_SELF = PMA_getenv('PHP_SELF');   ------------- !!!161 строка!!!!
$_PATH_INFO = PMA_getenv('PATH_INFO');
if (! empty($_PATH_INFO) && ! empty($PMA_PHP_SELF)) {
    $path_info_pos = strrpos($PMA_PHP_SELF, $_PATH_INFO);
    if ($path_info_pos + strlen($_PATH_INFO) === strlen($PMA_PHP_SELF)) {
        $PMA_PHP_SELF = substr($PMA_PHP_SELF, 0, $path_info_pos);
    }
}
$PMA_PHP_SELF = htmlspecialchars($PMA_PHP_SELF);

2

Re: Fatal error: Call to undefined function PMA_getenv()

snegovik
Данная ошибка может быть только в том случае, если не выполнилась подгрузка ядра, то есть не выполнена строка 82 файла \libraries\common.inc.php:
require_once './libraries/core.lib.php';

Посмотрите на месте ли файл /libraries/core.lib.php

3 (изменено: snegovik, 2010-05-28 00:23:08)

Re: Fatal error: Call to undefined function PMA_getenv()

Проверил. Даный файл (core.lib.php) был, но пустой. Скачал заново, закинул в папку /libraries. Перезагрузил комп, запустил сервисы (апачи и мускул) и при попытке запустить phpmyadmin появляется следующие:

phpMyAdmin - Ошибка

Произошла ошибка в работе механизма сессии. Проверьте файлы журналов PHP и/или Веб-сервера на наличие ошибок, и произведите их корректное конфигурирование.

Проверил глобальный файл ошибок апача, там все нормально сейчас вроде smile

([Thu May 27 23:37:02 2010] [notice] Apache/2.2.15 (Win32) PHP/5.2.13 configured -- resuming normal operations
[Thu May 27 23:37:02 2010] [notice] Server built: Mar  4 2010 11:27:46
[Thu May 27 23:37:02 2010] [notice] Parent: Created child process 1380
[Thu May 27 23:37:03 2010] [notice] Child 1380: Child process is running
[Thu May 27 23:37:03 2010] [notice] Child 1380: Acquired the start mutex.
[Thu May 27 23:37:03 2010] [notice] Child 1380: Starting 150 worker threads.
[Thu May 27 23:37:03 2010] [notice] Child 1380: Starting thread to listen on port 80.

Это лог ошибок апача находящемся в папке www/localhost :

[Sat Apr 24 11:59:57 2010] [error] [client 127.0.0.1] File does not exist: D:/apache/localhost/www/favicon.ico, referer: http://localhost/
[Sat Apr 24 13:05:11 2010] [error] [client 127.0.0.1] PHP Warning:  mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'root'@'localhost' (using password: NO) in D:\\apache\\localhost\\www\\index.php on line 7


Логи ошибок РНР не знаю где искать.

4

Re: Fatal error: Call to undefined function PMA_getenv()

В php.ini должна быть раскомментирована следующая строка:
[mono]session.save_path = "C:/php/tmp"[/mono]

Проверьте, создан ли пустой каталог [mono]C:/php/tmp[/mono] для хранения временных файлов.

5

Re: Fatal error: Call to undefined function PMA_getenv()

Раскоментировал строку session.save_path = "C:/php/tmp", создал пустой каталог C:/php/tmp.
Запустил phpmyadmin и увидел в окне браузера следующие: Fatal error:  Call to undefined function PMA_DBI_connect() in D:\\apache\\localhost\\www\\phpmyadmin\\libraries\\common.inc.php on line 916
Скопировал содержимое папки libraries из архива phpMyAdmin-3.3.3-all-languages.zip в папку D:\\apache\\localhost\\www\\phpmyadmin\\libraries\ Перезагрузил сервер. Включил phpmyadmin и... РМА заработал!!!:)

Hanut, спасибо Вам за помощь.

6 (изменено: cyber2, 2012-02-07 16:18:40)

Re: Fatal error: Call to undefined function PMA_getenv()

вообщем столкнулся с такой ошибкой сегодня, после логина в пхпмайдмин белый экран
в логах Fatal error: Call to undefined function PMA_getenv()
еще появлялось в результате экспериментов  Fatal error: Cannot run code from this file in conjunction with non encoded files

появилось это после перехода на новую версию с помощью portupgrade во freebsd
грешил на eaccelerator - отключение не помогло
отключил zend optimizer - заработало, но часть сайтов на сервере его требуют....
пробовал другие версии пхпмайадмина - тоже самое

в итоге оказалось что при установке phpmyadmin указал использовать анимированный прогрессбар.
оно и доставило php apc, который начал конфликтовать с зендом.
при его отключении все заработало.

возможно кому-то это в будущем поможет, ибо поиском в гугле особо ничего решений не находил....

7

Re: Fatal error: Call to undefined function PMA_getenv()

cyber2 сказал:

оказалось что при установке phpmyadmin указал использовать анимированный прогрессбар.
оно и доставило php apc, который начал конфликтовать с зендом.

Действительно, чтобы работал статус загрузки, надо установить расширение APC или uploadprogress, так же должно быть подключено расширение JSON. При использовании APC необходимо в php.ini включить директиву apc.rfc1867 в on.

Спасибо за указанное замечание. Не могу проверить конфликт с Zend Optimizer, но кому-нибудь это действительно может помочь.