2014-02-21 2 views
5

mampstack (NOT MAMP) 용 virtualHost를 설정하려고합니다.VirtualHost 설정이 항상 작동하지 않습니다.

을 내 httpd.conf 파일에서 나는 이것은 올바른 (I 포트 8080, NOT (80)에 듣고있어)되어

Listen 8080 

을 확인했습니다 이것은 내가 지금까지 한 일이다.
은 그 때 나는 주석했습니다 : Include conf/extra/httpd-vhosts.conf을 내 httpd.conf 파일에 내 호스트에서
나는 다음과 같은 추가 한 파일 : 127.0.0.1 mext-pst.local합니다.

httpd-vhosts.conf에서 내가 추가 한 : 나는 http://mext-pst.local/에 갈 때

NameVirtualHost *:8080 
<VirtualHost *:8080> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs" 
    ServerName    127.0.0.1 
    ServerAlias    localhost 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN localhost 
</VirtualHost> 

<VirtualHost *:8080> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/mext-pst-dashboard/web" 
    ServerName mext-pst.local 
    ServerAlias mext-pst.local 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN mext-pst.local 
    RewriteEngine on 
    RewriteCond %{SERVER_PORT} ^80$ 
    RewriteRule^http://%{HTTP_HOST}:8080%{REQUEST_URI} [P] 
</VirtualHost> 

지금 난 그냥 그 페이지와 연결할 수 없습니다 브라우저의 오류가 ....
나는 다음과 같은 오류 얻을 http://mext-pst.local:8080/에 갈 때 :

Proxy Error 

The proxy server received an invalid response from an upstream server. 
The proxy server could not handle the request GET /index.php. 

Reason: DNS lookup failure for: mext-pst.local:8080 

나는 그것이 작동 http://mext-pst.local:8080/index.php로 이동 ...

+0

Apache 용 포트를 변경하거나 mod_proxy와'ProxyPass/http : // localhost : 8080/ProxyPassReverse/http : // localhost : 8080 /'을 사용해야합니다. – mkjasinski

답변

2

변경 8080의 기본 80입니다. 하지만 사이트를 8080에서 실행하려면 사용해야합니다. 또 다른 해결책은 URL을 다시 쓰는 것입니다. 즉, 서버가 URL을 가져 오면 포트 번호 (8080)로 다시 씁니다.

먼저 http로만 응용 프로그램에 액세스 할 수 있기를 원하면 8080을 Listen 80으로 변경하십시오. http-vhost.conf 파일에 다음 행을 넣으십시오 (물론 이전 변경 사항을 제거한 후). 다음 구성에서 yourDefaultHttpFolder는 기본 http 폴더를 의미합니다. 당신이 그것을 바꿀 수도 있습니다. 따라서 시스템에 따라 수정하십시오.

<VirtualHost *:80> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/yourDefaultHttpFolder" 
    ServerName    127.0.0.1 
    ServerAlias    localhost 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN localhost 

    <Directory /Applications/mampstack-5.4.20-0/apache2/htdocs/yourDefaultHttpFolder> 
     RewriteEngine on 
     RewriteCond %{SERVER_PORT} ^80$ 
     RewriteRule^http://%{HTTP_HOST}:8080%{REQUEST_URI} [P] 
    </Directory> 

</VirtualHost> 

<VirtualHost *:8080> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/mext-pst-dashboard/web" 
    ServerName mext-pst.local 
    ServerAlias mext-pst.local 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN mext-pst.local  
</VirtualHost> 

이 구성은 내가 80를 사용하여 액세스하려고 지금 내 8080 포트에 URL을 재 작성 내 서버에 작동하고 그 폴더가 아닌 기본 인덱스 페이지의 내용을 참조하십시오.

+0

필자는 8080을 80으로 바꿨지만 (게시물 항목 참조) 로컬 호스트 index.php를 얻었습니다. – nielsv

+0

구성을 고려할 때 예상되는 결과입니다. apache mod_rewrite 모듈에 대해 읽어보십시오. 요청 된 URL을 즉시 변경하는 모듈입니다. –

+0

mod_rewrite 모듈에 대해 읽었지만이 작업을 수행하는 방법을 알아낼 수 없습니다.이 코드를 사용하여 코드를 게시 할 수 있습니까? – nielsv

2

포트를 * : 80으로 변경해야하며 다른 이름을 사용하려는 경우 servername은 httpd.conf에서 NameVirtualHost * : 80을 사용해야합니다.

+0

'httpd.conf에서 NameVirtualHost * : 80'을 사용한다는 것은 무엇을 의미합니까? – nielsv

0

포트가 80이 아니므로 포트없이 URL로 이동할 때 오류가 발생하는 것이 올바른 결과 인 것 같습니다. 맞습니까?

포트 8080에 가면 Proxy Error이 표시됩니다. 포트 8080에서 실행중인 다른 소프트웨어가 없거나 브라우저에 프록시가 입력되어 있지 않습니까? ApacheProxy Error을 제공하지 않습니다. 나는이 오류가 다른 곳에서 오는 것 같아요.

구성에 대해서는 달성하려는 목표가 무엇인지 정확히 알 수는 없지만 localhost:8080으로 갈 때 제공되는 문서를 얻으려는 경우 mext-pst.local:8080으로 갈 때 다른 문서가 제공되는 경우 당신은 거의 거기에, NameVirtualHost *:8080 올바른지 거기에 있어야합니다, 당신이 그들을 필요로하지 않는 리디렉션 라인을 제거합니다 (내 가정이 틀린 않는 한).

관련 문제