2016-04-03 8 views
0

In meiner Website2 Django-Anwendung Apache wsgi haben keinen Schreibzugriff für Dateien in/var/www/site2, auch wenn: centos 7 Apache wsgi Schreiben von Dateien Berechtigung verweigert

  • Ich habe Apache alle Dateien von/apown var/www/site2 directory
  • Ich gebe alle Rechte (chmod -R 777).
  • und SELinux ist deaktiviert.
  • Unten finden Sie eine Einweisung Zustand:

    [[email protected] www]# httpd -v 
    Server version: Apache/2.4.6 (CentOS) 
    Server built: Nov 19 2015 21:43:13 
    
    [[email protected] www]# ls -l 
    total 4 
    drwxr-xr-x. 2 root root  6 Nov 19 23:43 cgi-bin 
    drwxr-xr-x. 2 root root  6 Apr 2 15:02 html 
    drwxrwxrwx. 6 apache apache 4096 Apr 3 16:14 site2 
    
    [[email protected] site2]# ls -l 
    ... 
    drwxrwxrwx. 5 apache apache 4096 Apr 2 15:23 blog 
    -rwxrwxrwx. 1 apache apache 95232 Apr 3 16:09 db.sqlite3 
    drwxrwxrwx. 5 apache apache 4096 Apr 2 16:54 home 
    -rwxrwxrwx. 1 apache apache 248 Mar 19 13:56 manage.py 
    drwxrwxrwx. 5 apache apache 4096 Apr 3 16:13 pock 
    drwxrwxrwx. 2 apache apache 4096 Apr 3 14:45 site2 
    
    
    [[email protected] www]# sestatus 
    SELinux status:     disabled 
    
    httpd.conf ... 
    #------------------------------------------------- 
    WSGIScriptAlias//var/www/site2/site2/wsgi.py 
    WSGIPythonPath /var/www/site2/ 
    
    Alias /static/ /var/www/site2/blog/static/ 
    Alias /static2/ /var/www/site2/home/static/ 
    Alias /static3/ /var/www/site2/pock/static/ 
    
    <Directory /var/www/site2/blog/static/> 
    Require all granted 
    </Directory> 
    <Directory /var/www/site2/home/static/> 
    Require all granted 
    </Directory> 
    <Directory /var/www/site2/pock/static/> 
    Require all granted 
    </Directory> 
    
    <Directory /var/www/site2/site2/> 
    <Files wsgi.py> 
    #Order deny,allow 
    Allow from all 
    Require all granted 
    </Files> 
    </Directory> 
    #------------------------------------------------- 
    

    Und noch in/var/log/httpd/error_log:

    [Sun Apr 03 13:43:17.389404 2016] [:error] [pid 4753] /var/www/site2 
    [Sun Apr 03 13:43:17.390560 2016] [:error] [pid 4753] Internal Server Error: /pock/test/ 
    [Sun Apr 03 13:43:17.390593 2016] [:error] [pid 4753] Traceback (most recent call last): 
    [Sun Apr 03 13:43:17.390602 2016] [:error] [pid 4753] File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response 
    [Sun Apr 03 13:43:17.390609 2016] [:error] [pid 4753]  response = self.process_exception_by_middleware(e, request) 
    [Sun Apr 03 13:43:17.390634 2016] [:error] [pid 4753] File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response 
    [Sun Apr 03 13:43:17.390643 2016] [:error] [pid 4753]  response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    [Sun Apr 03 13:43:17.390650 2016] [:error] [pid 4753] File "/var/www/site2/pock/views.py", line 57, in test 
    [Sun Apr 03 13:43:17.390656 2016] [:error] [pid 4753]  f = open('test.txt', 'w') 
    [Sun Apr 03 13:43:17.390662 2016] [:error] [pid 4753] IOError: [Errno 13] Permission denied: 'test.txt' 
    

    GELÖST

    Dank Vorschläge von Volodymyr ich tat mehr Graben und ich finde den Weg Finnisch.

    Verschieben des Projekts in/home-Verzeichnis funktionierte nicht für mich: "Verboten" von Apache.

    Die Datei ich absoluten Pfad zu schreiben versuchte müssen:

    f = open('/var/www/site2/test.txt', 'w') 
    

    Ansonsten wsgi Python würde versuchen, es in „/“ Root-Dateisystem zu schreiben, also oberhalb der Fehler erklärten

    In der Ende habe ich chown -R 744/var/www/site2 und es funktionierte, Schreiben in Dateien und Datenbanken.

    Scheint, dass ich andere Fehler gemacht habe, aber, es funktioniert jetzt.

    +0

    Kann nicht Volodymyr in diesem Thread so nicht sicher, was die Vorschläge waren. Wenn Sie Ihre eigene Frage beantwortet haben, ist es besser, dies in eine Antwort zu bringen. – intotecho

    Antwort

    0

    Versuchen:

    chown -R root:apache /Path/To/You/WebSitePackage 
    

    Ich hatte dieses Problem, wenn bereitstellen Django mit httpd auf Centos 7. Ich andere Art und Weise gewählt: Web Site Paket erstellen in home/user/Verzeichnis, dann

    chown -R apache:apache Path/To/WEBSITEPackage 
    chmod -R 770 Path/To/WEBSITEPackage 
    

    nach können Sie versuchen:

    chown -R user:root Path/To/WEBSITEPackage 
    chmod -R 770 Path/To/WEBSITEPackage 
    
    chown -R apache:root Path/To/WEBSITEPackage 
    chmod -R 770 Path/To/WEBSITEPackage 
    

    Andere Wörter Apache auf centOS 7 Notwendigkeit root privelegies