2013-08-02 2 views
8

나는 장고 웹 응용 프로그램을 이미 사용하고 있으며 인터넷을 통해이를 보이게하고 싶습니다. 장고를 단독으로 사용하는 것도 고려해 볼 것입니다. 왜냐하면이 프로토 타입은 제가 누군가에게 보여주고 싶은 프로토 타입 일 뿐이므로 보안은 지금 당장 우선 순위가 아닙니다. 그러나 이것이 불가능하기 때문에 (또는 최소한 나는 그것을 할 수 없었습니다) 아파치로 이동하고 있습니다.아파치와 장고 배포

문제는 튜토리얼이 많아서 각각 다른 작업을한다는 것입니다.

지금까지 내가 가지고 : 를 - 설치 아파치 (및 작품) - 설치 mod_wsgi에 (그리고 모듈은 아파치에로드) 를 - 내 장고 웹 응용 프로그램이에 있기 때문에/홈/참고 MyUser/www /에서 MyApp를/(또는 최소한 내가 manage.py 파일을 저장하고있는 곳이며 나머지 응용 프로그램은/home/myuser/www/myapp/myapp /에있다.) 나는 아파치 지점을 만들려고했다. 그래서 내가 만든 (집/참고 MyUser/www /에서 MyApp를/apache.conf에/web.wsgi 다음 내용 :

import os, sys 
sys.path.append('/home/myuser/www/myapp/') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

가 BTW 나는 또한에서 새 프로젝트를 만들 때 장고가 자동으로 생성 WSGI가/홈/참고 MyUser .. /www/myapp/myapp/wsgi.py 어쩌면 나는이 하나를 사용해야합니다,하지만 난 지금까지 발견 튜토리얼 아무도이 파일을 언급하지 않는다 어떤 방법을, 그 내용은 다음과 같습니다

import os 
# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks 
# if running multiple sites in the same mod_wsgi process. To fix this, use 
# mod_wsgi daemon mode with each site in its own daemon process, or use 
# os.environ["DJANGO_SETTINGS_MODULE"] = "myapp.settings" 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") 

# This application object is used by any WSGI server configured to use this 
# file. This includes Django's development server, if the WSGI_APPLICATION 
# setting points here. 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

# Apply WSGI middleware here. 
# from myapp.wsgi import MyAppApplication 
# application = MyAppApplication(application) 

마지막으로,/etc/apache2/sites-available/myapp 파일을 기본 템플릿을 템플릿으로 사용하여 다음과 같이 작성합니다.

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    DocumentRoot /home/myuser/www/myapp/ 

    <Directory /> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
     AddHandler mod_python .py 
     PythonHandler mod_python.publisher | .py 
     PythonDebug On 
    </Directory> 

    <Directory /home/myuser/www/myapp/> 
     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> 

    ErrorLog /home/myuser/www/myapp/error.log 

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

    CustomLog /home/myuser/www/myapp/access.log combined 
</VirtualHost> 

내 노력이 설명되어 있지만 localhost로 이동할 때 기본 아파치 웹이 표시되며 '작동합니다!'라고 표시됩니다.

도움이 필요하십니까? 내가 뭘 놓치고 있니?

답변

8

Apache에서 "myapp"사이트를 활성화 했습니까? 당신은 단지에있는 설정 파일을 생성 분명히 있기 때문에

a2ensite myapp 

"사이트-가능 /", 그 것만으로는 충분하지 않습니다)

편집 : 당신은 아마 위의 명령을 입력하기 전에, 기본 사이트를 비활성화 할 :

a2dissite default 

희망이 있습니다.

0

기본 사이트를 사용하도록 설정 한 것 같습니다./etc/apache2/sites-available/000-default (또는 그와 비슷한 것, ATM을 기억할 수는 없지만 기본적으로는 무언가)를 제거하고 아파치를 다시 시작하십시오.