前々からConcrete5には興味があったのですが、PHPカンファレンスのブースにて、Concrete5 Japanの菱川さんに色々ご相談させていただき、早速ローカル環境にインストール。

会社のMTGにて簡単にプレゼンテーションをすべく手元にあった手頃なサーバ、hetemlにインストールしようとしたところ、怪しい大量の文字列が吐き出されるという現象が・・・。

ハマるまでの流れ(普通はこれでインストールできるはずガイド)

5.6系は、何の問題もなく動いていたので、Concrete5日本語公式サイトから最新の5.7.0.4をダウンロード。

解凍したファイルを、サーバにアップロード。初回は解凍してアップロードしたのですが、結構時間がかかったので、怖くなければzipファイルをアップロードして、SSHからコマンドのunzipしたほうが良いと思います。

 

インストール

アップロードした場所にブラウザからアクセス。

スクリーンショット 2014-10-15 19.27.38

こんな感じで言語を聞かれるので、とりあえず日本語で進めました!

スクリーンショット 2014-10-15 19.30.34

おっと、何やら設定されてるメモリが足りないと怒られていますね。

軽やかにhetemlの管理画面でphp.iniを編集しましょう。

Concrete5は64MB欲しいと言っているようなので、「そのほか」の中にある、memory_limitの項目を100に設定。

設定してインストール画面を再読み込みすれば無事、メモリが足りているようで、インストールへ進む事ができました。

DB情報などの設定項目を入力し、いざフルサイトでインストール!

スクリーンショット 2014-10-15 19.39.40

プログレスバーが動き出し、インストールが進んで行きます。

 

インストール完了!

やったね!最高に簡単!と思ったのもつかの間。

編集モードに切り替えた途端、

スクリーンショット 2014-10-15 19.44.16

こんな感じの謎の文字列が・・・・。

ブラウザの文字エンコードを変えても直らず、出力されているHTMLのソースを確認することに。

<header>
 <div class="container">
 <div class="row">
 <div class="col-sm-4 col-xs-6">
 㰿灨瀠ਯ⨠䍡捨敫敹㨠捡捨支獴慳桟摥晡畬(以下略)

何やら文字化けというかなんというか、変な文字列が生成されているようですね。。。

疑うべきはMySQLとphp.ini?

というわけでさっきも触っていたphp.iniの設定を見直し。

mbstring.internal_encoding : UTF-8

mbstring.language : neutral

default_charset : UTF-8

と、注意すべきポイントは一応ドキュメント通り・・・。

MySQLは・・・

oops!

データ接続の照合順序がutf8mb4_general_ciになっているじゃないか・・・。

何度utf8_general_ciにしても直らない・・・・。というか強制的にutf8mb4_general_ciにされてしまう・・・。

 

菱川さんのfacebookでシェアしていただき(ここから派生してDB照合順序については日本語公式フォーラムでトピックをたてていただきました!)、色々と有用な情報を頂いたりしているのですが、なかなか原因の特定には至らず。

試しに言語を英語にしてみると、怪しい文字列が消えるものの、日本語に戻すと再度現れる・・・。

ユーザーフォーラムの情報で、英語でインストールしてから日本語に変更してもやはりヤツは現れるのです。

vagrantではしっかり日本語で動いているのです。。。

別にhetemlでなくても良いのですが、せっかくなので動かしたいじゃないですか・・・。

 

というわけで、引き続き時間を見つけて問題を探っていきますか・・・。

 

続報

5.7.1で、インストールできるようになりました!