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

2020/12/30 06:21 · php ·  · 0评论

当我想在浏览器上运行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

我在PHP 5.5.7中使用fedora 17。

有解决问题的主意吗?

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

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

<?php
phpinfo();
?>

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

来自类似线程的更多信息

我只是设置了CentOS 7并尝试了phpmyadmin,并且遇到了同样的问题。希望这可以帮助

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

我没有安装php-mbstring-一旦这样做,它就可以工作

sudo yum install php-mbstring

检查phpmyadmin的要求

对于Debian用户:(我最终以Debian用户身份进入该线程)我读了@naveen的答案,看来我没有安装php-mbstring,安装它解决了我的问题:

sudo apt-get install php-mbstring

(安装php-mbstring之后,不要忘记重启Apache :)

sudo systemctl restart apache2

在我的情况CentOS 7下使用php-fpm,这就是@Issac指出的原因,并且可以通过以下方式解决:

mkdir -p /var/lib/php/session
chown -R apache:apache /var/lib/php

然后解决。

只需创建会话文件夹,我认为这种直接解决方案可以在这种情况下工作。

警告:在执行此操作之前,请确保检查/var/lib/php文件夹是否存在,并检查正在使用哪个用户php-fpm如果您在php-fpm进程中没有使用任何人,则将777权限设置为/var/lib/php/session可以正常使用。

就像其他用户所说的那样...我正在用PHP7运行Debian 8并遇到了问题,因此只需安装即可。

sudo apt-get install php7.0-mbstring

随后重新启动Apache服务;

sudo service apache2 restart

然后phpmyadmin运行正常。

检查您的PHP扩展是否已加载。当mysql或mysqli扩展无法加载时,结果将恰好是此错误(这很令人困惑)。要检查扩展是否正确加载,请查看PHP函数phpinfo()的输出-此处列出了所有已加载的扩展。

如果您出于某种原因而使用其他用户,例如拥有httpd-itk(RHEL / CentOS / Fedora)或apache2-mpm-itk(Debian / Ubuntu)的用户,而您的主要用户不是apachewww-data,则请执行以下操作:

sudo usermod -a -G apache youruser

要么

sudo usermod -a -G www-data youruser

根据您的分布,然后phpMyAdmin将起作用。

对我来说,错误是在/usr/share/phpMyAdmin/libraries/sanitizing.lib.php

我遵循此建议增加了php错误报告,
并在前面添加
//注释sanitizing.lib.php的违规行

然后该错误更具描述性: Fatal error: require_once(): Failed opening required '/usr/share/php/php-gettext/gettext.inc' (include_path='.') in /usr/share/phpmyadmin/libraries/common.inc.php on line 477

我注意到我以某种方式丢失了php-gettext debian软件包,但是在安装之后,phpMyAdmin再次起作用。

就我而言,此错误是间歇性的,我已经安装了phpMyAdmin并可以正常运行数年。在这里阅读答案,似乎该错误可能与会话有关。

在Ubuntu 16.04上,PHP会话位于:中/var/lib/php/sessions
,如下所示:

$ sudo ls -al /var/lib/php/sessions/
total 128
drwx-wx-wt 2 root     root     73728 Mar  4 14:09 .
drwxr-xr-x 4 root     root      4096 Mar  8  2017 ..
-rw------- 1 www-data www-data    67 Mar  4 14:05 sess_dvg6vo1k1s1c0353rjk09g9vu1
-rw------- 1 www-data www-data    67 Mar  4 13:49 sess_e4ha0gl4f7gukku1o2uc4h5rs2
-rw------- 1 www-data www-data    67 Mar  4 14:05 sess_qhbve6k4a7svu6pk0lk568jgt0
-rw------- 1 www-data www-data    67 Mar  4 13:49 sess_sh48e898i7ad14oidsph08in10
-rw------- 1 www-data www-data 30044 Mar  4 14:04 sess_uvumc2341dvtfikl27kpile46pmfbon1

(列表中的最后一个对我来说看起来很“有趣”。)

我首先尝试重新启动,apache2但是会话显然可以幸免。所以我只是删除了它们。(不知道清除它们的另一种方法。)刷新浏览器后,将显示phpMyAdmin登录名,并且一切正常。

在config.inc.php中出现解析错误后,我遇到了这个问题。不幸的是,phpMyAdminerror_reporting(0)在读取配置文件时进行设置。打开库/Config.class.php,搜索$old_error_reporting = error_reporting(0);并将其替换$old_error_reporting = error_reporting(E_ALL);为正在发生的情况。当然,出于安全原因,您应该稍后还原此更改。

本文地址:http://php.askforanswer.com/diaoyongweidingyidehanshu__cuowu-phpmyadmin.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!