カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告



最近の記事

カテゴリー

DATE: CATEGORY:TECH


AWS上でなぜかmb_strimwidthを読み込んだ時点から動かない。

なんでだなんでだ、と思ってたらAWSではデフォルトでPHPの
マルチバイト関数がうまく動かなかったという話。

日本国内は問題ないんですが、海外系のサーバはこういう環境が多いみたい。
というわけで、こんな状態の時の対処方法を覚書。

php-mbstringをインストール


実は対処方法は簡単でmbstringをインストールするだけ。

# yum install php-mbstring
# /etc/init.d/httpd restart


とりあえず、これであっさりmb_strimwidthが動きました。
その他、マルチバイト関連の関数も動くようになってます。

あとは、コレに伴う設定を確認しておきます。

php.iniの設定を確認/修正


mbstringをインストールしてmb_strimwidthを使ってみていましたが、
ちょうどカットしたところが文字化けを起こしています。

mb_strimwidth(DLNAを使ってVIErAでPCの動画を見る方法:なんとなしの日記,0,60,"...");
この結果が、こんな感じ。
「SIM???��?��??phone??iOS 5??ocomo??IM??使�???��??��??��?��?...」


原因は「php.ini」の設定の問題です。
とりあえず、mbstring系の設定を環境に合わせて文字コード
を修正しておきましょう。

おそらく最近はもっぱらUTF-8を使っているかと思いますが、
php.iniの設定はEUC-JPになっているケースが多いようです。

というわけでこんな感じに修正しておきました。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off


設定変更後、httpdを再起動

# /etc/init.d/httpd restart


結果、こんな感じ。

「DLNAを使ってVIErAでPCの動画を見る方法:なんとなしの日記」



正しく出ました☆ 以上。

追伸
mb_strimwidthはエンコードを設定できるのでその対処でもいいんですが、
基本的な設定、ということでphp.iniを変更しておきました。

タグ : AWS PHP TECH

Comment

コメントの投稿

管理者にだけ表示を許可する


トラックバック


この記事にトラックバックする



copyright © なんとなしの日記 all rights reserved.
内職☆在宅ワークの最強は?アフィリエイト!. 初心者だってカッコ良いホームページ作るぅ!
Powered by FC2ブログ
Related Posts Plugin for WordPress, Blogger...