現在、zumaはレンタルサーバをcoreserverに乗換しようと思っています。
現在はさくらインターネットのスタンダードプランなのですが、
- 年間どちらも5,000円
- さくらインターネットは1GB、coreserverは15GB
- coreserverはブログ(MT)に必要なMySQLがいっぱい作れるし、サブドメインもたくさん使える(確か無制限)
ということで、同じ値段ならいろいろ使えそうなcoreserverがいいと思い、現在お試し期間中(15日間)なのです。
で、私はオンラインショップ「珠しづく」をPHPで運営しています。
そのオンラインショップをcoreserverのほうに移してみたら・・・
このように文字化けが!(今までよく化けなかったもんだ)
どうしたもんかとネットで調べてみたところ、文字化けが起きているphpファイルがあるフォルダに「.htaccess」ファイルを入れてやればよい、ということが判明。以下、覚え書きです。
しかし、phpって何ぞや状態のzuma。まーた時間がかかりました、解決までに。だって.htaccessファイルに何を書いたらいいか分からんのと、どうやって書いたらいいのかが分からんのよ。
最初、ただ単に、.htaccessファイルに
php_flag mbstring.http_input=EUC-JP
php_flag mbstring.http_output=EUC-JP
php_flag mbstring.internal_encoding=EUC-JP
って書いてただけだもの(笑)。これじゃあ絶対直りませんて。(phpをわかっている人が見たら失笑するであろう)
えーと、手順として
- phpinfo()で、coreserverのサーバ中身を見る
- 文字化け原因を探す(mbstringのところ)
- 文字化け原因を解消するコード?を書いた.htaccessファイルを作って、該当フォルダにアップロードする
ということをやりました。
まず、
1.phpinfo()ファイルを作る
<?php
phpinfo();
?>
- テキストエディタにこれだけ書いて、「phpinfo.php」というファイル名をつけて保存し、適当なフォルダ(いま、問題が起きているファイルがあるフォルダでよい)にアップロードする。
- そのフォルダをブラウザで見る
するとこんな風に表示されます
2.文字化け原因を探す
coreserverは、phpが吐き出すソース(っていうのか?)の文字コードをutf-8にしているため、それが原因で化けていたようです。ちなみに「珠しづく」でお借りしているショッピングカートはEUC-JPで出来ています。
3..htaccessファイルを作る
- テキストエディタに以下のように書く
<ifmodule mod_php5.c>
#お使いのphpのバージョンが4なら、5→4に変えるphp_value include_path “.:/***/***/*****/php”
#include_pathを書く phpinfo.phpに書いてありますphp_value mbstring.internal_encoding “EUC-JP”
#文字化け原因のutf-8だったところをEUC-JPに直すphp_value mbstring.http_output “EUC-JP”
#文字化け原因のutf-8だったところをEUC-JPに直す</ifmodule>
- 書いたら、zzz.htaccessとでも名前をつけて保存する
- zzz.htaccessを該当フォルダへアップロードし、「.htaccess」(zzzを削除する)にリネームする
アップロードするときはアスキーモード(デフォルトではバイナリモードになっていることが多い)でアップロードすること。
結果、文字化けが直りました!
しかし、モトから化けてないところもあるので、良く分からんなぁと思ったデキゴトでした。
参考になったサイト:
コメント欄を閉じました