これが最善の方法かどうかはわかりませんが、これは私にとってはうまくいった方法です。
Apache virtualhosts.conf (これをいくつか変更して httpd.conf に入れることができます):
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
DocumentRoot /var/www/html/apps
ServerName apps.domain.com:80
ServerAlias www.apps.domain.com
UserDir Disabled
ErrorLog logs/domain_error_log
Options FollowSymLinks
<Directory /var/www/html/apps/subdirectory/>
#same stuff in standard zf2 .htaccess file
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</Directory>
アプリの場所:
/var/www/zf2_app
シンボリックリンク:
ln -s /var/www/zf2_app/public/ /var/www/html/apps/subdirectory
注意すべき点がいくつかあります。Directory ディレクティブは、URI ではなくファイルシステム パスに基づいています。VirtualHost ディレクティブで mod_rewrite を使用している場合、URI に基づいているため、忘れてしまった Apache ドキュメントの 1 行です。また、ディレクトリ ディレクティブでシンボリック リンクが機能し、mod_rewrite が機能するには、Options FollowSymLinks がオンになっている必要があります。
httpd をリロードした後、apps.domain.com/subdirectory/module を使用して zf2 アプリを参照できました。
これにより、通常の zf2 スケルトン アプリ構造を維持することができました。また、まとめておくことで、git (または他のソース管理) を使用して、分割せずにプッシュできます。