eXcaleでFuelPHPをpublicサブディレクトリなしで動かしてみた(追記あり)post

始めに

FuelPHP 勉強会 大須 vol.3 に参加しましたで少し触れた FuelPHP + eXcale でデプロイ体験をもうすし踏み込んでまとめてみました。

内容的には FuelPHP + eXcale を参照した記事となります。

なので、色々省かれているので先に目を通しておくことをお勧めします。

勉強会のレポ以外では、もしかして、初めてのFuelPHPの記事かもです。

2013年2月18日追記

インストール方法 - インストール - FuelPHP ドキュメント にルートからしか公開できない場合の設定方法が載っていました。

アカウント登録

とりあえず、普通に eXcale に登録してみました。

メールアドレスで登録するだけなので簡単です。

と、ここで、、、

This invitation link isn't valid. Perhaps you already used it?

(´・ω・`)

3?4回おなじメールアドレスで仮登録申請してみましたが、いずれもだめでした。 そもそも、本登録用のアドレスが何回やっても同じだったので結果は変わらないですね。

で、何回かやってて気が付きました。 なんかメッセージがページの上部に表示されてる?

Please enter an collect email address format or password must be more than 6 characters, letters and numbers.

あれ?もしかして、記号だめ?

はい、パスワード設定の時に記号を含めたパスワードを使用していました。

で、記号を抜いてみたら、、、できました。 酷いです(´・ω・`)

あと、適当な名前でアプリケーションを登録しておきます。

FuelPHPをアップロード

FuelPHP本家からパッケージをダウンロードし、一旦展開します。 現在のバージョンは、1.5.2なので展開すると fuelphp-1.5.2 というフォルダができています。

で、 fuelphp-1.5.2/fuel/app/config/config.php に、

return array(
'default_timezone' => 'Asia/Tokyo'
);

のような感じで設定を追加します。

で、fuelphp-1.5.2 の 中身を .tar.gz で圧縮します。圧縮の仕方とかは適当に検索してみてください。 そのままではなく、 中身を ってところが重要です。

で、eXcle上でアプリケーション一覧から上で登録したアプリケーションのアップロードから .tar.gz をアップします。

アップしても、1分ぐらいは

Down for maintenance

な状態から更新されないのでしばらく待ってます。

501とかのエラーになったら、ログを確認してみてください。 なんかメッセージがでてるかもです。

本題

ここからがこの記事の本題です。 上で書いた内容は、ただの前書き、序文、前菜です。

無事、デプロイ出来た場合でも、アクセスするには、 http://sharkpp.excale.net/public/ としないといけないのです。

これはかっこ悪い&fuelとかにアクセスできてよろしくない。

何とかしたい、で何とかしてみました。

やり方は、

  1. ルートパスを変更
  2. asset のパスを変更
  3. public/index.php を index.php に移動して内容変更 public/* を / に移動し index.php の内容を変更

ルートパスを変更

上で変更した fuel/app/config/config.php に、base_urlの指定をします。 これ、なくても動くのかな?もしかして、、、試していないですが、、、

上の設定とあわせると最終的には、

return array(
'default_timezone' => 'Asia/Tokyo',
'base_url'  =>  '/',
);

のような内容になっているはずです。

asset のパスを変更

2013年2月18日削除

fuel/app/config/asset.php はインストール直後では存在しないので、下のような内容を追加します。

return array(
'paths' => array('public/assets/'),
);

public/index.php を index.php に移動して内容変更 public/* を / に移動し index.php の内容を変更

public/index.php をルートに移動し、 index.php とします。

public/* をルートに移動します。 publicフォルダは空っぽなので削除しましょう。 で、パスも合わせて変更。

APPPATH と PKGPATH と COREPATH です。

define('APPPATH', realpath(__DIR__.'/../fuel/app/').DIRECTORY_SEPARATOR);

define('APPPATH', realpath(__DIR__.'/fuel/app/').DIRECTORY_SEPARATOR);

のような感じです。

この時、/fuel を、たとえば、 /fuel_hoge にしておけば、少し安全になるかもです。

で、また、固めなおしてアップします。

完成

で、うまくアクセスできるようになりました。

  • http://sharkpp.excale.net/
  • http://sharkpp.excale.net/index.php/welcome

ただ、mod_rewrite相当の機能が使えないとの話なので /welcom.php などとアクセスしても 404 エラーとなってしまいます。

少し残念です。

あと、 /index.php/hoge.php はかっこ悪いです。

あとあと、なんか重大な見落としがあるかもなので実際にやる時は自己責任でお願いしますです、はい。

まとめ

eXcale は日本語で使えて遊べるかもってことで触ってみましたが、少し残念なところがあって、もうちょっと、、、って感じでした。

SNSなどに書くとそれを拾い上げてくれる場合もあるようなので、みんながいっぱい書けばもっとよくなるかも?ってことで期待をしたいなーと思います。


   /   変更履歴  /   Permalink  /  このエントリーをはてなブックマークに追加 
 カテゴリ: ブログ  /   タグ: php, FuelPHP, PaaS