さくらレンサバで concrete5 8系を使うなら最新 Ver に Upgrade しとけ!Contents Management System

さくらレンサバで concrete5 8系を使うなら最新 Ver に Upgrade しとけ!

concrete5 vagrant php

去年レンタルサーバー(さくら)がの PHP のバージョンが勝手にアップグレードしてサイトが見れなくなってしまったことがあります。concrete5 8.2 では php7.2 で予約語のせいで動かなくなったみたいです。
そこで、concrete5 8.2 を php7.2 に対応する方法を紹介します。

結論、アップグレードすれば良い

まあ、concrete5 8.2 系以上は早い話アップグレードすれば大丈夫です。
concrete5の最新版を落としてきて、以下ファイルを上書きするだけでオッケーです。

  • composer.json
  • composer.lock
  • /concrete

くれぐれも言いますが、concrete5 をカスタマイズする時は絶対/concrete内をカスタマイズしてはいけません。このフォルダはコアで汚染されると大ごとです。
/application 内にカスタマイズしたいファイルやディレクトリなどをコピーしてカスタマイズして置くとオーバーライドされます。

ただ、自作のブロックやコントローラがきちんと新しいバージョンで動くか不安ですよね。concrete5 は WordPress みたくリファレンスがもりもりあるわけではありませんので、困ったときは私はコンクリートファイブジャパンの代表・菱川さんのブログか、本家のリファレンス(English)か、Katzさんのブログを参考にしています。
たまにググりきれない時は、致し方なくコア(concreteディレクトリ内)を漁って作っていることもあります。
なので、オラオラとカスタマイズした自分のサイトが下手したら動かなくなるかもしれないので、容易にアップグレードというわけには行きません。

現サイトのデータを落としてきて、ローカルに構築

Vagrant で php7.2 環境でインストールするとやはり以下のエラー。

(E_COMPILE_ERROR)
Cannot use Concrete\Core\Foundation\Object as Object because 'Object' is a special class name

なので、一旦 Vagrant の php を 7.1 ダウングレードして、concrete5 をアップグレード。
concrete5 を 8.4系(現時点の最新)にアップグレード。
Vagrant の php を 7.2 にアップグレードして確認。

問題なく、アップグレードできました。ほ。

まとめ

concrete5 8系をお使いの方で、レンサバのセキュリティ問題で php が突然アップグレードして私のようにびっくりしている人、困っている人もいると思います。
解決方法はアップグレードのみです。
カスタマイズ入れている人、特殊なテーマ・ブロックを使っている人は慎重にやった方がいいとは思います。
参考にしていただければと思います。
最後まで、お読みいただきありがとうございました。

追記 : php7.2 の count() の取り扱いに注意

数日経つと、サイトにエラー出で表示されとらんやん笑

あとで調べて見ると、php7.2の count() の取り扱いが変わっているそう。
結構これで判定しているところあるからやばいね笑

PHP7.2のcountにハマった話

今更だけど、もっと型に厳格にコード書かないといけないなと反省しました。

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

Read More Blogs

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

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

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

管理人について

IT戦士:かみーゆ

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

About Me