2011-01-11 7 views
4

젠드 프레임 워크를 기반으로 PHP 라이브러리를 작성하고 있습니다. 내 라이브러리는 여러 웹 프로젝트에서 사용됩니다. 나는 나의 도서관을 어디에 두어야할지 모르겠다. 개별 프로젝트의 문서 루트를 벗어나는 것은 당연한 것처럼 보이므로 개별 프로젝트마다 라이브러리를 유지할 필요가 없습니다. 나의 현재 설정은 다음과 같습니다 젠드 프레임 워크 내-LIB 모두의문서 루트 내부 또는 외부에 PHP 라이브러리가 있습니까?

이 같이
/var/www/vhosts/project1/ 
/var/www/vhosts/project2/ 
/var/www/vhosts/libraries/zend-framework/zend-framework-1.11.0/... 
/var/www/vhosts/libraries/my-lib/my-lib-1.0.0/... 

, 특정 버전 내 프로젝트에 사용할 수 있습니다.

대안 설정은 다음과 같이 보일 것이다 :

/var/www/vhosts/project1/ 
/var/www/vhosts/project1/libraries/zend-framework/zend-framework-1.11.0/... 
/var/www/vhosts/project1/libraries/my-lib/my-lib-1.0.0/... 
/var/www/vhosts/project2/ 
/var/www/vhosts/project2/libraries/zend-framework/zend-framework-1.11.0/... 
/var/www/vhosts/project2/libraries/my-lib/my-lib-1.0.0/... 

첫 번째 버전은 나에게 많은 의미가 있습니다,하지만 내 프로젝트의 외부에있는 파일에 의존 만약 내가 몇 가지 보안 문제로 실행하면 잘 모르겠어요 자신의 문서 루트 폴더. 또한 my-lib가 프로젝트 문서 루트 외부에 있으면 my-lib의 javascript 파일을 프로젝트에 포함하려고 할 때 문제가 발생합니다.

여기서 가장 좋은 방법은 내 라이브러리와 zend 프레임 워크를 어디에 배치해야합니까? 그래서는/var/www /에서 가상 호스트/라이브러리 외부에서 액세스 할 수있는 경우

+0

은/var/lib 디렉토리에서 직접 액세스 할 수 없습니다의 권리

  • 를 조정하지 않고 액세스 할 수 있습니다
  • 모든 PHP 애플리케이션과 LIB? 도서관 이니까요? –

  • +2

    나는 브라우저에서 접근 할 수 없기 때문에 자바 스크립트 파일을 문서 루트 외부에 둘 수 있다고 생각하지 않는다. – naiquevin

    +0

    첫 번째 후보에 투표합니다. 하지만 당신이 프로젝트 문서에 대해 이야기 할 때 나는 아파치 DocumentRoot에 대해 이야기하지 않기를 바란다. 이것은 큰 보안 장애가 될 것이다. – regilero

    답변

    6

    , 당신이 라이브러리 한 단계 낮은 넣어 권하고 싶습니다 (은/var/www /에서 라이브러리) :

    1. 가 동일한를 공유 할 수 있습니다 PHP는 전면 사이트
    +2

    이 라이브러리 (js, css, images 등)에있는 공개 파일의 경우 Apache 별칭 (mod_alias)을 사용하여 이러한 파일을 연결할 수있는 URL에 매핑 할 수 있습니다. – Jody

    관련 문제