ほとんどの Web サーバーの優れた点は、実際のコードをパブリック コードよりも高いレベルに設定しても問題がないことです。私が通常使用するのは次のようなものです。
pubic_html/ <- your /home/user/public_html
mysite.com/
public/ <- The web site root (for apache config)
protected/ <- Your actual code
dependencies/ <- Framework and other libraries you use
db/ <- All database delta scripts
複数のサイトで同じライブラリを使用している場合は、それらを共通の場所に配置してシンボリック リンクを追加することもできるため、複数のコピーでサーバー クォータを使い果たすことはありません。Apache を使用している場合でも、FollowSymlinks オプションを有効にする必要があると思います。
public/ フォルダーで公開されているものを制限する IMO は良いことです。実際のコード フォルダーには外部からアクセスできないため、保護が少し強化されます。
編集:上記のコメントで述べたように:ホストが単一のサイトのみを許可し、それが public_html に事前にリンクされている場合は、すべてを分割する代替構造を検討できます:
protected_html/
code/ <- Your actual code
dependencies/ <- Framework and other libraries you use
db/ <- All database delta scripts
pubic_html/ <- your /home/user/public_html and website root.
Yii は非常に用途が広く、このための構成が可能です。構成ファイルは protected/config フォルダーの下にあると想定され、より高いレベルのものはモデル/コントローラーなどの場所と見なされます。他の場所から Yii をインクルードする Rolands の回答と、構成ファイルの変更されたインクルードの間で、うまくいくはずです。