VHOST가 Apache에서 작동하지 않습니다.

VHOST가 Apache에서 작동하지 않습니다.

Ubuntu 11.04에서 작동하는 LAMP 서버가 있습니다. 이제 문제는 터미널에서 웹사이트를 활성화 및 비활성화해야 한다는 것입니다. 그들 모두는 http://localhost그다지 효율적이지 않은 접근이 필요합니다. 그래서 인터넷에서 제공하는 몇 가지 튜토리얼을 사용하여 VHOSTS를 만들었습니다. 여기에 대한 코딩이 있습니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    Servername site.com
    ServerAlias www.site.com
    DocumentRoot /home/starx/public_html/site/public
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/starx/public_html/site/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
nGen
    ErrorLog ${APACHE_LOG_DIR}/site-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/site-access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

이제 여전히 페이지에 액세스할 수 없지만 http://site.com사용하여 액세스하면 http://localhsot/액세스됩니다.

기본 사이트를 포함하여 다른 모든 사이트를 비활성화하고 사이트 하나만 활성화했습니다.site

이 문제를 해결하는 방법은 무엇입니까?

답변1

나는 이것을 작동시키려고 노력하고 있었고, 조금 둘러본 후에 나에게 무엇이 잘못되었는지 알아냈습니다.

Ubuntu 12.04용 xampp(lampp) 1.80을 실행하고 있습니다.

열려 있는/opt/lampp/etc/httpd.conf

488행 참조

# Virtual hosts  
# Include etc/extra/httpd-vhosts.conf

에서 "#"을 제거합니다 include. 새로 설치하면 기본적으로
로드되지 않습니다 .httpd-vhosts.conf

답변2

에 따르면 /usr/share/doc/apache2/README.Debian.gz추가 사이트에 대한 정의를 생성하려면 개별 사이트 구성 조각을 에 배치해야 합니다 /etc/apache2/sites-available/( /etc/apache2/sites-available/default예는 참조). 그런 다음 a2ensite(8) 및 a2dissite(8) 명령을 사용하여 특정 호스트에서 사이트를 활성화 및 비활성화할 수 있습니다. 분산 구성이 크게 변경된 경우 설명된 대로 정확하게 작동하지 않을 수 있습니다.

사이트가 이런 방식으로 활성화되었지만 계속 작동하지 않는 것으로 나타나면 웹 서버가 할당되었다고 생각하는 IP 주소와 일치하는 방식으로 웹 서버가 새 사이트의 이름을 확인할 수 있는지 확인해야 합니다. : 가장 간단한 방법은 아마도 서버에서 확인하는 것입니다 . 또한 클라이언트가 문제의 서버에 도달하는 방식으로 이름을 확인하는지 확인하려고 합니다(확인된 IP가 서버에서 사용하는 IP와 일치할 필요는 없음). 안전하지 않은 사이트의 경우 연결이 완료되면(프롬프트 없음) 다음 세 줄을 입력하는 것이 가장 쉽습니다(세 번째 줄은 비어 있지만 세 번째로 Enter를 눌러야 합니다).w3m https://my.new.secure.sitetelnet my.new.site 80

GET / HTTP/1.1
호스트: my.new.site

이것이 작동한다면 다른 것은 브라우저 문제입니다. 첫 번째는 성공하고 두 번째는 실패하는 경우 네트워크 계층(NAT, 프록시 등)에 뭔가 이상한 것이 있을 수 있습니다. 이 문제를 해결하는 정확한 방법은 네트워크 토폴로지와 존재하는 장치에 따라 크게 달라집니다. 구체적인 내용을 포함하여 다른 질문을 하십시오. 이것이 당신에게 적용된다면.

첫 번째 테스트가 실패하면 서버에서 사용 가능한 이름 서비스와 서버에 할당된 IP 주소를 다시 확인합니다(ifconfig -a). 또한 사이트 액세스 로그를 확인하여 적절한 시간에 연결이 표시되는지 확인하세요. 마지막으로, 가상 호스트가 IP가 아닌 이름으로 수신 대기하는지 확인하고 VirtualHost 지시문에서 IP에 대한/기반 결과를 필터링하지 않는지 확인하세요.

답변3

이것이 당신이 원하는 것인지 잘 모르겠습니다.

귀하의 코드를 이 간단한 단축 코드로 바꾸십시오.

<VirtualHost *:80>
   ServerAdmin admin@localhost
   DocumentRoot YourDocumentRoot
   ServerName site.com
   ServerAlias www.site.com
   ErrorLog localhost
   CustomLog localhost-access_log common
</VirtualHost>

vhost에 대해 더 자세히 읽을 수 있습니다.여기

답변4

DNS 라우팅이 올바른지 확인하기 위해 site.com 및 www.site.com을 /etc/hosts 파일에 추가했습니까? nslookup site.comDNS를 테스트해 볼 수 있습니다 .

이것이 작동하지 않는지 확인하려면 http://localhost/etc/apache2/default, default-ssl 파일을 삭제하고 단일 가상 호스트를 사용하십시오.

관련 정보