0

私はyiiで遊んでいます、つぼみフレームワークファイルをどこに置くかわかりません。私の共有ホスティングには、もちろんpublic_htmlを含む/ home/usernameフォルダーがあります。Yiiアプリケーションファイルはpublic_htmlに入るはずですが、フレームワークはどうですか?public_html内にも配置する必要がありますか、それとも/ home / usernameに配置する必要がありますか?それでもうまくいくでしょうか?保護されたフォルダはどうですか?public_html内の他のすべてのアプリケーションファイルと一緒に残す必要がありますか、それとも別の場所に移動する必要がありますか?

これにアプローチする一般的な方法は何ですか?

4

2 に答える 2

3

ほとんどの 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 の回答と、構成ファイルの変更されたインクルードの間で、うまくいくはずです。

于 2012-09-24T05:48:42.313 に答える
1

私は通常、それらを /home/username に配置します。これにより、誰もフレームワークに直接アクセスできなくなります。次に、そこに配置したら、public_html の index.php ファイルを編集して、framework ディレクトリを指すようにします。

$yii=dirname(__FILE__).'/../../yii-1.1.12.b600af/framework/yii.php';

フレームワークを public_html フォルダー内に配置することもできます。次に、apache ですべてのオーバーライドが有効になっていると仮定して、次を含むフレームワーク フォルダーに .htaccess ファイルを追加deny from allします。これにより、誰もブラウザーからディレクトリにアクセスできないようになります。

そのため、ブラウザーから直接アクセスする必要のないファイルとフォルダーは、可能な限り常に public_html フォルダーの外に配置して、Apache のすべてのオーバーライドが無効になっていると仮定して、セキュリティを強化します。

于 2012-09-23T19:18:26.453 に答える