web-dev-qa-db-ja.com

未定義の関数Symfony \ Polyfill \ Mbstring \ iconv_strlen()の呼び出し

私のプロジェクトはローカルホストでは正常に動作しますが、オンラインでは動作せず、これがエラーです:

Fatal error: Call to undefined function Symfony\Polyfill\Mbstring\iconv_strlen() in /home/stram/public_html/vendor/symfony/polyfill-mbstring/Mbstring.php on line 338

グーグルで検索したところ、PHP拡張機能iconvをインストールする必要があることがわかりました。私がVPSを使用しているという問題と、利用可能なPHP拡張機能のリストに行ったときに、この拡張機能が見つかりませんでした。

enter image description here
enter image description here
enter image description here

事前にThnx。

11
SlimenTN

Symfonyは、そのような場合にiconv-polyfillを提供します。プロジェクトに要件として追加するだけで問題ありません。

composer require symfony/polyfill-iconv
20

また、古いバージョンのPHP、または iconvなしでコンパイルされたバージョンを使用している場合があります。

それを確認するには、PuTTYなどのSSHソフトウェアでphp --ri iconvを実行します。

Extension 'iconv' not present。と表示される場合、問題はPHPにあります。次に、いくつかのオプションがあります。

  • Php -vを実行してPHPバージョンを確認し、必要に応じて更新します
  • または、PHPをiconvで再度コンパイルします
  • または、使用する場合、WHM/cPanelでiconvを有効にします。
  • または、ホスティング会社にサポートを依頼してください
6

ここにあなたの問題の解決策があります(コマンドラインはCentOS用です):

EasyApache

4
yasin

解決済み:Cpanel/WHM STACKを使用している場合:WHM >> EasyApache4 >>現在インストールされているパッケージ>>カスタマイズに移動します

php extensionsを選択してiconvおよびdebugを検索し、両方をインストールしてからもう一度インストールしてみてください。

1

Mbstring拡張機能をインストールしても、Apacheを再起動しなかったときに同じエラーメッセージが表示されました。

必要なのは、することです

$ Sudo /opt/local/etc/LaunchDaemons/org.macports.Apache2/Apache2.wrapper restart

ええ、ここには長い道のりがありますが、それは私だけのためです。 MacPortsを使用しているからです

Apacheの場所を見つけるには

$ ps ax | grep Apache 

追伸.

iconv拡張機能もインストールしていません。リストでは、私が次のようにphp情報を呼び出すとリストされていません:

die(phpinfo()); 

ところで

macPortsで拡張機能をインストールするのは本当に簡単です。私のPHP 5.6私はちょうどやった:

$ Sudo port install php56-mbstring
0