我运行了 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)
这是一个问题吗?如何摆脱这些通知(每次加载页面或执行操作时它们会弹出)?
答案 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)
“弃用通知”消息
好的,通过编辑php.ini文件可以轻松解决此问题:
文件路径:/etc/php/7.0/apache2/php.ini
将error_reporting值更改为:
CODE: SELECT ALL
error_reporting = ~E_DEPRECATED & E_ALL.
默认情况下,它位于注释位置,因此请取消注释并更改它。
然后重新启动Apache:
# systemctl restart apache2
第二种解决方案
如果需要先安装
然后重新启动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