7

現在、Yii フレームワークを使用する PHP Web アプリケーションを開発しています。

Yii が必要とするいくつかのファイルへの Web ブラウザからの直接アクセスを防止したいので、フレームワークと保護されたフォルダーの両方を htdocs フォルダーの外に移動しました。

その結果、次のフォルダー設定になりました。

/apache22/htdocs

/apache22/htdocs/myproject/index.php -- Yii ブートストラップ ファイル
/apache22/htdocs/myproject/css
/apache22/htdocs/myproject/js
/apache22/htdocs/myproject/images

/apache22/vendor/yii-1.1.10 -- ドキュメント ルート外の Yii フレームワーク フォルダ

/apache22/htdocs-private/myproject/protected
/apache22/htdocs-private/myproject/runtime

ご覧のとおり、Web ブラウザーから直接アクセスできるのは、ブートストラップ ファイルとその他の必要な css、js、およびイメージ ファイルのみです。Yii コア フレームワークや、Yii によって保護されたランタイム フォルダー内に生成された特定のアプリケーション プライベート ファイルなどの他のすべてのファイルは、アプリケーション Web ルートの外に配置されます。

Yii フレームワークが推奨するように、このセットアップは適切で安全ですが、それらすべてを Netbeans にまとめると、このように分離することができません。Netbeans では、同じプロジェクト内のファイルを Web サーバーの異なるフォルダー レベルに配置することは許可されていないようです。

唯一の解決策は、個別の netbeans プロジェクトを作成することであるかどうか疑問に思っています。1 つは公開 Web サイト部分用で、もう 1 つは非公開 Web サイト部分用です。

助言がありますか ?

よろしくお願いします。

4

2 に答える 2

2

問題の部分的な解決策にすぎない場合もありますが、プロジェクトに追加のインクルード パスを追加できます。

/apache22/htdocs/myproject/プロジェクトフォルダーがイストであると仮定します。

  • プロジェクト名を右クリック
  • 「プロパティ」を選択
  • 「PHPインクルードパス」を選択
  • 「フォルダを追加...」をクリックします
  • 追加/apache22/htdocs-private/myproject/

これで、左側のサイドバーの [インクルード パス] の下に表示されます。しかし、そこからコミットできないようです。

于 2012-07-16T16:08:55.497 に答える
0

私はこのパス構造を持っています:

NetbeansProjects/myproject/www NetbeansProyects/myproject/protected

これは完全に Web サーバー パスの外側にあります。次に、自分のコードをテストするときは、必要な場所にファイルをコピーする単純なシェル スクリプト (Windows では .bat の場合もあります) を使用します。したがって、テストしたいときに F6 を押すと、すべてが「展開」されます

このトリックを実行できるようにするには、「実行構成」で「デプロイ スクリプト」を実行するようにプロジェクトを構成する必要があります。これが私のものです。Windowsに適応できると確信しています:

実行方法:スクリプト (コマンドラインで実行)

PHP インタープリター: /bin/bash

インデックス ファイル: up_sync.sh

作業ディレクトリ: /home/user/NetbeansProjects/myproject/

up_sync.sh ファイルは、ディレクトリをそれぞれの場所にコピーする .bat ファイルになります。

于 2012-07-27T13:42:24.637 に答える