2016-06-26 3 views
0

나는 하루 종일 이렇게 보냈습니다. 정적 파일을 가져올 수 없습니다. 내 Django 응용 프로그램이 정상적으로 작동하고 있습니다. 내가 사용하고 있습니다 : 파이썬 3.4, 장고 1.8.13, mod_wsgi 4.5.2. 나는 SO에서 다른 질문을 사용하여 나의 httpd.conf에있는 대부분의 오류를 해결했다. 이 작업을하기 위해서는 더 많은 것이 필요합니다.Django 응용 프로그램에 대한 Apache를 통해 정적 파일이 제공되지 않음

을 httpd.conf

STATIC_URL = '/static/' 

STATIC_ROOT = '/home/rajkumar2014/webapps/allure_static/' 

STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),) 

# Media files (All user uploaded content) 

MEDIA_ROOT = '/home/rajkumar2014/webapps/allure_media/' 

MEDIA_URL = '/media/' 

이 친절하게 도와

ServerRoot "/home/rajkumar2014/webapps/allure/apache2" 

LoadModule authz_core_module modules/mod_authz_core.so 
LoadModule dir_module  modules/mod_dir.so 
LoadModule env_module  modules/mod_env.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module  modules/mod_mime.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule wsgi_module  modules/mod_wsgi.so 
LoadModule unixd_module  modules/mod_unixd.so 
LoadModule alias_module  modules/mod_alias.so 

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
CustomLog /home/rajkumar2014/logs/user/access_allure.log combined 
ErrorLog /home/rajkumar2014/logs/user/error_allure.log 

Listen 21188 
KeepAlive Off 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ServerLimit 1 
StartServers 1 
MaxRequestWorkers 5 
MinSpareThreads 1 
MaxSpareThreads 3 
ThreadsPerChild 5 

WSGIRestrictEmbedded On 
WSGILazyInitialization On 

<VirtualHost *:21188> 

    Alias /media "/home/webapps/allure_media" 
    Alias /static "/home/webapps/allure_static" 

    <Directory /home/rajkumar2014/webapps/allure_media> 
    Require all granted 
    </Directory> 

    <Directory /home/rajkumar2014/webapps/allure_static> 
    Require all granted 
    </Directory> 

    WSGIDaemonProcess allure processes=2 threads=12 python-path=/home/rajkumar2014/webapps/allure/allure:/home/rajkumar2014/webapps/allure/lib/python3.4/site-packages:/home/rajkumar2014/webapps/allure/lib/python3.4 
    WSGIProcessGroup allure 

    WSGIScriptAlias//home/rajkumar2014/webapps/allure/allure/allure/wsgi.py 
    <Directory /home/rajkumar2014/webapps/allure/apache2> 
    Require all granted 
    </Directory> 

</VirtualHost> 

settings.py.

답변

1

나는 djano/python에 처음 익숙하고 지난 달 내 첫 장고 앱을 위해이 전투에서 싸웠다. im은 서버 관리자가 아니므로 정확히 무엇을 잘못하고 있는지 말할 수는 없지만 구문이 보인다. 내가 한 것보다 약간 다르다, 나는

처럼이
Alias /static/ /home/ksjdsd3/public_html/mysite/static/ 
<Directory /home/ksjdsd3/public_html/mysite/static> 
    Require all granted 
</Directory> 

특히 정적 및 디렉토리 경로 후 / 내가 문제 Webfaction와 정적 파일을 제공을하는 데 사용

0

인용에없는이 , 장고를 설치하는 방식에 따라 (webfaction 설치 프로그램을 사용하여 전체 django app 또는 apache/django 배포를 배포 할 수있는 mod_wsgi 응용 프로그램).

Webfaction에는 정적 파일을 제공하는 루트 수준에서 실행되는 추가 nginx 프로세스가 있습니다. 따라서 액세스 제어 목록 - ACLs을 확인해야합니다.

나를 위해이 ACL이 문제였습니다. nginx 사용자는 정적 폴더에 대한 읽기 권한이입니다.

그래서 어쩌면 당신은 webfaction에 UNIX 터미널에 로그인 getfacl가 (이 출력 비슷한 가야) 실행할 수 있습니다

[[email protected] ~]$getfacl /home/rajkumar2014/webapps/allure_static/ 

# file: home/rajkumar2014/webapps/allure_static/ 
# owner: rajkumar2014 
# group: rajkumar2014 
user::rwx 
user:apache:r-x 
user:nginx:r-x 
group::rwx 
mask::rwx 
other::r-x 

[[email protected] ~]$ getfacl /home/rajkumar2014/webapps/allure/allure/allure/wsgi.py 
getfacl: Removing leading '/' from absolute path names 
# file: home/rajkumar2014/webapps/allure/allure/allure/wsgi.py 
# owner: rajkumar2014 
# group: rajkumar2014 
user:apache:r-x 
user:nginx:r-x 
group::rw- 
mask::rwx 
other::-- 

ideea의이 아파치 사용자와의 nginx 사용자가 읽고해야되는 액세스 정적 폴더 및 wsgi.py (외부 소스 - 랩톱에서 업로드 한 경우)로 이동합니다.로그에 정적 폴더에 오류 및 참조를 또한

확인 :

  • 프런트 엔드 로그, 정적 인의 nginx 과정; 위치 : 사용자 설치된 응용 프로그램에 대한

    /home/rajkumar2014/logs/frontend/

  • 사용자 로그, (같은 장고) 내가 관심을 가질만한

    /home/rajkumar2014/logs/user/

은 알고 :

  • Webfaction Django 설치 프로그램을 사용 했습니까?
  • webfaction app to serve static assets을 만들었습니까?
  • frontend 로그에서 정적 폴더에 대한 참조를 찾을 수 있습니까?
  • 이전 (Centos 6.5, Apache 2.2) 또는 새로운 (Centos 7, Apache 2.4) Webfaction 계획이 있습니까? Webfaction Docs

    에서이 약