🙌

【PHP】「Class 'Normalizer' not found」の解決方法

2021/05/03に公開

エラー内容

Class 'Normalizer' not found 

環境

  • AWS Amazon linux 2
  • Amazon Linux Extras(パッケージ管理)
  • Apache 2.4
  • PHP 7.3

解決方法

intl拡張モジュールをインストールする

手順

  1. インストール可能なパッケージを検索する
    yum listyum searchを使って、intl関連で利用可能なパッケージを確認する

    $ yum list available | grep intl
    
    perl-libintl.x86_64                        php-intl.x86_64 
    
    $ yum search intl
    
    読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
    =================================================================================================== N/S matched: intl ===================================================================================================
    perl-libintl.x86_64 : Internationalization library for Perl, compatible with gettext
    php-intl.x86_64 : Internationalization extension for PHP applications
    
    Name and summary matches only, use "search all" for everything.
    
  2. php-intl.x86_64 をインストールする

    $ yum install php-intl.x86_64
    
    
    読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
    amzn2-core                                                                                                                                                                                        | 2.4 kB  00:00:00     
    amzn2extra-docker                                                                                                                                                                                 | 1.8 kB  00:00:00     
    amzn2extra-php7.3                                                                                                                                                                                 | 1.8 kB  00:00:00     
    依存性の解決をしています
    --> トランザクションの確認を実行しています。
    ---> パッケージ php-intl.x86_64 0:7.3.17-2.amzn2 を インストール
    --> 依存性解決を終了しました。
    
    依存性を解決しました
    
    =========================================================================================================================================================================================================================
    Package                                          アーキテクチャー                               バージョン                                              リポジトリー                                               容量
    =========================================================================================================================================================================================================================
    インストール中:
    php-intl                                         x86_64                                         7.3.17-2.amzn2                                          amzn2extra-php7.3                                         223 k
    
    トランザクションの要約
    =========================================================================================================================================================================================================================
    インストール  1 パッケージ
    
    総ダウンロード容量: 223 k
    インストール容量: 909 k
    Is this ok [y/d/N]: y
    Downloading packages:
    php-intl-7.3.17-2.amzn2.x86_64.rpm                                                                                                                                                                | 223 kB  00:00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    インストール中          : php-intl-7.3.17-2.amzn2.x86_64                                                                                                                                                           1/1 
    検証中                  : php-intl-7.3.17-2.amzn2.x86_64                                                                                                                                                           1/1 
    
    インストール:
    php-intl.x86_64 0:7.3.17-2.amzn2                                                                                                                                                                                       
    
    完了しました!
    
  3. サーバーを再起動せずに設定を反映する

    $ systemctl reload httpd.service
    

参考

Amazon Linux Extras
https://aws.amazon.com/jp/amazon-linux-2/faqs/?nc1=h_ls
Intl
https://www.php.net/manual/ja/intro.intl.php
Normalizer
https://www.php.net/manual/ja/class.normalizer.php

Discussion