2009-04-10 13 views
6

私は自分の開発環境のためにMAMPを使用していますが、ウェブサーバ上の/ var/www/project-name /のフォルダ構造を実際に理解していません。私はあなたがhtdocsフォルダにWebサーバーを指すように意図されているのか、それともプロジェクトフォルダのルートを指すのだろうと思いますか?PHPプロジェクトの/ var/www/folder構造

ライブラリはセキュリティ目的のためにhtdocsフォルダの外に存在することを意図しているのですが、Webアプリケーション自体からどのように指摘されていますか?確かに、WebサーバーがWebアプリケーションのhtdocsフォルダーを指している場合、Webアプリケーションはhtdocsフォルダー外のフォルダーにアクセスできません。

答えて

9

簡単な解決策はそうのようなフォルダ構造を持つことです。webrootディレクトリへ

/var/www/project-name/ 
    + webroot/ 
    + libraries/ 

ポイントあなたのapache2のDocumentRoot。あなたがアクセスしたくないすべての図書館をウェブからlibrariesディレクトリに保管してください。あなたのPHPコードでは、ライブラリコードにアクセスするためにincludeディレクティブを使います。

このトリックは、読み込みアクセス権があるシステム上のファイルをphpに含めることができることを理解することです。あなたのウェブサイトを閲覧している人は、あなたのwebrootディレクトリ内のファイルにしかアクセスできません。

+0

これはまさに私が探していた答えです。どうもありがとう! – Kezzer

+0

@Kezzer、MAMPを設定する方法を説明してもらえますか? – doublejosh

0

一般的なユーザーがアクセスできないPHPのinclude_pathでライブラリを配置します。

+0

また、/ var/www/project/htdocs /にあるapacheはindex.phpを持っていたとします(include_path( '/ var/www/project/mylib/lib.php'))? – Kezzer

1

PHPは、apacheサーバーユーザーが正しいアクセス許可を持つファイルシステム内のファイルにアクセスできます。仮想ホストのないApacheを実行しているLinuxボックスでは、/ var/wwwはhtdocsディレクトリに使用する共通の場所です。

3

同じサーバーに複数の仮想ホストがある場合は、各サイトを/var/wwwというディレクトリに配置するのが一般的です。これらのサイトのそれぞれには、Webルートとしてマウントされたhtdocsフォルダがあります。 Webルートの上のフォルダにログとアプリケーション固有のライブラリを置くことができます。例えば:

/var/www/lolcats.com 
/var/www/lolcats.com/htdocs 
/var/www/lolcats.com/htdocs/index.php 
/var/www/lolcats.com/lib 
/var/www/lolcats.com/log 
0

ドメインと同じ方法で、ローカルWebサイトをディレクトリにマップすることはgoogdの考えです。

多くの場合、1つのWebホスティングアカウントに複数のWebサイトがあるため、セットアップを反映するように仮想ホストを設定します。共有ホスティングの場合は

/var/www/root 
/var/www/root/website1 
/var/www/root/website2 
/var/www/root/website3 

は、ローカルPC上で3つのvitualホストを作成しますが、同一のファイル構造を維持します。

また、設定ファイルの条件を使用して、サーバーファイル構造に応じてサイトを異なる方法で設定し、同じ設定ファイルが両方の設定で確実に機能するようにします。これは、ワンステップビルドプロセスを維持することを意味します。