2013-01-18 4 views
2

zend framework 2를 하위 폴더에 넣으 려합니다. 스켈레톤 앱은 전체 앱을 하위 디렉토리에 넣은 다음 domain.com/path/to/public/index.php를 사용하여 상자에서 작동하지만 긴 URL을 사용하지 않으려 고합니다. 원하지 않습니다. 다른 모든 것은 내 공용 폴더가 아닌 내 DocumentRoot에 있어야합니다.하위 디렉토리에 zend 프레임 워크 2

여러 개의 모듈이 있다고 생각했지만 내 도메인 아래에 다른 유형의 응용 프로그램이있어 공용 폴더를 DocumentRoot로 만들 수 없으며 정적 인 모듈을 제공하기 위해 모듈을 만들어야 할 필요가 없습니다. 페이지. 이상적으로는 골격 앱이 사용하는 일반 디렉토리 구조를 유지하는 것이 좋습니다.

RHEL 및/또는 CentOS에서 일반적인 램프 스택을 사용하고 있습니다.

+0

설정 스켈레톤 구조를 유지하고 싶지만 짧은 URL은 전부입니까? – Sam

+0

예, 하위 디렉토리 – Marty

+0

기본적으로 파일이 저장되는 곳은 중요하지 않습니다. 공개 디렉토리에'VirtualHost'를 설정하기 위해 아파치를 설정하기 만하면됩니다. 그럼 당신이해야 할 일은'domain.com'입니다. 나는 리눅스가 마음에 들지 않으므로 지시를 내릴 수는 없지만,이게 니가 찾고있는 것 같다. – Sam

답변

3

이것이 최선의 방법인지는 잘 모르겠지만 이것이 저에게 효과적이었습니다.

아파치 virtualhosts.conf (당신은 약간의 수정을 httpd.conf에 넣고 수) :

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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 

주목할 몇 가지 : 디렉토리 지시어는 URI가 아닌 파일 시스템 경로를 기반으로합니다. 그것은 아파치 문서에서 한 줄을 쓴 것입니다. 왜냐하면 VirtualHost 지시어에서 mod_rewrite를 사용한다면 URI를 기반으로하기 때문입니다. 또한 Symlink가 작동하려면 Options FollowSymLinks가 켜져 있어야하고 디렉토리 지시문에서 mod_rewrite가 작동해야합니다. 내가 아파치를 다시로드 한 후

, 나는 사용하여 내 zf2 응용 프로그램을 탐색 할 수 있었다 : apps.domain.com/subdirectory/module

이 날 일반 zf2 골격 응용 프로그램 구조를 유지하는 것을 허용했다. 또한 그것을 함께 유지함으로써 git (또는 다른 소스 컨트롤)를 사용하여 물건을 나눌 필요없이 푸시 할 수 있습니다.

내가이 같은 htaccess로 파일에 환경 변수를 추가했다
0

은, 그래서 당신은 (응용 프로그램 폴더의 루트에)에 ZF2_PATH 환경 변수와의 .htaccess의 첫 번째 줄

SetEnv ZF2_PATH /home/homefolder/zendpath 
RewriteEngine On 
RewriteRule ^\.htaccess$ - [F] 
.... 
... 
+0

젠드 라이브러리의 위치를 ​​변경하는 데는 효과가있을 것이라고 생각하지만 하위 디렉토리에 전체 앱을 배치하려고합니다. – Marty