2016-04-03 2 views
0

На моем сайте2 Приложение Django Apache wsgi не имеет доступа для записи файлов в/var/www/site2, даже если: centos 7 Apache wsgi разрешение на удаление файлов

  • У меня есть chown-ed для apache все файлы из/каталог var/www/site2
  • Я предоставляю все права (chmod -R 777).
  • и SELinux отключены.
  • Ниже брифинг состояние:

    [[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> 
    #------------------------------------------------- 
    

    И все же в/вар/Журнал/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' 
    

    решаемые

    Благодаря предложениям Владимира я сделал более рыть, и я нахожу путь finnaly.

    Перемещение проекта в/домашний каталог не работает для меня: получение «Запрещено» из Apache.

    Файл Я пытался написать нужен абсолютный путь:

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

    В противном случае WSGI питон бы попробовать записать его в «/» корневой файловой системы, поэтому ошибка выше объяснено

    В end Я сделал chown -R 744/var/www/site2, и он работал, записывая файлы и базу данных.

    Кажется, что я сделал другую ошибку, но, во всяком случае, она работает сейчас.

    +0

    Невозможно увидеть Владимира в этой теме, поэтому не уверен, какие были предложения. Если вы ответили на свой вопрос, лучше ответить на это. – intotecho

    ответ

    0

    Попробуйте:

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

    Я имел эту проблему при развертывании Django с HTTPD на Centos 7. Я выбрал другой путь: создать сайт пакет в дом/пользователь/каталог, затем

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

    После того, как Вы можете попробовать:

    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 
    

    Другие слова APACHE на CentOS 7 необходимо корневые privelegies

    Смежные вопросы