[PYTHON] Lorsque j'ai mis Django dans mon répertoire personnel, je suis devenu accro à un fichier statique avec une erreur d'autorisation

Comme le dit le titre L'histoire lorsque l'application Django est placée sous / home / ec2-user / sur AWS Le serveur WEB utilise Nginx

Gestion des fichiers statiques lors de la publication d'applications Django

Lors de la publication d'une application Django, les fichiers statiques

$ python manage.py collectstatic

Besoin d'être assemblé quelque part

settings.py ressemble à ceci

settings.py


STATIC_URL = '/static/'

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

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

En faisant cela, divers css et js seront rassemblés dans / home / ec2-user / django_project_root / static et peuvent être accédés sous http: // domain / static.

Rendre nginx.conf accessible aux fichiers statiques comme suit

nginx.conf


server {
	...
	location /static/ {
            autoindex   on;
            alias  /home/ec2-user/django_project_root/static/;
    }

Mais erreur de permission

Si vous regardez l'état de l'application car cela peut être fait avec cela, css n'est pas appliqué (403 interdit) En regardant /var/log/nginx/error.log

2017/08/29 02:17:27 [error] 11629#0: *22 open() "/home/ec2-user/django_project_root/static/apps/css/base.css" failed (13: Permission denied), client: xx.xxx.xxx.xxx, server: xx.xxx.xxx.xxx, request: "GET /static/apps/css/base.css HTTP/1.1", host: "xx.xxx.xxx.xxx", referrer: "http://xx.xxx.xxx.xxx/"

J'ai une erreur d'autorisation comme celle-ci

SElinux est mauvais quand j'essaye différents googles, n'est-ce pas? Il y avait un article comme

$ getenforce
Disabled

A été désactivé

J'ai essayé de jouer avec les permissions des fichiers statiques et les permissions du répertoire / home / ec2-user / django_project_root / static /, mais l'état n'a pas changé.

Nécessaire pour donner l'autorisation d'exécution à / home / ec2-user /

L'état initial est 700 (drwx ------), mais il était nécessaire de donner l'autorisation d'exécution à d'autres.

$ sudo chmod o+x /home/ec2-user/

avec ça

xx.xxx.xxx.xxx - - [29/Aug/2017:02:54:10 +0000] "GET /static/apps/css/login.css HTTP/1.1" 200 1203 "http://xx.xxx.xxx.xxx" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36" "-"

Oui Vous pouvez désormais accéder en toute sécurité aux fichiers statiques

C'était une histoire rudimentaire que même si vous avez une autorisation d'exécution sur le répertoire enfant, vous ne pouvez pas "déplacer vers le répertoire lui-même" sans autorisation d'exécution sur le répertoire parent ...

Recommended Posts

Lorsque j'ai mis Django dans mon répertoire personnel, je suis devenu accro à un fichier statique avec une erreur d'autorisation
J'étais accro au grattage avec Selenium (+ Python) en 2020
Ce que j'ai fait quand j'étais en colère de le mettre avec l'option enable-shared
Gestion des fichiers statiques lors du déploiement en production avec Django
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Ce à quoi j'étais accro en combinant l'héritage de classe et l'héritage de table commune dans SQLAlchemy
Comment référencer des fichiers statiques dans un projet Django
J'étais accro à essayer logging.getLogger avec Flask 1.1.x
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
Lorsque je déploie une application Django sur Apache2 et qu'elle ne lit plus les fichiers statiques
[IOS] Animation GIF avec Pythonista3. J'en étais accro.
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
Je n'arrive pas à me connecter à la page d'administration avec Django 3
Ce à quoi j'étais accro lorsque j'ai construit mon propre réseau de neurones en utilisant les poids et les biais que j'ai obtenus avec le classificateur MLP de scikit-learn.
Ce à quoi j'étais accro dans Collective Intelligence Chaprter 3. Ce n'est pas une faute de frappe, donc je pense que quelque chose ne va pas avec mon code.
Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
Le record auquel j'étais accro en mettant MeCab dans Heroku
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
Erreur liée à memcached dans django
J'étais accro au multitraitement + psycopg2
Je veux me mettre en colère contre ma mère quand la mémoire est serrée
Deux choses dont j'étais accro à la construction de Django + Apache + Nginx sous Windows
J'ai mis Alpine Linux dans Larkbox et en ai fait mon serveur domestique
J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2
J'étais accro à la création d'un environnement Python venv avec VS Code
Une histoire à laquelle j'étais accro à essayer d'obtenir une URL de vidéo avec tweepy
Utilisez Python de Java avec Jython. J'étais aussi accro.
Je souhaite utiliser Django Debug Toolbar dans les applications Ajax
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
J'étais accro à essayer Cython avec PyCharm, alors prenez note
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Remarques sur la création de fichiers statiques avec Django
J'étais accro à pip installer mysqlclient
J'étais accro à Flask sur dotCloud
Ce que j'étais accro à Python autorun
Erreur d'autorisation lors de la lecture du fichier de téléchargement Django
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
django geodjango auquel j'ai fait référence quand je suis resté coincé dans le tutoriel (édition)
Comment obtenir une liste de fichiers dans le même répertoire avec python