質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

2037閲覧

CakePHP2系から3系のアップデート方法について

tks_223

総合スコア13

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2019/07/08 09:49

前提・実現したいこと

あるシステムのWebサーバにてCakePHP2.4.5が使用されており、機器の乗り換えのタイミングでEOLの関係もあり、CakePHP2.4.5からCakePHP3.8.0へのバージョンアップを行いたいと考えています。

現行のシステム構成

  • RHEL 6.x
  • Apache 2.4
  • PHP 5.6
  • PostgreSQL 9.6
  • CakePHP 2.4.5

次期の想定システム構成

  • RHEL 7.4
  • Apache 2.4
  • PHP PHP 7.3
  • PostgreSQL 9.6
  • CakePHP 3.8.0

発生している問題

CakePHP2.4上で動作していたWebページ(アプリ)をCakePHP3.8上で動作させたいが、CakePHPをバージョンアップしその上で今までのアプリを動作させる方法がわからない。

試したこと

①CakePHP3.8をインストール
②App.phpを編集し、現行のデータをリストアしたPostgreSQLに接続する。
③「bake model XX」→「bake template XX」→[bake controller XX」を実行
④「https://localhost/XX」でページが生成されていることを確認。

参考にしたURL
https://www.sejuku.net/blog/26423

質問したいこと

質問1

そもそも、バージョンアップしたCakePHP上でアプリを動作させたい場合の手順として、上記の手順はあっているのでしょうか?
bakeによって作成されたページを確認すると、テーブルの中身が一覧で表示されている状態で、そこから今までのWebページを生成するにはどうすればよいのかわかりません。

質問2

一部テーブルに関してbakeを行っても、Webページ上では「Missing Controller」とエラーが出力されページを表示することができません。
恐らく、複数のテーブルを使用し生成するページに関してこのようなエラーが表示されるのとか考えているのですが、この場合はPostgreSQL側のテーブルを作成し直す必要があるのでしょうか?
それともbakeする際のオプション等でエラーを回避することができるのでしょうか?

備考

私自身が今までインフラ(OS、ミドルウェア)での設計、構築作業がメインだったのでCakePHPやPHPなどに対する知識が乏しい状態です。
回答するための必要な情報など欠けている箇所がありましたら、可能なかぎり提供いたしますのでご教示をお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

参考にすべきはどこかの記事ではなく公式のアップグレードガイド(アップグレードツール移行ガイド)と思います。

投稿2019/07/09 00:36

m.ts10806

総合スコア80854

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tks_223

2019/07/17 05:15

mts10806さん コメントありがとうございます。 確認が遅くなり申し訳ございません。 ご指摘の通りいいただいた公式ガイド確認し、以下のコマンドを手順を実施しました。 ※今回Webアプリは「/home/webuser/htdocs/cakephp/app」にいる想定 ``` # cd /home/webuser/ # curl -sS https://getcomposer.org/installer | php # git clone https://github.com/cakephp/upgrade.git # cd upgrade # php ../composer.phar install # bin/cake upgrade locations --dry-run /home/webuser/htdocs/cakephp/app # bin/cake upgrade locations /home/webuser/htdocs/cakephp/app # bin/cake upgrade namespaces --dry-run /home/webuser/htdocs/cakephp/app # bin/cake upgrade namespaces /home/webuser/htdocs/cakephp/app # cd ../ # php composer.phar require --update-with-dependencies "cakephp/cakephp:3.8.*" Updating dependencies (including require-dev) Package operations: 0 installs, 1 update, 0 removals - Updating cakephp/cakephp (3.8.0 => 3.8.1): Downloading (100%) Writing lock file Generating autoload files ``` 実行後のWebブラウザ画面で以下のエラーメッセージが表示されました。 一見すると、アプリに関するディレクトリが無いというエラーメッセージだと思うのですが、上記の手順実行後はComposer側の操作ではなく、PHP側の設定(パスの変更など?)を実施すればよいでしょうか? お手数をおかけしますが、再度ご教授いただければと思います。 ■エラーメッセージ ``` Warning: include(/home/webuser/htdocs/cakephp/app/Config/core.php): failed to open stream: No such file or directory in /home/webuser/htdocs/cakephp/lib/Cake/Core/Configure.php on line 72 Warning: include(): Failed opening '/home/webuser/htdocs/cakephp/app/Config/core.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/webuser/htdocs/cakephp/lib/Cake/Core/Configure.php on line 72 Fatal error: Can't find application core file. Please create /home/webuser/htdocs/cakephp/app/Config/core.php, and make sure it is readable by PHP. in /home/webuser/htdocs/cakephp/lib/Cake/Core/Configure.php on line 76 ```
m.ts10806

2019/07/17 05:19

んー。どの段階でどのように進めていてこうなったのか分かりませんが、 見た感じ、コアソースから必要なファイルが参照できていないということになるので、 もしかしたらどこか手順を抜かしてしまっていたりしているのかもしれませんね。 「No such file or directory」は「ファイルまたはディレクトリが見つからない」なのでディレクトリに限りません。
tks_223

2019/07/17 05:31

なるほど。ご回答ありがとうございます。 エラーメッセージの表示を確認したのは、「php composer.phar require --update-with-dependencies "cakephp/cakephp:3.8.*"」コマンド実行後になります。 仮想の検証環境なのでスナップショット戻して再度手順を確認してみようと思います。 また、公式のアップグレードツール→移行ガイドの手順に従えば基本的にPHPなどの修正はしなくともCakePHPのアップグレードができる想定でよろしいのでしょうか?
m.ts10806

2019/07/17 05:34

>公式のアップグレードツール→移行ガイドの手順に従えば基本的にPHPなどの修正はしなくともCakePHPのアップグレードができる想定でよろしいのでしょうか? PHP7で廃止された機能を自身で使っている場合は個別に修正が必要と思いますが、 そうでなければ公式の移行ガイドにそってできるはずです。
m.ts10806

2019/07/26 00:32

解決されたようですが、結局無事に移行が済んだということで良いでしょうか。
tks_223

2019/07/26 06:46

移行を想定しているWebアプリ自体がPHP5→7への移行に対して完全に対応いないことが判明したので、システム全体としての移行検証は完了できていませんが、CakePHPのアップデート自体は、いただいた参考情報でアップデートできました。そのため、一旦解決とさせていただきます。 ありがとうございました。
m.ts10806

2019/07/26 06:47

了解です。解決されたようで何よりです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問