Django - не могу создать каталог в settings.py - Apache2 - PullRequest
0 голосов
/ 11 октября 2018

Я работаю, чтобы поставить в режиме Prod веб-сайт Django.Я застрял в «Разрешение на ошибку» для создания папки с помощью settings.py.

Я не могу в моем settings.py создать каталог ... почему?= (

Журнал ошибок

(я удаляю ненужную информацию)

 mod_wsgi (pid=440685): Failed to exec Python script file '/PATHMYSITE/wsgi.py'.
 mod_wsgi (pid=440685): Exception occurred processing WSGI script '/PATHMYSITE/wsgi.py'.
 Traceback (most recent call last):
   File "/PATHMYSITE/wsgi.py", line 21, in <module>
     application = get_wsgi_application()
   File "/PATHMYENV/lib64/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
     django.setup(set_prefix=False)
   File "/PATHMYENV/lib64/python3.6/site-packages/django/__init__.py", line 19, in setup
     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
   File "/PATHMYENV/lib64/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
     self._setup(name)
   File "/PATHMYENV/lib64/python3.6/site-packages/django/conf/__init__.py", line 43, in _setup
     self._wrapped = Settings(settings_module)
   File "/PATHMYENV/lib64/python3.6/site-packages/django/conf/__init__.py", line 106, in __init__
     mod = importlib.import_module(self.SETTINGS_MODULE)
   File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
     return _bootstrap._gcd_import(name[level:], package, level)
   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
   File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
   File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
   File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
   File "/PATHMYSITE/MYSITE/__init__.py", line 5, in <module>
      from .settings import DEBUG
   File "/PATHMYSITE/MYSITE/settings.py", line 333, in <module>
      os.mkdir(FILE_UPLOAD_TEMP_DIR)
PermissionError: [Errno 13] Permission denied: '/PATHMYSITE/media/tmp'

Django "settings.py"

#### many things ######

FILE_UPLOAD_TEMP_DIR = os.path.join(MEDIA_ROOT, "tmp")

if not os.path.exists(FILE_UPLOAD_TEMP_DIR):
    os.mkdir(FILE_UPLOAD_TEMP_DIR)

Apache Httpd "django.conf "

LoadModule wsgi_module /PATHMYENV/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

CustomLog logs/MYSITE-access_log common
ErrorLog logs/MYSITE-error_log


#<VirtualHost *:80>


        # ServerName www.DNS.com:80

        WSGIDaemonProcess MYSITE python-home=/PATHMYENV python-path=/PATHMYSITE
        WSGIProcessGroup MYSITE

        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptAlias / /PATHMYSITE/MYSITE/wsgi.py

        Alias /static/ /PATHMYSITE/static/
        <Directory /PATHMYSITE/static>
                Require all granted
        </Directory>

        <Directory /PATHMYSITE>
                Require all granted
        </Directory>

        <Directory /PATHMYSITE/MYSITE>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

#</VirtualHost>

РЕДАКТИРОВАТЬ 1 - папка САЙТА разрешений

[ME@web PATHTOMYPARENTFOLDERSITE]$ ls -Z 
drwxrwxr-x. apache  apache  unconfined_u:object_r:httpd_sys_content_t:s0 MYSITE
drwxr-xr-x. apache  apache  unconfined_u:object_r:httpd_sys_rw_content_t:s0 MYENV

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Устранить с помощью комментария Manish R с этой командной строкой:

sudo setenforce Permissive

Отключает SELinux.

0 голосов
/ 11 октября 2018

Измените владельца каталога, в котором находится ваш docroot, на пользователя, который запускает apache.Если вы используете apache с пользователем «apache2», выполните следующие действия:

# chown -R apache2:apache /PATHMYSITE/MYSITE/

и перезапустите

# service apache2 restart
...