[PYTHON] Als ich Django in mein Home-Verzeichnis legte, wurde ich mit einem Berechtigungsfehler in eine statische Datei eingebunden

Wie der Titel schon sagt Die Geschichte, wenn die Django-Anwendung unter AWS unter / home / ec2-user / platziert wird Der WEB-Server verwendet Nginx

Umgang mit statischen Dateien beim Veröffentlichen von Django-Anwendungen

Beim Veröffentlichen einer Django-Anwendung statische Dateien

$ python manage.py collectstatic

Muss irgendwo zusammengestellt werden

settings.py sieht so aus

settings.py


STATIC_URL = '/static/'

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

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

Auf diese Weise werden verschiedene CSS und JS in / home / ec2-user / django_project_root / static gesammelt und können unter http: // domain / static abgerufen werden.

Machen Sie die Datei nginx.conf wie folgt für statische Dateien zugänglich

nginx.conf


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

Aber Berechtigungsfehler

Wenn Sie sich den Status der Anwendung ansehen, weil dies damit möglich ist, wird CSS nicht angewendet (403 verboten). Schauen Sie sich /var/log/nginx/error.log an

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/"

Ich habe einen solchen Berechtigungsfehler erhalten

SElinux ist schlecht, wenn ich verschiedene Brillen probiere, nicht wahr? Es gab einen Artikel wie

$ getenforce
Disabled

War behindert

Ich habe versucht, mit den Berechtigungen statischer Dateien und den Berechtigungen des Verzeichnisses / home / ec2-user / django_project_root / static / zu spielen, aber der Status hat sich nicht geändert.

Erforderlich, um / home / ec2-user / die Ausführungsberechtigung zu erteilen

Der Anfangszustand ist 700 (drwx ------), aber es war notwendig, anderen die Ausführungsberechtigung zu erteilen.

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

mit diesem

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" "-"

Ja Sie können jetzt sicher auf statische Dateien zugreifen

Es war eine rudimentäre Geschichte, dass Sie, selbst wenn Sie die Ausführungsberechtigung für das untergeordnete Verzeichnis haben, nicht "in das Verzeichnis selbst verschieben" können, ohne die Ausführungsberechtigung für das übergeordnete Verzeichnis auszuführen ...

Recommended Posts

Als ich Django in mein Home-Verzeichnis legte, wurde ich mit einem Berechtigungsfehler in eine statische Datei eingebunden
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Umgang mit statischen Dateien bei der Bereitstellung in der Produktion mit Django
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Wovon ich beim Erstellen von Webanwendungen in einer Windows-Umgebung abhängig war
Drei Dinge, von denen ich süchtig war, als ich Python und MySQL mit Docker verwendete
Ein Hinweis, dem ich beim Ausführen von Python mit Visual Studio Code verfallen war
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
Wovon ich süchtig war, als ich Klassenvererbung und gemeinsame Tabellenvererbung in SQLAlchemy kombinierte
So verweisen Sie auf statische Dateien in einem Django-Projekt
Ich war süchtig danach, logging.getLogger mit Flask 1.1.x zu versuchen
Wovon ich süchtig war, als ich Python Tornado benutzte
Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
Wenn ich eine Django-App auf Apache2 bereitstelle und keine statischen Dateien mehr liest
[IOS] GIF-Animation mit Pythonista3. Ich war süchtig danach.
Wovon ich süchtig war, als der Processing-Benutzer zu Python wechselte
Ich kann mich mit Django 3 nicht auf der Admin-Seite anmelden
Wovon ich süchtig war, als ich mein eigenes neuronales Netzwerk mit den Gewichten und Vorurteilen aufbaute, die ich mit dem MLP-Klassifikator von scikit-learn bekam.
Wovon ich in Kapitel 3 der kollektiven Intelligenz abhängig war. Es ist kein Tippfehler, daher denke ich, dass etwas mit meinem Code nicht stimmt.
Als ich versuchte, mithilfe von Anforderungen in Python zu kratzen, war ich süchtig nach SSLError, also einem Workaround-Memo
Die Platte, von der ich süchtig war, als ich MeCab in Heroku einsetzte
Wovon ich süchtig war, als ich ALE in Vim für Python einführte
Ein Hinweis, von dem ich süchtig war, als ich unter Linux einen Piepton machte
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
[Python] Als ich versuchte, ein Dekomprimierungswerkzeug mit einer Zip-Datei zu erstellen, die ich gerade kannte, war ich süchtig nach sys.exit ()
Fehler im Zusammenhang mit Memcached in Django
Ich war süchtig nach Multiprocessing + Psycopg2
Ich möchte wütend auf meine Mutter werden, wenn die Erinnerung knapp ist
Zwei Dinge, die ich süchtig danach war, Django + Apache + Nginx unter Windows zu erstellen
Ich habe Alpine Linux in Larkbox eingefügt und es zu meinem Heimserver gemacht
Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Eine Geschichte, die ich süchtig danach war, eine Video-URL mit Tweepy zu bekommen
Verwenden Sie Python aus Java mit Jython. Ich war auch süchtig danach.
Ich möchte die Django Debug Toolbar in Ajax-Anwendungen verwenden
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich war süchtig danach, Cython mit PyCharm auszuprobieren, also machen Sie sich eine Notiz
Als ich in IPython versuchte, den Wert zu sehen, war es ein Generator, also kam ich auf ihn, als ich frustriert war.
Hinweise zum Erstellen statischer Dateien mit Django
Ich war süchtig danach, mysqlclient zu installieren
Ich war auf dotCloud süchtig nach Flask
Was ich süchtig nach Python Autorun war
Berechtigungsfehler beim Lesen der Django-Upload-Datei
Ich habe eine Fehlermeldung erhalten, als ich opencv mit Raspeye in Python3 eingefügt habe [Remedy]
django geodjango Ich habe mich darauf bezogen, als ich im Tutorial feststeckte (Bearbeitung)
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis