70

我有运行PHP7和 phpmyadmin的Ubuntu 16.04 LTS 。但是,我收到很多弃用通知,例如:

Deprecation Notice in ./../php/php-gettext/streams.php#48  
Methods with the same name as their class will not be constructors in a future version of PHP; StringReader has a deprecated constructor

Backtrace  
./../php/php-gettext/gettext.inc#41: require()  
./libraries/select_lang.lib.php#477: require_once(./../php/php-gettext/gettext.inc)  
./libraries/common.inc.php#569: require(./libraries/select_lang.lib.php)  
./index.php#12: require_once(./libraries/common.inc.php)

这是一个问题吗?我怎样才能摆脱这些通知(每次加载页面或执行操作时它们都会弹出)?

4

20 回答 20

112

我遇到了这个问题,并通过简单地重新安装 phpmyadmin 及其依赖项来解决它。运行以下命令:

sudo apt-get remove --purge phpmyadmin php-gettext php-mbstring -y
sudo apt-get autoremove -y
sudo apt-get update
sudo apt-get install phpmyadmin php-gettext php-mbstring -y

重新安装后,您应该和新的一样好!

于 2017-02-11T16:24:31.593 回答
79

我解决此问题的方法是按照 askubuntu 说明在 phpmyadmin 中使用 16.04 折旧通知错误。它涉及更改 /usr/share/php/php-gettext/streams.php 中的三行和 /usr/share/php/php-gettext/gettext.php 中的一行。

从该链接,这是您需要做的更改(如果您有 ubuntu 16.04):

sudo nano /usr/share/php/php-gettext/streams.php

第 48 行 StringReader 错误。

转到第 52 行并更改

function StringReader ($str='') {

function __construct($str='') {

第 84 行 FileReader 错误

转到第 90 行并更改

function FileReader($filename) {

function __construct($filename) {

第 145 行 CacheFileReader 错误

转到第 146 行并更改

function CachedFileReader($filename) {

function __construct($filename) {

使用sudo nano /usr/share/php/php-gettext/gettext.php.

第 36 行 gettext_reader { 错误

我想你现在明白了,转到第 101 行并更改

function gettext_reader($Reader, $enable_cache = true) {

function __construct($Reader, $enable_cache = true) {
于 2017-03-15T20:00:33.053 回答
40

您可以为 phpmyadmin 使用另一个 PPA。这里是PPA 链接

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt update
sudo apt install phpmyadmin

由于它只是一个临时解决方案或不是最佳解决方案,直到重建 ubuntu repos 中的 phpmyadmin 包。

于 2016-10-14T02:44:43.303 回答
23

您应该尝试在您的 php.ini 中设置 error_reporting = ~E_DEPRECATED,这将消除弃用错误。它应该类似于error_reporting = ~E_DEPRECATED & E_ALL. 请让我知道它是否有效。

于 2016-05-03T11:17:39.700 回答
16

亲爱的@BeniaminPantiru,您的回答是正确的,但您的解决方案并没有解决问题,因为您告诉 Apache 不要显示弃用错误而不是修复错误。但我们可以通过升级必要的安全更新和软件包来轻松修复此错误。键入以下命令将解决问题。

sudo apt-get dist-upgrade
于 2016-08-25T14:06:48.297 回答
8

对于 PHP 7.3+

编辑以下文件:config.inc.php。它可以位于/etc/phpmyadmin/config.inc.php/usr/share/phpmyadmin/config.inc.php

/**
 * Whether or not to query the user before sending the error report to
 * the phpMyAdmin team when a JavaScript error occurs
 *
 * Available options
 * ('ask' | 'always' | 'never')
 * default = 'ask'
 */

$cfg['SendErrorReports'] = 'never';
于 2020-09-26T09:03:07.543 回答
5

您没有提及您正在使用哪个版本的 phpMyAdmin 或它的安装位置,但它似乎是 Ubuntu 打包版本 4.5.4.1 或源代码中相当旧且不受支持的版本。无论哪种方式,我相信您的问题已在https://github.com/phpmyadmin/phpmyadmin/issues/11462报告(并已修复) ——如果您使用的是 Ubuntu 打包版本,那里的评论建议 nijel PPA 版本应该对你更好。

当然,Beniamin Pantiru 接受的答案也很好,如果您正在运行生产服务器,则作为标准最佳实践,无论如何都应该减少 PHP 显示的警告和错误的数量。

于 2016-05-04T17:40:10.770 回答
5

我有同样的问题。我只是想在清除 phpmyadmin 并重新安装它之前提一下。尝试重新启动 Apache。就我而言,这是最简单的方法,我首先尝试了它。我只是想让人们节省时间。

 sudo service apache2 restart
于 2018-08-05T21:58:39.673 回答
3

我已通过在 php.ini 文件路径 /etc/php/7.0 中将错误报告设置为以下内容来修复

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

共同价值观:

 E_ALL (Show all errors, warnings and notices including coding standards.)

 E_ALL & ~E_NOTICE  (Show all errors, except for notices)

 E_ALL & ~E_NOTICE & ~E_STRICT  (Show all errors, except for notices and coding standards warnings.)

 E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)

 Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
于 2017-05-12T06:51:48.027 回答
2

该问题是由过时的 PHP 类构造函数语法引起的。要解决此问题,请在终端上运行以下代码:

sed -ri.bak 's:function StringReader.*:function __construct($str=\x27\x27) {:' /usr/share/php/php-gettext/streams.php
sed -ri 's:function FileReader.*:function __construct($filename) {:' /usr/share/php/php-gettext/streams.php
sed -ri 's:function CachedFileReader.*:function __construct($filename) {:' /usr/share/php/php-gettext/streams.php
sed -ri.bak 's:function gettext_reader.*:function __construct($Reader, $enable_cache = true) {:' /usr/share/php/php-gettext/gettext.php
于 2018-07-11T08:49:35.783 回答
1

使用 sudo apt-get dist-upgrade 更新服务器对我有用,然后重新启动 apache。

我认为这个问题是由于没有足够频繁地更新 phpmyadmin 引起的。

于 2017-12-08T03:54:37.103 回答
1

直到它在依赖项本身中得到解决(在您的情况下为 php-gettext)并且您不想更改全局 PHP 设置以便您的其他内容不受影响,您可能想尝试通过放置自定义 PHPMyadmin 的 index.php

error_reporting( ~E_DEPRECATED & E_ALL );

在开始的某个地方或通过使用

php_value error_reporting 24575

在 .htdocs 或虚拟主机配置指令中。我认为后一种选择更好。

于 2018-02-26T17:17:57.657 回答
1

我不想弄乱 php 安装,因此我刚刚重新启动了我的 Apache,它对我来说非常有效。

"sudo service apache2 restart"
于 2019-07-23T11:03:43.657 回答
0

我以不同的方式解决了这个问题,因为我从较新的 Ubuntu 下载了官方软件包:

https://packages.ubuntu.com/search?keywords=phpmyadmin

然后安装它:

sudo dpkg -i phpmyadmin_4.6.6-5_all.deb

因此,不必使用非官方存储库,并且该软件包将在以后简单地更新。

于 2018-05-01T08:50:15.147 回答
0

phpMyAdmin 登录页面上的“弃用通知”消息

好的,这个问题很容易通过编辑解决/etc/php/7.0/apache2/php.ini

将值更改error_reporting为:

error_reporting = ~E_DEPRECATED & E_ALL.   

默认情况下它在评论位置,所以取消评论并更改它。

然后重启阿帕奇

systemctl restart apache2

或第二种解决方案

apt-get purge phpmyadmin
apt-get install phpmyadmin

如果需要然后安装

apt-get install php7.0-mbstring

然后重启阿帕奇

systemctl restart apache2

好吧,“弃用通知”消息不再显示。

于 2018-07-17T13:40:12.370 回答
0

当您之前运行的原始 PHP 版本与当前 PHP 服务器版本不匹配时,就会出现问题。根据您安装的 PHP 版本,这应该足够了。

sudo apt-get update
sudo apt-get install phpmyadmin php7.0-gettext php7.0-mbstring -y
于 2019-03-06T10:43:40.143 回答
0

我遇到了同样的问题,这里提出的解决方案都没有奏效。

我的配置是 Ubuntu 16.04 和 php 7。

我解决了将 phpmyadmin 重新安装到最新版本(5.02)的问题。这个过程非常简单。通过重命名备份你的phpmyadmin文件夹('/usr/share/phpmyadmin/'到'/usr/share/phpmyadmin.bak/'),创建另一个文件夹'/usr/share/phpmyadmin/',下载最新版本的phpmyadmin并在新创建的文件夹“/usr/share/phpmyadmin/”中复制文件。您的版本现已升级。就我而言,弃用通知消失了。

该过程可能会引发一对其他错误,您可以按照本指南https://devanswers.co/manually-upgrade-phpmyadmin/摆脱这些错误

于 2020-09-02T10:44:24.477 回答
-1

最佳答案的另一件事;需要添加

Include /etc/phpmyadmin/apache.conf

/etc/apache2/apache2.conf

并重新启动 Apache:

/etc/init.d/apache2 restart
于 2017-09-21T01:03:10.813 回答
-3

最后我永久地解决了这个问题。

在您的服务器中找到您的php.ini文件。它应该在/etc/php/7.0/apache2文件夹中

用 nano 打开

nano /etc/php/7.0/apache2/php.ini

在 php.ini 文件中查找 (ctrl+w) upload_max_filesize = 2M (默认)

根据需要将默认值更改为 50M 或 100M 或 20M。

保存并重启apache2服务

service apache2 restart

请告诉我你的满意:-)

于 2017-05-28T04:04:49.273 回答
-6

重新启动服务器帮助了我

shutdown -r now
于 2017-05-30T22:19:48.850 回答