2012-05-25 2 views
1

내가 mod_wsgi에를 사용하여, 아파치 2.6.6에 장고 1.3.1을 실행하기 위해 노력하고있어 존재하지 않는, CentOS는 6장고 : 아파치의 DocumentRoot가

나는 변경 httpd.conf 파일이 있습니다

WSGIPythonPath /var/www/vhosts/domain.co.uk 
<VirtualHost *:80> 
    #ServerName domain.co.uk 
    ServerName 46...233 

    ##DocumentRoot /var/www/vhosts/domain.co.uk/httpdocs 

    LogLevel debug 
    ErrorLog /var/www/vhosts/domain.co.uk/logs/error.log 
    CustomLog /var/www/vhosts/domain.co.uk/logs/access.log combinedio 

    HostnameLookups Off 

    UseCanonicalName On 

    WSGIScriptAlias//var/www/vhosts/domain.co.uk/sites/somod/apache/django.wsgi 
    WSGIDaemonProcess somod:80 user=somod group=psaserv processes=1 threads=1 
    WSGIProcessGroup somod:80 
    #WSGIPythonPath /var/www/vhosts/domain.co.uk 

    Alias /robots.txt /var/www/vhosts/domain.co.uk/sites/templates/robots.txt 
    Alias /favicon.ico /var/www/vhosts/domain.co.uk/sites/media/favicon.ico 

    <Directory "/var/www/vhosts/domain.co.uk/httpdocs"> 
    AllowOverride None 
    Options -ExecCGI -Includes -FollowSymLinks -Indexes 
    Order allow,deny 
    Allow from all 
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript 
    </Directory> 

    <Directory "/var/www/vhosts/domain.co.uk/sites"> 
    AllowOverride None 
    Options +ExecCGI -Includes +FollowSymLinks -Indexes 
    Order allow,deny 
    Allow from all 
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript 
    </Directory> 

    Alias /media "/var/www/vhosts/domain.co.uk/media" 
    <Location "/media/"> 
    SetHandler None 
    </Location> 
</VirtualHost> 

그래서 나는 내 아파치 설정 (내가 추가 한 코드 만)을 붙인다. 이것은 /etc/httpd/conf/httpd.conf에 있습니다.

아파치를 오류없이 다시 시작할 수 있지만 웹 사이트가 아직 표시되지 않습니다. 불행하게도 나는 실행할 수 없었다 sudo a2enmod wsgi, 나는 cenos 6을 사용하고있다. 그리고 a2enmod는 이용할 수 없다. 그러나 vps를 주문했기 때문에 설치가 완료된 것 같습니다. 실행 중인지 확실하지 않습니다. 나는 그것을 점검 할것이다.

내 질문에 지금 웹 사이트를보아야하는 것이 무엇입니까? 값 형식 ServerName 또는 ip address/ServerName value입니까? 에서 IP 주소를 사용할 수 있습니까? 내가 도메인을 전환하기 전에 나는 웹 사이트를 실행하고 모든 것이 잘되었는지 확인해야하기 때문에이 도메인 아래서 지금 내가 새 서버로 이동하는 웹 사이트이기 때문에. 도움을

많은 감사

+0

'DocumentRoot'로 무엇을하고 있습니까? mod_wsgi는 그것을 사용하지 않으므로, 거기에 코드를 두어서는 안됩니다. –

+0

Im는 privies 서버의 설정 파일에 있기 때문에 이것을 사용합니다. 하지만 내가 그것을 제거하더라도, 아파치 doesnt 시작. 내가 [루트 @ 575283 /] # /etc/init.d/httpd 다시 시작 httpd를 중지 중 : [FAILED] httpd : [FAILED] '시작 중. – miszczu

+0

자세한 정보는'/ var/log/apache2/error.log.'를 참조하십시오. –

답변

3

당신이 무슨 일을하는지 알고 있지만, 여기 당신을 위해 형제 샘플 설정입니다하지 마십시오

WSGIPythonPath /var/www/yoursite 
<VirtualHost *:80> 
    ServerName yoursite.com 
    ServerAlias testing.yoursite.com 

    Alias /static/ /var/www/yoursite/yourdjangoproject/static/ 
    # Alias /sitemap.xml /var/www/yoursite/yourdjangoproject/static/sitemap.xml 
    WSGIScriptAlias//var/www/yoursite/yourdjangoproject/wsgi.py 

    <Directory /> 
     AllowOverride None 
     Options -Indexes 
    </Directory> 

    <Directory /var/www/yoursite/.git/> 
     Deny From All 
    </Directory> 

    LogLevel info 
    ErrorLog /var/log/apache2/yoursite-error.log 
    CustomLog /var/log/apache2/yoursite-access.log combined 
</VirtualHost> 

이 파일 이름이 yoursite를 만들고 /etc/apache2/sites-available 아래에 넣어 . 그런 다음 sudo a2ensite yoursite을 실행하면 sites-enabled이라는 문자가 표시됩니다.

이에 따라 달라집니다

  • apache2
  • libapache2-mod-wsgi

확인 WSGI가 sudo a2enmod wsgi를 실행하여 활성화되어 있는지 확인합니다.

버전 관리 레포에 파일을 넣은 다음 /etc/apache2/sites-available에서 심볼릭 링크하는 것이 좋습니다.

또한/static /에 대한 별칭을 만들었으며이를 사용하려면 sudo ./manage.py collectstatic을 실행해야합니다. 이렇게하면 모든 정적 파일이 /var/www/yoursite/yourproject/static에 배치됩니다.

행운을 빈다.

+0

'DocumentRoot/var/www/yoursite /'를 삭제하면 사이트 보안이 강화됩니다. –

+0

WSGIPythonPath이면 충분합니까? 보안 측면에 대해 자세히 설명해 주시겠습니까? –

+0

WSGIScriptAlias와 settings.py의 암호를 비롯한 모든 소스 코드를 주석 처리하여 다운로드 할 수 있습니다. DocumentRoot를 사이트 코드가있는 권한 구조로 설정하면 아파치에 대한 간단한 설정이 구성을 노출시킬 수 있습니다. 따라서 코드가있는 곳으로 DocumentRoot를 설정하는 것은 결코 권장되지 않습니다. –

관련 문제