1. TOPTOP
  2. Webサービス
  3. FuelPHP

FuelPHPのoilコマンドでデータベースのテーブルにレコードを追加しようとしたらエラー。そのときの解決方法

|

web_dev

auth_db

FuelPHPのoilコマンドで、データベースにログインしようとしたら、エラーが出ました。そのエラーの原因は大きく分けて2つあります。

  • Authパッケージの使用を拒否される
  • データベースに接続できない

エラーの解決方法

本当は、一つの問題に対して、それぞれの解決方法を示すことができればいいと思います。ただその解決方法が分かってから、記事として記録するまでにかなりの時間が経過してしまいました。細かいことは忘れた。

もっとも、そのときにFuelPHPの設定ファイルなどをどのように書き換えたのか、メモ書きが残っています。なので、それらをそのままコピペしておきます。変更箇所は3カ所です。この3カ所を変更することで

1.app/config/config.phpの変更

app/config/config.phpでデフォルトの、always_load’、その中の”‘packages'”の配列は、コメントアウトになっているので外します。
ただし’orm’はコメントアウトのままにしておき、”‘auth’,”を追加します。

'always_load'  => array(
    'packages'  => array(
	    // 'orm',
        'auth',
    ),
),

2.fuel/app/config/production/db.phpを変更

fuel/app/config/production/db.phpに、データベース名、データベースの作業ユーザ名とパスワードを入力します。

return array(
        'default' => array(
                'connection' => array(
                        'dsn' => 'mysql:host=localhost;dbname=mydatabase',
                        'username' => 'myusername',
                        'password' => 'mypassword',
                ),
        ),
);

3.public/.htaccessの変更

public/.htaccessで、環境変数FUEL_ENVの値として、本番環境を有効にします(自分の場合、さくらのクラウドで公開するつもりなので)

SetEnv FUEL_ENV production

詳しくは「はじフレ」まで

我ながらちょっと粗っぽい書き方ですね。でも、はじめてのフレームワークとしてのFuelPHP 改訂版の364ページでデータベースの接続設定について、ちゃんと説明されています。詳しいことを知りたい方はどうぞ本書までw

〔参考サイト〕