空白を描いています。ローカルで動作するコードがあります (これは MAMP です)。nginx ubuntu ボックス (php-fpm を実行) に移動すると、何らかの理由で phpactiverecord が動作しなくなります。
私は最終的にこれにたどり着きました-すべてのモデルクラスを手動でロードする必要があります。コードの下に require_once() を追加すると、正常に動作します。そうしないと、次のようなエラーが表示されます。
PHP Fatal Error: Class not found ... 作成したモデルで..
これをどの方向にトラブルシューティングできるか、誰にもわかりませんか? モデル フォルダー (パブリック ルートにはありません) へのアクセス許可を確認し、cfg->set_model_directory に送信されるパスをエコーアウトして、正しいなど..
これはnginxまたはphpのように聞こえますか?これは私のMAMPで動作するので、nginxを推測していますか?
動作しません:
ActiveRecord\Config::initialize( 関数 ($cfg) { $cfg->set_model_directory(BASE_PATH . '/models'); $cfg->set_connections( 配列( '開発' => 'mysql://blah:removed@localhost/com_dbname' ) ); } );
作品:
ActiveRecord\Config::initialize( 関数 ($cfg) { $cfg->set_model_directory(BASE_PATH . '/models'); $cfg->set_connections( 配列( '開発' => 'mysql://blah:removed@localhost/com_dbname' ) ); } ); require_once(BASE_PATH . '/models/model1.php'); require_once(BASE_PATH . '/models/model2.php');
アップデート
問題の特定に役立つ実際のコードを追加します。
require_once ('../lib/php-activerecord/ActiveRecord.php'); ActiveRecord\Config::initialize( 関数 ($cfg) { $cfg->set_model_directory('/var/www/uc1/models'); $cfg->set_connections( 配列( '開発' => 'mysql://test_usr:test_pwd@localhost/test_db' ) ); } ); require_once ('/var/www/uc1/models/ucurls.php'); //モデルファイルの名前。これをnginxサーバーで機能させるには、手動で含める必要があります。 $_record = UCUrls::find_by_urlkey('example.com/123'); echo "urlkey=" . $_record->urlkey;