Tag Archives: 웹서버

[Linux/Apache] 기본(Default) VirtualHost 설정하기

가상호스트를 사용하기 위해 <VirtualHost> 설정을 하게됩니다. 그리고 이름 기반의 가상 호스팅을 하기 위해 다음의 설정을 사용합니다.

[code]NameVirtualHost *:80[/code]
* 대신에 특정 아이피를 할당할 수 있지만 그것은 여기서는 논외로 하겠습니다. 위의 설정을 하는 순간부터 모든 웹서버로의 요청은 가상호스트가 받게 됩니다.

하지만 여기서 가상호스트로 설정되지 않은 정보를 받을때는 어떤 Default한 경로로 연결하고 싶다면 어떻게 하는게 좋을까요?

우선 기본적으로 아파치의 설정은 가상호스트 설정이 되어있지 않은 요청을 받았을 경우 가장 최상단에 설정된 가상호스트에 자동 연결 합니다.

이는 좋은 일일수도 나쁜일일수도 있겠네요. 그렇다면 가상호스트 연결이 되어있지 않은 요청이 올 경우 예를 들어 에러페이지가 들어있는 경로로 연결한다거나 하고 싶을때는 어떻게 할까요?

바로 _default_ 지시자가 있습니다.

[code]<VirtualHost _default_:80>
    DocumentRoot /var/www/html
    …
</VirtualHost>[/code]
위와 같이 ServerName이나 ServerAlias 설정이 없이도 DocumentRoot설정만 있으면 됩니다. 이제부터는 가상호스트에 설정되지 않은 요청이 올 경우 저 디폴트설정이 받게 됩니다.

Trac Apache 1.3버젼과 연동하기

분명히 몇달전만 해도 Trac은 2.0 및 2.2 버젼대의 Apache 웹서버와만 연동이 가능했습니다.

이번에 1.3버젼대에서 돌려야만 하는 상황이 와서 tracd로 standalone으로 실행하고 있었는데 오늘 보니깐 1.3에서도 연동이 가능한 방법이 있었군요! 정확히는 생겼군요!

mod_wsgi를 사용하면 매우 빠르면서도 Apache버젼을 타지 않고 Trac을 웹서버와 연동할 수 있습니다.

우선 이곳에서 소스를 다운 받으세요. 현재 2.0이 최신버젼입니다. [소스바로다운로드]

컴파일 하여 설치를 합니다.
[code][root@Theeye src]# ls
mod_wsgi-2.0.tar.gz
[root@Theeye src]# tar -zxvf mod_wsgi-2.0.tar.gz
[root@Theeye src]# cd mod_wsgi-2.0
[root@Theeye src]# ./configure –with-apxs=/usr/local/apache/bin/apxs –with-python=/usr/local/bin/python
[root@Theeye src]# make
[root@Theeye src]# make install[/code]

httpd.conf 에 다음의 내용을 추가합니다.
[code]LoadModule wsgi_module modules/mod_wsgi.so
AddModule mod_wsgi.c[/code]

Trac이 설치된 폴더로 이동하여 다음의 디렉토리를 생성합니다.
[code][root@Theeye trac]# mkdir apache
[root@Theeye trac]# mkdir eggs[/code]

db, eggs 디렉토리를 아파치 웹서버의 권한으로 변경합니다. (예 : 아파치가 nobody로 실행될 경우)
[code][root@Theeye trac]# chown -R nobody.nobody eggs db attatchment conf[/code]

apache 디렉토리 밑에 trac.wsgi를 만들고 안에 다음과 같은 내용을 적습니다.
[code]import os
os.environ[‘TRAC_ENV’] = ‘/env/trac’
os.environ[‘PYTHON_EGG_CACHE’] = ‘/env/trac/eggs’
import trac.web.main
application = trac.web.main.dispatch_request[/code]

보통 프레임워크에서 볼 수 있을법한 Dispatcher 스크립트 입니다.

이제 Apache에 설정을 추가하면 됩니다. httpd.conf파일이나 외부 파일에 설정하신 후 include하셔도 됩니다.
[code]<IfModule mod_wsgi.c>
WSGIScriptAlias /trac /env/trac/apache/trac.wsgi
<Directory /home/httpd/trac>
    WSGIApplicationGroup %{GLOBAL}
    Order allow,deny
    Allow from all
</Directory>
<Location /trac/login>
    AuthType Basic
    AuthName “Star Team Area”
    AuthUserFile /env/passwd
    Require valid-user
</Location>
</IfModule>[/code]

이제 http://localhost/trac 으로 접속해 봅시다. 잘 되시나요? 하지만 확실히 크게 빠르다는 느낌은 받지 못했습니다. 그래도 좋네요^^

자세한 레퍼런스는 http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac 을 참고하세요.