Подтвердить что ты не робот

PHP 7 с phpmyadmin дает множество уведомлений об устаревании

У меня Ubuntu 16.04 LTS, работающий с PHP7 и установленным 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)

Это проблема? Как я могу избавиться от этих уведомлений (они появляются каждый раз, когда страница загружается или выполняется действие)?

4b9b3361

Ответ 1

У меня была эта проблема и она была решена с простой переустановкой 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

После переустановки вы должны быть хорошими как новые!

Ответ 2

Я решил эту проблему, следуя инструкциям 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) {

Ответ 3

Вы можете использовать другой PPA для phpmyadmin.Here PPA Link

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

Поскольку это только временное решение или не оптимальное, пока пакет phpmyadmin в репозиториях ubuntu не будет восстановлен.

Ответ 4

Вы должны попробовать в php.ini установить error_reporting = ~ E_DEPRECATED, это устранит ошибки устаревания. Он должен быть похож на error_reporting = ~E_DEPRECATED & E_ALL. Пожалуйста, дайте мне знать, если это сработает.

Ответ 5

Уважаемый @BeniaminPantiru, ваш ответ правильный, но ваше решение не решает проблему, потому что вы говорите Apache не показывать ошибки устаревания, а не исправлять ошибки. но мы можем легко исправить эту ошибку, обновив необходимые обновления безопасности и пакеты. введите следующую команду, чтобы решить проблему.

sudo apt-get dist-upgrade

Ответ 6

Вы не указали, какую версию phpMyAdmin вы используете или откуда она была установлена, но, похоже, это версия Ubuntu 4.5.4.1 или довольно старая и неподдерживаемая версия из источника. В любом случае, я полагаю, что ваша проблема была сообщена (и исправлена) в https://github.com/phpmyadmin/phpmyadmin/issues/11462 - если вы используете упакованную версию Ubuntu, комментарии там показывают, что nijel Версия PPA должна работать лучше для вас.

Конечно, Бениамин Пантиру согласился с ответом тоже хорошо, и если вы работаете с производственным сервером, вы должны уменьшить количество предупреждений и ошибок, отображаемых PHP, в любом случае в качестве стандартной лучшей практики.

Ответ 7

Я исправил, установив сообщение об ошибках в файл пути 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

Ответ 8

Обновление сервера сработало для меня с помощью sudo apt-get dist-upgrade, а затем перезапустило apache.

Я думаю, что эта проблема вызвана тем, что не обновлял phpmyadmin достаточно часто.

Ответ 9

Пока он не будет решен в самой зависимости (в вашем случае php-gettext), и вы не захотите изменять глобальные настройки PHP, чтобы не затрагивать ваши другие вещи, вы можете попытаться просто настроить PHPMyadmin index.php, поставив

error_reporting( ~E_DEPRECATED & E_ALL );

где-то в начале или с помощью

php_value error_reporting 24575

либо в .htdocs, либо в директиве конфигурации виртуального хоста. Я думаю, что последний вариант лучше.

Ответ 10

У меня такая же проблема. Я просто хотел упомянуть об этом, прежде чем очистить phpmyadmin и переустановить его. Попробуйте перезапустить Apache. В моем случае это был самый простой подход, и я попробовал его первым. Я просто хотел, чтобы люди экономили время.

 sudo service apache2 restart

Ответ 11

Проблема вызвана устаревшим синтаксисом конструктора классов 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

Я решил эту проблему по-другому, загрузив официальный пакет с более новой версии Ubuntu:

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

А потом установил его:

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

Таким образом, не нужно использовать неофициальные репозитории, и пакет будет просто обновлен позже.

Ответ 13

Сообщение "Уведомление об устаревании" на странице входа в 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 purg phpmyadmin

apt-get установить phpmyadmin

ЕСЛИ требуют, то устанавливают

apt-get установить php7.0-mbstring

Затем перезапустите Apache:

# systemctl restart apache2

Ну, сообщение "Уведомление об устаревании" больше не отображается.

Ответ 14

Проблема возникает в случае несоответствия между исходной версией PHP, с которой вы работали ранее, и текущей версией PHP-сервера. В зависимости от установленной версии PHP, этого должно быть достаточно.

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

Ответ 15

Я не хочу связываться с установками php, поэтому я просто перезапустил свой Apache, и он отлично сработал для меня.

"sudo service apache2 restart"

Ответ 16

Еще одна вещь для верхнего ответа; нужно добавить

Include /etc/phpmyadmin/apache.conf

to

/etc/apache2/apache2.conf

и перезапустите Apache:

/etc/init.d/apache2 restart

Ответ 17

наконец я решил эту проблему навсегда.

Найдите ваш php.ini файл на вашем сервере. Он должен находиться в папке /etc/php/7.0/apache2

открыть его с помощью nano

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

Найти (ctrl + w) upload_max_filesize= 2M (по умолчанию) в файле php.ini

измените значение по умолчанию на 50M или 100M или 20M, как вы пожелаете.

Сохранить и перезапустить службу apache2

service apache2 restart

и, пожалуйста, скажите мне ваше удовлетворение: -)

Ответ 18

перезагрузка сервера помогла мне

shutdown -r now