[php] XAMPP / Apache가 htdocs 외부에 파일을 제공하게하려면 [닫기]

디렉토리 외부에서 파일을 제공 하도록 xampp 를 구성 할 수 htdocs있습니까?

예를 들어 다음과 같은 파일이 있다고 가정 해보십시오.

C:\projects\transitCalculator\trunk\TransitCalculator.php

xampp 파일은 일반적으로 다음 위치에서 제공됩니다.

C:\xampp\htdocs\

(기본 구성이기 때문에) Apache가 TransitCalculator.php파일을 아래로 이동하지 않고 파일을 인식하고 처리하도록하는 방법이 htdocs있습니까? 가급적이면 Apache가 프로젝트 디렉토리의 전체 내용에 대한 액세스를 제공하고 싶고 프로젝트 디렉토리를 아래로 옮기고 싶지 않습니다 htdocs.

편집 : 질문 제목에 Apache를 추가하여 Q / A를보다 “검색 가능”하도록 편집했습니다.



답변

Ok, pix0r , SparksDave 의 답변에 따르면 다음 세 가지 방법이 있습니다.


가상 호스트

  1. C : \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf를여십시오.
  2. 주석 해제 ~ 라인 19 ( NameVirtualHost *:80).
  3. 가상 호스트 추가 (~ 36 행) :

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. 호스트 파일 (C : \ Windows \ System32 \ drivers \ etc \ hosts)을 엽니 다.

  5. 더하다

    127.0.0.1 transitcalculator.localhost #transitCalculator

    파일의 끝까지 (Spybot-설치 및 검색된 경우 검색 및 삭제 전)

  6. 저장 (데스크톱에 저장하고 이전 호스트 파일에 대한 권한을 변경 (오른쪽 클릭> 속성) 한 다음 새 파일을 이전 파일의 디렉토리에 복사하거나 이전 파일의 이름을 바꾸어야 할 수도 있습니다. 비스타와 문제가 있습니다).
  7. Apache를 다시 시작하십시오.

이제 http : //transitcalculator.localhost/를 찾아 해당 디렉토리에 액세스 할 수 있습니다 .


별칭 만들기

  1. ~ 당신의 라인 (200)부터 http.conf, 파일을 사이에 모든 것을 복사 <Directory "C:/xampp/htdocs">하고 </Directory>(~ 라인 232) 및 즉시 아래에 붙여 넣습니다 C:/xampp/htdocs(이 경우 원하는 디렉토리로 대체 C:/Projects) 새로운 디렉토리 서버에게 올바른 권한을 부여 할 수 있습니다.

  2. 찾기 <IfModule alias_module></IfModule>섹션 (~ 라인 300) 및 추가

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"

    Alias모듈 태그 내부의 주석 블록 아래 (또는 원하는대로) .


문서 루트 변경

  1. C : \ xampp \ apache \ conf \ httpd.conf에서 ~ 176 행을 편집하십시오. 변화 DocumentRoot "C:/xampp/htdocs"에 대한 #DocumentRoot "C:/Projects"(또는 무엇이든 당신이 원하는).

  2. ~ 위치 203을 편집하여 새 위치 (이 경우 C:/Projects) 와 일치 시키십시오 .


노트:

  • 백 슬래시 “\”대신 슬래시 “/”를 사용해야합니다.
  • 끝에 “/”를 포함시키지 마십시오.
  • 서버를 다시 시작하십시오 .

답변

XAMPP \ apache \ conf \ httpd.conf에서 DocumentRoot 설정 을 편집하여 재배치 할 수 있습니다 .

현재 다음과 같아야합니다.

C : / xampp / htdocs

다음으로 변경하십시오.

C : / 프로젝트 / 교통 계산기 / 트렁크


답변

또한 VirtualHost는이 작업에 적합하며 하위 디렉토리없이 여러 프로젝트를 호스팅 할 수 있으므로 더 효과적 일 수 있습니다. 방법은 다음과 같습니다.

httpd.conf (또는 httpd.conf와 관련된 extra \ httpd-vhosts.conf. 슬래시 “\”는 작동하지 않을 수 있음) :

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

HOSTS 파일 (c : \ windows \ system32 \ drivers \ etc \ hosts) :

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

이제 XAMPP를 다시 시작하면 http : //transitcalculator.localhost/ 에 액세스 할 수 있으며 해당 디렉토리에 바로 매핑됩니다.

도메인 이름의 루트에있는 사이트를 개발하는 프로덕션 환경을 복제하려고 할 때 유용합니다. 예를 들어 서버에 전달할 절대 경로가있는 파일을 가리킬 수 있습니다.

<img src="/images/logo.png" alt="My Logo" />

별명 또는 서브 디렉토리를 사용하는 환경에서는 “images”디렉토리가 현재 파일의 상대 위치를 정확하게 추적해야합니다.


답변

제한이있는 어느 곳에서나 페이지를 제공하도록 Apache를 설정할 수 있지만 일반적으로 더 안전한 형태로 배포됩니다.

아파치 파일을 편집하면 (http.conf는 가장 일반적인 이름 중 하나임) 웹 루트에 나타나도록 폴더를 설정할 수 있습니다.

편집하다:

별명 myapp c : \ myapp \

http.conf 파일에 별칭을 만드는 형식을 포함하도록 내 대답을 편집했습니다.이 형식은 Windows의 단축키 또는 Apache가 웹 루트에있는 ‘untenx’인 un * x의 심볼릭 링크와 같습니다. 이것은 아마도 당신에게 장기적으로 더 유용 할 것입니다.


답변

XAMPP가 네트워크 드라이브를 문서 루트로 사용하도록하려면 httpd.conf에서 UNC 경로를 사용해야합니다. XAMPP는 매핑 된 네트워크 드라이브를 인식하지 못합니다.

예를 들어 다음은 작동하지 않습니다. DocumentRoot “X : / webroot”

그러나 이것은 DocumentRoot “//192.168.10.100/webroot”입니다 (역 슬래시가 아니라 슬래시에 유의하십시오)


답변

Apache 2가 htdocs 외부의 웹 사이트를 호스팅 할 수있는 솔루션 :

httpd.conf의 “DocumentRoot”지시문 아래에 디렉토리 블록이 나타납니다. 이 디렉토리 블록을 다음으로 바꾸십시오.

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

실제 환경에서는이 구성을 사용하지 마십시오.


답변