concrete5サイトが突然の文字化け!データベース設定で回避Contents Management System

concrete5サイトが突然の文字化け!データベース設定で回避

concrete5 DB

突然、昔作ったconcrete5がサイトが文字化けしました。データベースを読み込む際のOption設定で文字化けを回避できるのでそのやり方についてご紹介します。

concrete5の設定で気をつけること

concrete5では、あらかじめphp.iniや.htaccessで文字コードをUTF-8に設定しておくのは必須です。データベースもutf8_general_ciで新規作成します。これをしておかないとインストール時にカオスになることも。。。

レンサバなどで簡単インストールなどが付いている場合はそっちでやったほうが失敗は少ないのでおすすめです。

concrete5インストールまでの準備

突然の文字化け

今回は、X-serverに実装しているconcrete5サイトが文字化けしてしまいました。それまでは通常通り見れていました。sqlデータ落としてファイル開いてみたけど異常なし。

X-serverはCGI版でphp.iniを変更することができます。

サーバー内を確認すると.htaccessとphp.iniが更新されている形跡が。。。エンコードもなぜかEUCになっておりなぜこんなことになったのかが分からず、とりあえずUTF-8に変えて更新。それでも相変わらず文字化けが直らない。

うちの会社で運用しているサイトではないですが、とても付き合いの長い方のお客様だったので早く解決してあげたいし、原因は分からないし途方に暮れていると、concrete5側でデータベース設定ができることを思い出しました。

concrete5側でデータベースのdriverOptionsを修正

concrete5にはapplication/config/内にdatabase.phpというファイルがあり、ここにデータベースの設定があります。ここでMySQLを読み込むドライバーのオプション設定を変えることができます。

MySQLとPDOの組み合わせでcharsetを指定するconcrete5でのデフォルトのドライバーはPDOが指定されてます。以下のコードを追加します。

'driverOptions' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')

MYSQL_ATTR_INIT_COMMANDの文字コードをutf8にセット。場合によってはutf8だけでいい場合も。

まずはMySQLの文字コードをよく確認してみてください。

とりあえずは一件落着

最近、大きなアップデートがあったことで思い当たる節は、WAFに対応?PHPのバージョン?結局、なんで急に文字化けしたのかは分からないです。。。。

もしみなさんも困った時はやってみてください。

関連記事もあわせてお読みください

Read More Blogs

Web制作に関する人気の記事

セブ島・海外移住に関する人気の記事

キャリアアップ・ライフスタイルに関する人気の記事

管理人について

IT戦士:かみーゆ

私、フロントエンドエンジニアのかみーゆです。日本でフロントエンドを中心に約10年Web制作 →→→ セブ島に転職してエンジニア講師 →→→ オフショア開発担当者(イマココ)。13歳の頃から「好きなように生きて好きなように死ぬ」が人生のKPI。なので、「楽しいか」、「かっこいいか」でやることを判断・取捨択一しています。好きなものは肉とビール。

About Me