ノウハウツリーの管理人コメントするTweetcake2で作ったシステムを別サーバに移動するのは少々面倒さくらインターネットのプレミアムプランでcake2を使って動かしていたサービスをスタンダードプランに移動させた時のメモ書きです。PHPのフレームワークは、cake/kohana/Zend/Symfony/Laravel/CodeIgniter...etcといった具合に色々な種類があります。世界中の人が次々開発しています。私は、いつも同じフレームワークばかり使っているわけではありません。トレンドに合わせて乗り換えたりもしています。FWは、ずっと使っていないと使い勝手とかどうしても忘れてしまうんですよね。そこで一度習得したコツとかを備忘録としてメモっておきます。この記事は、私が忘れた時に見返してすぐ分かる様にメモっています。参考にされる方は、その点をご理解ください。久しぶりにcakeを触ったという事もありますが、幾つかはまりポイントがあったのでメモっておきます。1プレミアムプラン2スタンダードプラン1で動いているシステムを2に移動させたのですが、1と2とでcakeの設定が異なる状態でした。最初は、1のスクリプト一式を2にコピーすれば動くだろう、と軽く考えていたのですが、cakeの設定が異なっている為になかなかスムーズに動きませんでした。そこでcake自体は2の環境を使う事にしました。具体的には2でcakeが動いているプロジェクトをコピーします。そこに1で動かしていたスクリプトを順番に貼り付けていきます。cakeが動く状態にしてからプログラムを少しずつ移行していく流れです。基本的な流れは以上ですが、実際に作業をしていく中ではまったポイントをメモっておきます。/home/{user_name}/apps/{application_name}/Config/core.phpcore.phpの中にセキュリティソルトを設定する箇所があります。この部分を適宜修正する必要があります。修正しないとAuth認証(ログイン認証システム)で失敗してしまいます。Cookieとして利用する情報をハッシュ化したり暗号化する際に使用されています。/home/{user_name}/apps/{application_name}/Viewcake2で必ず使うViewファイルの上書きが必要です。Cake2の場合、View/{コントローラー名}/{ファンクション名}というルールになっています。慣れるまで違和感があります。Viewファイルの拡張子は、ctpです。ControlerでのAjax処理でパスのべた書きPHPのコード内にサーバ固有情報(ユーザ名)をべた書きしており、Ajax処理で失敗していました。サーバ固有の情報はコーディング時には面倒でもconfigファイルなどに外で定義しておいた方がいいと実感しました。“/home/{user_name}/xxx/xxx”;{user_name}部分に利用中のサーバのユーザ名をべた書きしてい為に失敗していました。apps/{application_name}/Config/const.php定数定義ファイルに記述した定数を読み取るまず、Config/bootstrap.phpの中に読み取り対象の定義ファイルを指定します。この時に引数にはphpは拡張子として付けません。Configure::load(“const”);実際に定数を定義していくファイルはConfig/const.phpです。最後の「,」は、あっても無くてもPHPの文法上はエラーになりません。Configure::read(“app_info.happy_date“);と記述します。12:15′′が格納されます。移動元サーバでcakeシェルの実行が出来ていたのに、新サーバに同じプログラムを全部移動して実行しても動きませんでした。-vとTeraTermからサーバに接続して発行します。表示されれば、TeraTerm上からPHPコマンドが認識されている事になります。phpのパス通しには問題ありません。今回シェル実行がうまく行かなかった理由ですが、新サーバーでは、cake.phpが複数の階層にあり、誤ったパスのcake.phpを指定していた事が原因でした。指定してシェルを実行しようとしていた為にコマンド事項をしてもTeraTerm上にエラーも何も表示されませんでした。指定したところ正常にシェルが実行されました。私は、cakeの環境構築時にcakeのパスとかいろいろとカスタマイズしていました。そのせいでcake.phpが複数パスに存在していたのかもしれません。いずれにせよ正しく指定すればシェルは動きます。cakeの機能を使ったメールを送信する設定Config/email.phpの中にメール送信情報を記述します。Gmailを使ってメールを送信する場合の基本設定の例はこちらです。ノウハウツリーの管理人コメントするTweetcakePHPの特にバージョン2以降について、必ず設定が必要な項目等に絞ってメモ書きをしています。本サイトの記事をご覧になり試した結果引き起こされた不具合には一切責任は負いませんので、全てご自身の責任においてお試しください。ノウハウツリー管理人の完全なるメモサイトである事を十分ご理解ください。apps/Config/routes.php最初にサイトにアクセスが来た場合にどのコントローラ、ファンクションに誘導させるかの設定が出来ます。アクセスされると最初にapps/Controller/TakePonsControllerの中のindexファンクションが呼び出されるという設定になります。apps/Config/database.phpアプリケーションが使用するデータベースの設定を行います。使用するレンタルサーバのDB設定に合わせましょう。中で定義した定数を読み込む事が出来ます。cakePHPのバージョンを確認する。Configure::version();デバッグ情報の出力の有無を設定する。Config/core.phpエラーメッセージを一切出さない。0);エラーメッセージを表示するがSQL文は出力しない。1);フルでデバッグメッセージを表示してSQL文も出力する。2);利用中のcakeのバージョンを表示する。Configure::version();TweetcakePHPデバッグあらゆるノウハウを完全網羅しているサイトです。