私は CodeIgniter (1.7.2+) を何年も使用しており、15 以上の本番環境で実行しています (大好きです)。最近、私のチームと私は、標準の MVC よりも少し複雑なものを必要とする非常に複雑なシステムを特定したので、CI 用の HMVC Modular Extension (2.0.3) の調査を開始しました。これまでのところ、ローカル システムの XAMPP および MAMP 環境で問題なく起動しており、まさに必要なもののように見えます。CentOSにロードしようとすると問題が発生します。
ローカル インストールで動作するまったく同じ SVN リポジトリを取得し、それを CentOS サーバーにプルすると (2 つの別々の CentOS ボックスを試しました)、白い画面が表示され、ログに 500 エラーが表示されます。この同じ CentOS インストールが基本 CI インストールを問題なく実行しているため、HMVC モジュールの内部にあると確信しています。
トラブルシューティングを行うために、データベースをロードする autoload エントリを削除すると、次の出力が画面に表示されます。
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI::$db
Filename: MX/Controller.php
Line Number: 58
CentOSボックスでのみこれを取得します。そのファイルの58行目はあまりわかりません.HTTPDエラーログにも有用なものは何も表示されていません. 誰かがこの問題を経験したことがありますか? 他の誰かがそれを再現できますか? ベースCIが必要とするもの以外のサーバー依存関係について言及したことは一度もなかったので、途方に暮れています。このプロジェクトではどうしても HMVC を使用する必要がありますが、ロードすることさえできないものを市場に出すことはできません。
何か悪いものを挿入する可能性をさらに制限するために、CI を新しくインストールし、HMVC モジュールを再ロードし、他には何も触れませんでした... FAIL! まったく同じ結果、CentOS 5.5 で同じエラーで壊れたローカルで実行されます。
どんな助けでも大歓迎です...
アップデート
エラーが通知にすぎないことに気付きました (私はやりたくないのですが) 何が起こったのかを確認するためだけに、エラー報告をオフにしました。すぐに 500 エラーをスローするだけに戻ります。私は die() ステートメントを index.php に入れ、画面に出力を得ることができます. 私はシステムを通して die() を試み、それを行っている実際の行を見つけようとしています.... 喜び..
Craig A Rodway から要求されたレベル 4 の CI ログ ファイル
DEBUG - 2011-09-06 20:49:37 --> Config Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Hooks Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Utf8 Class Initialized
DEBUG - 2011-09-06 20:49:37 --> UTF-8 Support Enabled
DEBUG - 2011-09-06 20:49:37 --> URI Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Router Class Initialized
DEBUG - 2011-09-06 20:49:37 --> No URI present. Default controller set.
DEBUG - 2011-09-06 20:49:37 --> Output Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Security Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Input Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Global POST and COOKIE data sanitized
DEBUG - 2011-09-06 20:49:37 --> Language Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Language Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Config Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Loader Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Controller Class Initialized
DEBUG - 2011-09-06 20:49:37 --> Welcome MX_Controller Initialized
DEBUG - 2011-09-06 20:49:37 --> Loader Class Initialized
ERROR - 2011-09-06 20:49:37 --> Severity: Notice --> Undefined property: CI::$db /home/www/qualcentral.com/application/third_party/MX/Controller.php 58
アップデート #2
OK、問題の原因は 2 つあると思われます。完全に解決したわけではありませんが、システムで作業できるようになりました。まず、Windows マシンで HMVC を解凍し、SVN にコミットし、CentOS にプルダウンすると完全に BORKED になりました。WGET を介してすべてを直接 CentOS にプルダウンし、サーバーにセットアップすると、問題なく動作しました。非常に奇妙ですが、少なくともこれは回避策です。PHP や Apache を調整する必要はありません。最初のプロセスで行末や何かがジャックされたと考えられます。
2 つ目は、HMVC モジュールを使用している場合、コア システムのオートローダーを使用してデータベースをロードできないことです。トライアド内に手動でロードすることも、トライアドの config/autoload.php ファイルを使用してオートロードすることもできますが、試してもコア システムは 500 をスローします。それは癖であり、悪化していますが、私はそれを回避できます.
みんなの提案に感謝します。これは単なる変わり者でした。
シェーン