follow us in feedly

2018年1月

WindowsのCakePHP3で発生したintlエラーを解決する

CakePHP3で開発するとintl拡張モジュールのエラーに出くわしますよね。
今回はWindowsらしい原因だったので、ちょっとハマりました。
ということで、解決した方法を書いていきます。

環境

  • Windows7
  • PHP 7.1.8
  • CakePHP 3.5.5

エラー内容

エラーはエクステンション関連の内容です。
なので、すぐに解決するだろうと思ってました。

Fatal error: You must enable the intl extension to use CakePHP.

intl拡張モジュールはあるし、php.iniにも設定してる

調べてみると解決方法として紹介されているのは、次の両方またはどちらかです。

  • intl拡張モジュールをインストールする
  • php.iniのextensionに設定する

でも、自分の環境ではどちらも問題ありませんでした。

C:¥php¥extにphp_intl.dllはあるし、
php.iniにも「extension=php_intl.dll」が設定されています。

Windows環境変数への設定が原因だった

モジュールも設定も問題ないのでハマりました。
Apacheの再起動とか、OSの再起動とか試してもやっぱりダメ。
そんななか、環境変数の設定をチェックしたところ。

ユーザー環境変数のほうにPHPのパスが書いてある。。。

すぐにシステム環境変数のほうにPHPのパスを追加して解決!
サイトが無事に表示されました。

まとめ

CakePHP3で見かけるintl拡張モジュールのエラー解決方法を紹介しました。
Windowsのシステム環境変数にPHPのパスを追加することで解決できます。
モジュールがないことやphp.iniの設定ばかりが原因ではないんですね。
Windows環境でCakePHP3を利用するときは注意してください。

エクスプレス予約から品川乗車で購入したけど東京駅から乗りたいとき

2018年になりました。
納品や年末年始を理由に更新が止まってましたが、こういう強制力のないことを再起動するのは大変ですね。

さて、年末年始はとても多くの人が東海道新幹線を利用しています。
そして、僕のように品川駅から購入したけど東京駅から乗りたいって人もいたと思います。
特に今回はエクスプレス予約からの予約だったので問い合わせをして解決しました。

品川駅から予約で東京駅から乗車できるか問い合わせてみた

料金は変わらないので何かしらの方法はあるだろうとは思ってました。

ただ、後述のようにエクスプレス予約上で乗車駅変更ができなかったし、ぶっつけ本番的に東京駅に行って乗れなかったら最悪なのでサポートに相談してみました。

エクスプレス予約のサポートに問い合わせをしたところ
以下をしてもらえれば東京駅で乗車できるとの回答でした。

  • IC利用はせず、切符を発券する
  • 駅係員のいる改札を通る

実際に問題なく東京駅を利用することができました。
降車の場合も同じです。

エクスプレス予約から同じ座席での乗降駅変更はできない

エクスプレス予約はいつでも予約変更できることがメリットのひとつ。
はじめは予約変更で対応できると思ったのですが、同じ座席での乗降駅の変更は無理でした。
(区間延長なので延長分の座席は予約した座席でないことを考えると当たり前なんだけど、いい感じにするのは大変なんでしょうか?)

一旦違う座席で変更して、元の座席でさらに変更すればできるかもしれませんが
年末年始という繁忙期の座席を手放す勇気なんてないです。
しかも、自分ひとり分ではないので再確保できなかったら何言われるかわからないですし。

という流れで問い合わせをして解決できた次第です。

まとめ

東海道新幹線のエクスプレス予約で品川駅から購入したけど東京駅から乗車したいときは

  • IC利用はせず、切符を発券する
  • 駅係員のいる改札をとおる

で乗車できます。

発券すればいいのでエクスプレス予約でなく券売機で購入した場合も駅係員に見せればいけると思います。
いつも東京駅乗車で購入しておけば良いんですけどね。

急に予定が変わったときなどの参考になれば幸いです。