XAMPP/Apache가 htdocs 외부의 파일을 제공하도록 만들기 [닫기]
-
08-06-2019 - |
문제
구성이 가능한가요? xampp 외부에서 파일을 제공하려면 htdocs
예배 규칙서?
예를 들어, 다음과 같은 위치에 파일이 있다고 가정해 보겠습니다.
C:\projects\transitCalculator\trunk\TransitCalculator.php
그리고 내 xampp 파일은 일반적으로 다음에서 제공됩니다.
C:\xampp\htdocs\
(이것이 기본 구성이기 때문에) Apache가 내 서비스를 인식하고 제공하도록 하는 방법이 있습니까? TransitCalculator.php
파일을 아래로 이동하지 않고 htdocs
?가급적이면 Apache가 프로젝트 디렉터리의 전체 내용을 제공/액세스할 수 있기를 원하며 프로젝트 디렉터리를 아래로 이동하고 싶지 않습니다. htdocs
.
편집하다:Q/A를 더 "검색 가능"하게 만들기 위해 질문 제목에 Apache를 추가하도록 편집되었습니다.
해결책
알았어, 당 pix0r'에스, 스파크' 그리고 데이브님의 답변에 따르면 이를 수행하는 방법에는 세 가지가 있는 것 같습니다.
가상 호스트
- C:\xampp\apache\conf\extra\httpd-vhosts.conf를 엽니다.
- ~라인 19(
NameVirtualHost *:80
). 가상 호스트를 추가합니다(~36행):
<VirtualHost *:80> DocumentRoot C:\Projects\transitCalculator\trunk ServerName transitcalculator.localhost <Directory C:\Projects\transitCalculator\trunk> Order allow,deny Allow from all </Directory> </VirtualHost>
호스트 파일(C:\Windows\System32\drivers\etc\hosts)을 엽니다.
추가하다
127.0.0.1 transitcalculator.localhost #transitCalculator
파일 끝까지(Spybot - Search & Destroy 항목이 설치되어 있는 경우 이전)
- 저장(데스크탑에 저장하고, 이전 호스트 파일에 대한 권한을 변경하고(마우스 오른쪽 버튼 클릭 > 속성), 사용 중인 경우 새 파일을 이전 파일 위에 있는 디렉터리에 복사하거나 이전 이름을 바꿔야 할 수 있습니다. Vista에 문제가 있습니다).
- 아파치를 다시 시작하십시오.
이제 다음을 검색하여 해당 디렉토리에 액세스할 수 있습니다. http://transitcalculator.localhost/.
별칭 만들기
200번째 줄부터 시작
http.conf
파일, 사이의 모든 내용을 복사<Directory "C:/xampp/htdocs">
그리고</Directory>
(~232행) 바로 아래에 붙여넣습니다.C:/xampp/htdocs
원하는 디렉토리로 바꾸십시오(이 경우C:/Projects
) 서버에 새 디렉터리에 대한 올바른 권한을 부여합니다.찾기
<IfModule alias_module></IfModule>
섹션(~300행)을 추가하고Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
(또는 귀하의 욕구와 관련된 모든 것) 아래
Alias
모듈 태그 내부의 주석 블록.
문서 루트 변경
C:\xampp\apache\conf\httpd.conf에서 ~라인 176을 편집합니다.변화
DocumentRoot "C:/xampp/htdocs"
에게#DocumentRoot "C:/Projects"
(또는 원하는 대로).새 위치와 일치하도록 ~라인 203을 편집합니다(이 경우
C:/Projects
).
노트:
- 백슬래시 "\" 대신에 슬래시 "/"를 사용해야 합니다.
- 끝에 후행 "/"를 포함하지 마세요.
- 서버를 다시 시작하세요.
다른 팁
편집하여 위치를 변경할 수 있습니다. 문서 루트 XAMPP\apache\conf\httpd.conf의 설정입니다.
현재는 다음과 같아야 합니다.
C:/xampp/htdocs
다음으로 변경하세요.
C:/projects/transitCalculator/트렁크
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를 설정할 수 있지만 일반적으로 더 안전한 형식으로 배포됩니다.
Apache 파일(http.conf는 가장 일반적인 이름 중 하나)을 편집하면 웹 루트에 표시되도록 폴더를 설정할 수 있습니다.
편집하다:
별칭 myapp c:\myapp\
나는 Windows의 바로 가기 또는 Apache가 웹 루트에 폴더가 있는 것으로 '가장'하는 un*x 아래의 심볼릭 링크와 같은 일종의 별칭을 생성하기 위한 형식을 http.conf 파일에 포함하도록 내 답변을 편집했습니다.이것은 아마도 장기적으로 당신에게 더 유용할 것입니다.
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>
실제 환경에서는 이 구성을 사용하지 마십시오.