带有phpmyadmin的PHP 7提供了大量的弃用通知

时间:2016-05-03 11:10:18

标签: phpmyadmin php-7 ubuntu-16.04

我运行了 PHP7 Ubuntu 16.04 LTS 并安装了phpmyadmin。 但是,我得到了许多弃用通知,如:

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)

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

19 个答案:

答案 0 :(得分:105)

我遇到了这个问题并通过简单的重新安装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

重新安装后,你应该像新手一样好!

答案 1 :(得分:53)

我解决此问题的方法是遵循depreciation notice error in phpmyadmin with 16.04处的askubuntu说明。它涉及更改/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) {

答案 2 :(得分:40)

您可以为phpmyadmin使用另一个PPA。这是PPA Link

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

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

答案 3 :(得分:22)

您应该尝试在php.ini中设置error_reporting = ~E_DEPRECATED,这将删除弃用错误。它应该与error_reporting = ~E_DEPRECATED & E_ALL类似。 如果有效,请告诉我。

答案 4 :(得分:17)

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

sudo apt-get dist-upgrade

答案 5 :(得分:5)

您没有提到您使用的是哪个版本的phpMyAdmin,也没有提到它的安装位置,但它似乎是Ubuntu打包版本4.5.4.1或来自源的相当陈旧且不受支持的版本。无论哪种方式,我相信您的问题已在https://github.com/phpmyadmin/phpmyadmin/issues/11462报告(并已修复) - 如果您使用的是Ubuntu打包版本,则其中的评论表明nijel PPA版本应该更适合您。

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

答案 6 :(得分: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

答案 7 :(得分:2)

对于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';

答案 8 :(得分:2)

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

 sudo service apache2 restart

答案 9 :(得分:2)

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

我认为这个问题是由于没有经常更新phpmyadmin引起的。

答案 10 :(得分:0)

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

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

然后安装它:

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

因此,人们不必使用非官方的存储库,稍后将简单地更新包。

答案 11 :(得分:0)

该问题是由过时的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

答案 12 :(得分:0)

phpMyAdmin登录页面上的

“弃用通知”消息

好的,通过编辑php.ini文件可以轻松解决此问题:

文件路径:/etc/php/7.0/apache2/php.ini

将error_reporting值更改为:

CODE: SELECT ALL

error_reporting = ~E_DEPRECATED & E_ALL.   

默认情况下,它位于注释位置,因此请取消注释并更改它。

然后重新启动Apache:

# systemctl restart apache2

第二种解决方案

apt-get purge phpmyadmin

apt-get install phpmyadmin

如果需要先安装

apt-get install php7.0-mbstring

然后重新启动Apache:

# systemctl restart apache2

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

答案 13 :(得分:0)

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

sudo apt-get update
sudo apt-get install phpmyadmin php7.0-gettext php7.0-mbstring -y

答案 14 :(得分:0)

我不想弄乱php的安装,因此我只是重新启动了Apache,它对我来说工作得很好。

"sudo service apache2 restart"

答案 15 :(得分: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/

答案 16 :(得分:-1)

最佳答案还有一件事;需要添加

Include /etc/phpmyadmin/apache.conf

/etc/apache2/apache2.conf

并重新启动Apache:

/etc/init.d/apache2 restart

答案 17 :(得分:-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

请告诉我你的满意度: - )

答案 18 :(得分:-5)

重新启动服务器帮助我

shutdown -r now