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
〔参考サイト〕