http://hoge.com/appname/
な感じでサブディレクトリにデプロイしようとしたとき、ApacheのエイリアスやLinuxのシンボリックリンクというワードにたどり着くまでちょっと時間かかったのでめも。
FuelPHPで作成したアプリをそのままサーバーに載せるとhttp://hoge.com/fuga/public
となります。
普通はアプリ単体でドメインを取ると思うのでvar/www/html/fuga/public
をドキュメントルートにすればいいだけですが。
ディレクトリ構成には手を入れたくないのでpublicディレクトリをリネームしたり移動するのは無しで。
シンボリックリンクを使う
ln -s /var/www/app/fuga/public /var/www/html/fuga
非公開の場所にアプリケーションを設置、公開ディレクトリからシンボリックリンクを張ります。
apacheにはシンボリックリンク先のファイルアクセスを許可するかの設定FollowSymLinks(デフォルトで有効)があるのでこれが有効であればこれでアクセスできます。
シンボリックリンクはユーザーのアクセス権が無いファイルにも作成できたりするので環境によってはリスクがあります。
http://blog.tokumaru.org/2013/09/symlink-attack.html
複数サービスを1サーバーで運営したりする場合は注意が必要です。
Apacheのエイリアスを使う
Alias /fuga/ "/var/www/app/fuga/public/"
シンボリックリンクと似ていますが、apacheが提供している機能です。
/etc/httpd/conf/httpd.conf
内に設定します。
http://www.adminweb.jp/apache/docroot/index3.html
特定URLを特定のパスへ変換してくれます。
またpublicディレクトリ内のhtaccessのRewriteBaseも変更しないと生成されるリンクのURLが正しくならないようです。
http://hoge.com/fuga/test/1
とならず http://hoge.com/test/1
になる
http://qiita.com/abeichi/items/65ca98a8e2400dfc75b3
RewriteBase /fuga