2013-06-25 1 views
3

나는 Laravel로 놀기 시작했으며 문서에서 알 수 있듯이 /public의 내용 만 액세스 할 수있는 상태에서 응용 프로그램 파일을 문서 루트 외부로 옮기는 것이 좋습니다. 좋아, 그럼 내가 해냈어. 그러나 /public/index.php을 보면 디렉토리 하나를 /bootstrap 디렉토리로 가리 키도록 하드 코딩되어 있습니다.Laravel : 프레임 워크/앱 폴더 위치를 변경하는 방법이 지원 되나요?

$app_path = $_SERVER['DOCUMENT_ROOT'].'/../securefiles/myApp/'; 
... 
require $app_path.'/bootstrap/autoload.php'; 
... etc ... 

이 예상 된 방법입니다 : 내가 다른 프레임 워크 코드를 이동 한 이후, 나는 약간에 파일을 수정? Laravel이로드되기 전에이 파일을 올바르게 설정해야하므로 Larvel 자체가 /public/index.php에 저장된 위치를 알 수 있도록 구성 할 수 있다고 상상하지는 않습니다. 나는 또 다른, 더 낫고, 더 적절한 방법이 있더라도 궁금해합니다.

답변

5

아니요. 의미가 아닙니다. 즉, 가상 호스트가 publicDOCUMENT_ROOT으로 사용하여 나머지 구조는 손상되지 않도록 지정해야합니다. DOCUMENT_ROOT/path/to/projectname/public에를 설정합니다

projectname/ 
    app/ 
    bootstrap/ 
    public/ 

그리고 아파치/nginx를/lighthttpd 가상 호스트 구성 : 그래서 당신은 같은 것을 볼 것입니다. 따라서 서버 구성이 아닌 다른 것을 변경할 필요가 없습니다. 그게 일반적으로 어떻게 완료됩니다. 아파치 예제 :

<VirtualHost *:80> 
    DocumentRoot "/path/to/projectname/public" 
    ServerName yoursite.com 
    ServerAlias www.yoursite.com 
</VirtualHost> 
+1

비슷한 상황 일 수있는 다른 사람들의 답과 똑같은 것으로 표시됩니다. 그러나, 나는 각자의 하위 디렉토리에있는 수십 개의 앱을 가지고 있으므로 각 앱마다 VH를 만드는 것은 비실용적입니다. 내 상황이 문서에서 명시 적으로 설명되거나 설명되지 않았기 때문에 내가 원하는 것을 실제로 수행하는 공식 방법이 없다고 생각할 수 있습니까? – Pickle

+0

@Pickle : 모든 응용 프로그램에 가상 호스트가 포함되어 있습니다. 그들이 정확히 동일한 도메인에서 실행 중이거나 무엇을 가지고 있다면 단일 애플리케이션 IMO 내의 모듈이어야합니다. 동일한 기본 프레임 워크를 공유하려는 경우 포함 경로 등을 사용할 수 있습니다. 또한, 당신이 한 일은 기술적으로 작동해야한다고 생각합니다. 단지 그것을 설정하는 일반적인 방법이 아닙니다. – prodigitalson

+0

안녕하세요 @prodigitalson 어떻게하면 아파치 구성에 액세스 할 수없는 공유 호스팅에서이 문제를 해결할 수 있습니다. 공유중인 호스팅에서 호스팅 될 응용 프로그램이 있기 때문에. 코드를 공개 액세스로 숨기는 작업은 무엇입니까? 나는 이것을 조사했지만 적절한 방법을 찾지 못했습니다. –

관련 문제