调用未定义的函数__()错误 - phpMyAdmin

mey*_*sam 37 php phpmyadmin

当我想在我的浏览器上运行phpMyAdmin时,会显示以下错误:

Fatal error: Call to undefined function __() in /usr/share/phpMyAdmin/libraries/core.lib.php on line 229
    Call Stack
    #   Time    Memory  Function    Location
    1   0.0010  344984  {main}( )   ../index.php:0
    2   0.0026  502720  require_once( '/usr/share/phpMyAdmin/libraries/common.inc.php' )    ../index.php:12
    3   0.0285  3836408 require( '/usr/share/phpMyAdmin/libraries/session.inc.php' )    ../common.inc.php:344
    4   0.0288  3846488 PMA_fatalError( )   ../session.inc.php:97
Run Code Online (Sandbox Code Playgroud)

我使用Fedora 17和PHP 5.5.7.

有什么想法解决问题吗?

Isa*_*tch 36

检查您的会话目录是否可由Web服务器进程写入.

最好的方法是创建自己的phpinfo文件; 在任何Web可访问文件夹中创建一个文件(您可以将其称为test.php或phpinfo.php或任何您喜欢的文件),其中包含以下内容:

<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

在浏览器中打开该文件(http://localhost/test.php或类似文件)并查找该行session.save_path.那是你的会话文件夹; 确保权限适合,看看是否有帮助.

来自类似线程的更多信息.

  • 这是对会话目录的正确许可.例如,我有CentOS,我的会话目录位于`/ var/lib/php/session`.我的情况我把这个改为主人改为apache:`sudo chown -R apache:apache/var/lib/php/session` (6认同)
  • 谢谢Isaac,我和nginx有同样的问题,并用 - chown root:nginx session改变了 (2认同)

itz*_*nsn 29

我刚刚设置了CentOS 7并尝试了phpmyadmin并遇到了同样的问题.希望这可以帮助

我为sessions目录设置了正确的权限并重新启动了apache,甚至禁用了SELinux,但显示了相同的错误

我没有安装php-mbstring - 一旦我这样做,它就有用了

sudo yum install php-mbstring
Run Code Online (Sandbox Code Playgroud)

检查phpmyadmin的要求


Tob*_*ing 8

对于Debian用户:(我最终在这个线程中作为Debian用户)我读了@naveen的答案,看来我没有安装php-mbstring,安装它解决了我的问题:

sudo apt-get install php-mbstring
Run Code Online (Sandbox Code Playgroud)

  • 同样在这里我经历了许多帖子,说改变权限,但这只是帮助.我在下面收到一个错误:致命错误:未捕获错误:调用/usr/share/phpmyadmin/libraries/core.lib.php:235中的未定义函数__()我正在使用Raspbian (2认同)
  • 这每次都有效,安装 php-mbstring 后不要忘记重新启动 apache (2认同)