buntu 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)
これは問題ですか?これらの通知を取り除くにはどうすればよいですか(ページがロードされるかアクションが実行されるたびにポップアップします)?
この問題があり、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
再インストールしたら、新品のようになります!
この問題を修正した方法は、 16.04でのphpmyadminの減価償却通知エラー のaskubuntuの指示に従うことでした。 /usr/share/php/php-gettext/streams.phpの3行と/usr/share/php/php-gettext/gettext.phpの1行を変更する必要があります。
そのリンクから、これはあなたがする必要がある変更です(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 {error
要旨を取得し、101行目に移動して変更すると思います
function gettext_reader($Reader, $enable_cache = true) {
に
function __construct($Reader, $enable_cache = true) {
Phpmyadminには別のPPAを使用できます。ここでは PPA Link
Sudo add-apt-repository ppa:nijel/phpmyadmin
Sudo apt update
Sudo apt install phpmyadmin
これは一時的な解決策であるか、最適な解決策ではないため、ubuntuリポジトリのphpmyadminのパッケージが再構築されるまでです。
Php.iniでerror_reporting =〜E_DEPRECATEDを設定してみてください。これにより、非推奨エラーが削除されます。 error_reporting = ~E_DEPRECATED & E_ALL
に似ている必要があります。動作するかどうか教えてください。
親愛なる@BeniaminPantiruあなたの答えは正しいですが、あなたの解決策は、Apacheにエラーを修正するのではなく非推奨エラーを表示しないように指示しているため、問題を解決しません。ただし、必要なセキュリティ更新プログラムとパッケージをアップグレードすることにより、このエラーを簡単に修正できます。次のコマンドを入力して問題を解決します。
Sudo apt-get dist-upgrade
使用しているphpMyAdminのバージョンやインストール元については言及していませんが、Ubuntuパッケージバージョン4.5.4.1またはソースからの古いサポートされていないバージョンのようです。いずれにしても、あなたの問題は https://github.com/phpmyadmin/phpmyadmin/issues/11462 で報告された(そして修正された)と思います-Ubuntuパッケージ版を使用している場合は、コメントそこには、nijel PPAバージョンがより適切に機能することが示唆されています。
もちろん、Benamin Pantiruの受け入れられた答えも良いです。実稼働サーバーを実行している場合は、PHPが表示する警告とエラーの数を標準的なベストプラクティスとして減らす必要があります。
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
Sudo apt-get dist-upgradeを使用してサーバーを更新すると、Apacheが再起動しました。
この問題は、phpmyadminを頻繁に更新しないことが原因だと考えています。
同じ問題がありました。 phpmyadminを削除して再インストールする前に、そのことを伝えたかっただけです。 Apacheを再起動してください。私の場合、これは最も単純なアプローチであり、最初に試しました。人々に時間を節約してほしかっただけです。
Sudo service Apache2 restart
依存関係自体で解決され(あなたの場合はphp-gettext)、グローバルPHP設定を変更したくないので、他のものが影響を受けないようにするには、PHPMyadminのカスタマイズだけを試してください。を置くことによってindex.php
error_reporting( ~E_DEPRECATED & E_ALL );
最初のどこかを使用して
php_value error_reporting 24575
.htdocsまたは仮想ホスト構成ディレクティブのいずれか。後者の方が良いと思います。
この問題は、古い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
以前に実行していた元のPHPバージョンと現在のPHPサーバーバージョンの間に不一致があると、問題が発生します。インストールされているPHPバージョンに応じて、これで十分です。
Sudo apt-get update
Sudo apt-get install phpmyadmin php7.0-gettext php7.0-mbstring -y
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
または2番目のソリューション
インストールが必要な場合
次に、Apacheを再起動します。
# systemctl restart Apache2
さて、「廃止のお知らせ」メッセージは表示されなくなりました。
新しいUbuntuから公式パッケージをダウンロードしたという点で、この問題を別の方法で解決しました。
https://packages.ubuntu.com/search?keywords=phpmyadmin
そして、それをインストールしました:
Sudo dpkg -i phpmyadmin_4.6.6-5_all.deb
したがって、非公式のリポジトリを使用する必要はなく、パッケージは後で更新されます。
PHPのインストールを台無しにしたくないので、Apacheを再起動するだけで完全に機能しました。
"Sudo service Apache2 restart"