2

現在、MVC技術を使用してPHPアプリケーションを開発中です。私は有用なディレクトリ構造について考えずに始めました。
私は今、アプリケーションをapache2サーバーにデプロイする予定です。これは今見た目です。
My current layoutMVC PHPアプリケーション用の構造

私はウェブからアクセス可能なサーバー上にhttpdocsフォルダを持っています。すべてのファイルをこのディレクトリにコピーすると、アクセスできないファイルがある可能性があります。 publicフォルダには、アクセス可能なファイルが含まれています。 (私のindex.phpをそこに置く必要があるかもしれません)

私の質問は:そのようなアプリケーションの好ましいレイアウトは何ですか? public以外のすべてのフォルダを親フォルダのhttpdocsに入れる必要がありますか?

ありがとうございました!

答えて

2

http://httpd.apache.org/docs/2.1/vhosts/examples.html

あなたはそこに顔をしていることができます。仮想ホストを設定することは常にいいので、アプリケーションを混在させないでください。そしてあなたはあなたのパブリックフォルダにアクセスできます。

<VirtualHost *:80> 
DocumentRoot /var/www/mvc_app/public 
ServerName www.example.com 

<Directory /var/www/mvc_app/public> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 

</VirtualHost> 
1

パブリックディレクトリをhttpdocsとして使用します。このような公共のWebルートポイントは:あなたがApacheの設定へのアクセス権を持っていない場合

<VirtualHost *:80> 
DocumentRoot /path/to/public 
ServerName www.domain.com 
... 
</VirtualHost> 

あなただけの公開ディレクトリとして「をhttpdocs」を使用することができます。 publicからhttpdocsにすべてを移動し、残りのアプリケーションはhttpdocsの外に保ちます。パブリックディレクトリの名前は、アセットのパスを知っている限り重要ではありません( "mydomain.com/javascripts/foo.js")。

2

最も簡単な解決策は、CakePHPが何に似て、そしてあなたのpublicディレクトリにindex.phpを持っており、そしてちょうどそのindex.phpファイルへのすべての要求をマップ.htaccessファイルを持っているでしょう。あなたのpublicディレクトリにも同様に、その後

RewriteEngine on 
RewriteRule ^(.+) /public/index.php/$1 [L,NC] 

そして:

だからあなたのルートディレクトリに次のようなものを持っているでしょう

RewriteEngine on 
RewriteRule ^(.+) index.php/$1 [L,NC] 

あなたのPHPスクリプトは、まだのような他のスクリプトにアクセスすることができるだろう彼らはファイルシステムで動作し、HTTPではなく動作します

関連する問題