
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.site
telnet 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.com
DNS를 테스트해 볼 수 있습니다 .
이것이 작동하지 않는지 확인하려면 http://localhost
/etc/apache2/default, default-ssl 파일을 삭제하고 단일 가상 호스트를 사용하십시오.