インフラの勉強のために、今までさくらのVPSでこのサイトを運用してきましたが、VPSの中では安いとはいえ、普通にサイトを運用している上では普通にレンタルサーバー借りたほうが安いので、移行しました。

さくらのレンタルサーバで FuelPHP を使ってはてなハイクブログを作る-ViewModel を使ってみる編 #FuelPHPAdvent2012
[FuelPHP] 本番環境に切り替える [さくらインターネット]

そのときに、ちょいちょい同じサーバーに載せてたFuelPHPのサービスも一緒に移行したときに、ちょっと詰まったので、そのメモ。

.htaccessの中身

FuelPHPのpublicフォルダの中にある.htaccessではOptionsで設定を行っていますが、どうやら、さくらのレンタルサーバーでは.htaccessでのOptionsの設定を認めていないようなので、この行をコメントアウトしましょう。

また、このままだと、Request exceeded the limit of 10 internal redirects due to probable configuration error.というエラーが出て、Internal Server Errorが出てしまいます。これを防ぐために、

の下に以下を追記します。/your/app/pathの部分はご自身の環境に合わせてください。

php.iniの編集

FuelPHPのInputでは内部的に$_SERVER["ORIG_PATH_INFO"]を使っているそうです。その情報を取得するために、php.iniを編集します。php.iniの編集はさくらのレンタルサーバー管理画面にPHP設定の編集という項目があるので、そのphp.iniのフォームに以下を入力します。

localeの設定

本来、ちゃんと設定しておくべき部分ですが、fuel/app/config/config.php

と設定します。また、.UTF-8という部分を忘れないようにしましょう。ja_JPだけではエラーが起きてしまいます。

timezoneの設定

これも本来ちゃんと設定しとくべきことですが、これがないとエラーを吐くようになってしまうので、ちゃんと再確認。

環境変数

結構つまったのがここです。

FuelPHPではpublic/.htaccessの上部にあるSetEnv FUEL_ENV productionとして、productionモードに切り替えますが、さくらのレンサバではなぜかこれが聞きません。なので、普通にやってるとfuel/app/config/production/db.rbでのDB設定が効きません。解決策としては2つ。

  1. fuel/app/config/production/db.rbではなく、fuel/app/config/development/db.rbに書く
  2. fuel/app/bootstrap.phpでデフォルトをproductionとして設定する。

2.のやりかたは、

となっているところを

に書き換えればOKです!