インフラの勉強のために、今までさくらのVPSでこのサイトを運用してきましたが、VPSの中では安いとはいえ、普通にサイトを運用している上では普通にレンタルサーバー借りたほうが安いので、移行しました。
さくらのレンタルサーバで FuelPHP を使ってはてなハイクブログを作る-ViewModel を使ってみる編 #FuelPHPAdvent2012
[FuelPHP] 本番環境に切り替える [さくらインターネット]
そのときに、ちょいちょい同じサーバーに載せてたFuelPHPのサービスも一緒に移行したときに、ちょっと詰まったので、そのメモ。
.htaccessの中身
FuelPHPのpublic
フォルダの中にある.htaccess
ではOptionsで設定を行っていますが、どうやら、さくらのレンタルサーバーでは.htaccess
でのOptions
の設定を認めていないようなので、この行をコメントアウトしましょう。
# Options +FollowSymLinks -Indexes
また、このままだと、Request exceeded the limit of 10 internal redirects due to probable configuration error.
というエラーが出て、Internal Server Errorが出てしまいます。これを防ぐために、
RewriteEngine on
の下に以下を追記します。/your/app/path
の部分はご自身の環境に合わせてください。
RewriteBase /your/app/path
php.iniの編集
FuelPHPのInputでは内部的に$_SERVER["ORIG_PATH_INFO"]
を使っているそうです。その情報を取得するために、php.iniを編集します。php.iniの編集はさくらのレンタルサーバー管理画面にPHP設定の編集という項目があるので、そのphp.iniのフォームに以下を入力します。
cgi.fix_pathinfo = 1
localeの設定
本来、ちゃんと設定しておくべき部分ですが、fuel/app/config/config.php
に
'language' => 'ja', 'language_fallback' => 'en', 'locale' => 'ja_JP.UTF-8'
と設定します。また、.UTF-8
という部分を忘れないようにしましょう。ja_JP
だけではエラーが起きてしまいます。
timezoneの設定
これも本来ちゃんと設定しとくべきことですが、これがないとエラーを吐くようになってしまうので、ちゃんと再確認。
'server_gmt_offset' => 9, 'default_timezone' => 'Asia/Tokyo',
環境変数
結構つまったのがここです。
FuelPHPではpublic/.htaccess
の上部にあるSetEnv FUEL_ENV production
として、productionモードに切り替えますが、さくらのレンサバではなぜかこれが聞きません。なので、普通にやってるとfuel/app/config/production/db.rb
でのDB設定が効きません。解決策としては2つ。
fuel/app/config/production/db.rb
ではなく、fuel/app/config/development/db.rb
に書くfuel/app/bootstrap.php
でデフォルトをproductionとして設定する。
2.のやりかたは、
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT);
となっているところを
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::PRODUCTION);
に書き換えればOKです!
コメントを残す