6
votes

Fichier statique avec mod_wsgi à Django

J'ai cherché beaucoup mais j'ai toujours un problème avec les fichiers statiques (CSS, image, ...) avec mon site Web de Django.

J'utilise mod_wsgi avec Apache sur Archlinux 64bits

Je l'ai ajouté dans mon http.conf: xxx

J'ai essayé d'utiliser django.wsgi dans mon dossier à domicile, mais cela ne fonctionne pas ( Autorisation refusé à accès / ) (étrangement, cela fonctionne si j'utilise le script de test donné Ici )

Tous les répertoires et tous les répertoires et contenus (dossier Apache, WSGI-Script, Martfiles) ont la permission 775 racine: Devusers avec les dévueurs de groupe, y compris mon utilisateur, y compris mon utilisateur , http et root

dans ma base de matrice.html, j'appelle le CSS de cette façon: xxx

et l'erreur dans / var / log / http /error.log xxx

/ etc / httpd / conf / http.conf

/ srv / http / wsgi-script / django .wsgi

/Home/.../martfiles/Settings. py

merci


EDIT : Je précise que mon site Web Django fonctionne bien (sauf les sessions mais je n'ai pas t pense que c'est lié), je ne suis donc pas sûr que ce soit lié au fichier django.wsgi (peut-être que je me trompe), mais ce qui est sûr, c'est que je devrais pouvoir utiliser le dossier Django.WSGI de l'extérieur du dossier Apache

si je change la ligne alias / média / home / mart / programmation / python / django / martfiles / multimédia / avec alias / média / srv / http / média / et donne les bonnes autorisations, cela fonctionne. Mais je ne veux pas (et ne devrait pas) mettre tous mes médias dans le dossier Apache


0 commentaires

3 Réponses :


0
votes

Ceci semble être ce que j'ai pour ma candidature, sauf que je n'ai pas vu la directive NameVirtualHost dans le http.conf requise si vous souhaitez configurer des serveurs virtuels. Vous pouvez essayer d'ajouter namevirtualhost *: 80 avant la définition d'hôte virtuelle.


2 commentaires

Si je fais que j'ai une autre erreur dans l'erreur.log: '[Erreur] virtualhost : 80 - Les ports de mixage * et non - avec une adresse NomVirtualHost ne sont pas pris en charge, en passant avec résultats indéfinis '


Désolé, il aurait dû être namevirtualhost *: 80 . Mise à jour de la réponse.



3
votes

Votre django.wsgi code> fichier, xxx pré>

est en dehors du code> défini par: p>

<VirtualHost *:80>
    # Admin email, Server Name (domain name) and any aliases
    ServerAdmin testing@example.de
    ServerName  www.example.de

    DocumentRoot /home/example/testing/parts/public

    Alias /media /home/example/testing/parts/public/media

    # WSGI Settings
    WSGIDaemonProcess example user=example group=example threads=25
    WSGIProcessGroup example
    WSGIScriptAlias / /home/example/testing/parts/public/django.wsgi

    <Directory "/home/example/testing/parts/public">
        # Allow Apache to follow links
        Options FollowSymLinks
        # Turn on the ability to use .htaccess files
        AllowOverride All
        # Controls who can get stuff from this directory
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


4 commentaires

Si je mettez le Django.wsgi dans Marfiles, j'ai une erreur 403 Accès refusé ([Erreur] [Client 127.0.0.1] (13) Autorisation refusée: accès à / refusé). Si j'ajoute le localhost ).


Essayez simplement d'ajouter DocumentOrot / Accueil / MART / PROGRAMMATION / PYTHON / DJANGO / MARFILES INTÉRIEUR DU Section.


Où mettre le fichier .htaccess?


@sharafjaffri Mon exemple est une configuration complète Apache, pas un fichier .htaccess . Vous mettez des fichiers individuels .htaccess dans chaque répertoire que vous souhaitez configurer avec eux (les annuaires desservir).



7
votes

Ce n'est pas suffisant pour le répertoire '/ home / mart / programmation / python / django / martfiles / média' contenant des fichiers statiques à lisible et consultable. L'utilisateur que Apache est exécuté, de même que l'accès à la recherche, à tous les répertoires des parents de la part de celui-ci. Étant donné que les répertoires de la maison sur de nombreux systèmes sont «RWX ------» Cela refuserait l'accès Apache indépendamment des directives de refuge / Autoriserait la configuration Apache.

Vous suggère de placer le projet Django et des fichiers statiques en dehors de votre compte domestique quelque part et détendez les autorisations du système de fichiers si nécessaire.


3 commentaires

C'est pourquoi j'ai donné la permission à 775 avec les dévueurs de groupe contenant mon utilisateur Apache (http). Où et quelle permission? Je vais l'essayer


J'ai mis mes médias dans / usr / partager / django avec des privilèges root seulement et ça marche! Merci beaucoup


+1 pour la correction de mon erreur. Quelles sont les implications de sécurité de la définition des autorisations de la maison à 755?