質問: お世話になります。 PHPでsetlocaleを使わずに、ロケールの指定をしたいのですが、php.ini等でできるのでしょうか。 ちなみに、.htaccessに ``` SetEnv LANG "ja_JP.UTF-8" ``` と記載してみましたが、反映されていないようです。 何か良い方法があれば、教えていただけると幸いです。 以上、よろしくお願いいたします。
回答: 出来るようです。 PHP7.2をインストール後のphp.iniの設定 > > PHPをインストール後に最低限デフォルト値から変更する項目を書いておく > > ※書いてある項目以外にもあるとは思います。 > > 対象バージョン > > PHP 7.2 > > php.ini設定 > > > > ``` > ; デフォルト文字コード > default_charset = UTF-8 > ; mbstringのデフォルトの言語 > mbstring.language = Japanese > ; HTTP入力文字のエンコーディングを内部文字のエンコーディングに自動変換なし > mbstring.encoding_translation = Off > ; 文字コードを自動検出する際の優先順位 > mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII > ; タイムゾーンを日本標準時間 > date.timezone = Asia/Tokyo > ; HTTPのレスポンスによりPHPのバージョン情報を非表示 > expose_php = Off > > ; 以下はPHP5.6以降で非推奨になっているのでコメントアウトしておく > ;mbstring.internal_encoding = > ;mbstring.http_input = > ;mbstring.http_output = > > ``` > > ちなみに、Apacheによる設定は、.htaccess ではなく、以下でやるようです。 CentOSでApacheを日本語ロケール(ja_JP.utf8)で起動する > > ApacheをRHEL/CentOSのパッケージで導入した場合(デフォルト) > > ja_JP.utf8に設定するには、 /etc/sysconfig/httpd に以下の行を追加します。 > > > ``` HTTPD_LANG=ja_JP.utf8 ``` > > Apacheをソースコードからビルドしてインストールした場合 > > /usr/local/apache2/bin/envvars に以下の行を追加します。このファイルは apachectl 実行時に読み込まれます。 > > > ``` LANG=ja_JP.utf8 export LANG ``` 類似の注意 PHP動作環境で先頭の漢字のみ文字化けするケースがある > > ちなみに、httpd.confに「SetEnv LANG ~」と書くことによる変更はできないようです。 > > >