web-dev-qa-db-ja.com

PHP 7でmbstringを初期化できません

PhpMyAdminにアクセスしようとすると、次のエラーが表示されます。

"mbstring拡張モジュールがありません。PHP設定を確認してください。"

CentOS 7サーバーでLEMPスタックを実行しています。このインストールにはPHP 7を使用することにしました。 PHPの以前のバージョンを実行している同一のセットアップでは、このエラーは発生していません。

extension_loaded('mbstring')は、mbstring.ini(/etc/php.d/)に以下が含まれていてもfalseを返します。

; Enable mbstring extension module
extension=mbstring.so

Mbstringモジュールがサーバーにインストールされていることを100%確信しています。

私は完全に困惑しているので、誰かが何かアイデアを持っているなら、私に知らせてください。ありがとう。

39
NoahMCM

次の方法で解決策に到達しました。

PHPがデフォルトでモジュールをロードするために使用するメソッドではなくなった場合でも、extension=mbstring.soをphp.ini内に配置します。

Php.ini自体から:

注:パッケージ化された拡張モジュールは、ディレクトリ/etc/php.dにある.iniファイルを介してロードされるようになりました。これらはデフォルトでロードされます。

私の問題を解決したようです。他の誰かがこの問題について異なる見解を持っているかどうか、私はまだ興味があります。

5
NoahMCM

Debianを持っている人のために:

 Sudo apt-get install php7.0-mbstring

それ以外の場合は、centosで(centos 6.6でテスト済み)

Sudo yum install php70w-mbstring

そして、@ mpenが言ったように、あなたはそれをアクティブにできます

Sudo phpenmod mbstring
83
Chopchop

CentOS上のPHP7の場合

これを試してくださいyum install php70-mbstring

1
Sankar Subburaj

私は長い間この問題を抱えていました。私はそれを修正する正しい方法を見つけました(私にとって)...そしてそれはかなり簡単です:)

Justeはxenial-updatesに「ユニバース」を追加します

# cat /etc/apt/sources.list.d/*
deb [Arch=AMD64] http://fr.archive.ubuntu.com/ubuntu/ xenial-backports main
deb [Arch=AMD64] http://fr.archive.ubuntu.com/ubuntu/ xenial main universe
deb [Arch=AMD64] http://fr.archive.ubuntu.com/ubuntu/ xenial-proposed main
deb [Arch=AMD64] http://security.ubuntu.com/ubuntu xenial-security main
deb [Arch=AMD64] http://fr.archive.ubuntu.com/ubuntu/ xenial-updates main **universe**
0
stadja