Форум сайта python.su
Доброго времени суток. Ситуация следующая. Есть файл /tmp/temperature/temperature.txt. Приложение (main) проекта webfather Django2 размещается в следующей папке: /home/ftpuser/www/wwwenv/project/webfather/main/ При запуске приложения на встроенном сервере через manage.py runserver приложение видит file.txt и считывает с него данные. При переносе на apache2 выдает ошибку: No such file or directory: ‘/tmp/temperature/temperature.txt’. Данные обязательно должны лежать в директории /tmp в силу технических особенностей. Понимаю что не правильно указан путь к файлу, перепробовал наверное все, включая ссылки на файл. В сети ничего подходящего не нашел. Просьба указать нужное направление, этот затык сводит меня с ума
Вот код из views.py приложения main
from django.shortcuts import render
import datetime
import os
from django.core.files import File
def my_list(request):
f = open('/tmp/temperature/temperature.txt', 'r')
my_temper_garaj = f.read()
f.close()
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
'/home/ftpuser/www/webfather/main/static/main/',
'/tmp/temperature/',
]
Отредактировано zloy_ej (Янв. 12, 2019 17:10:17)
Офлайн
У директорий есть права на исполнение для пользователя www-data?
Офлайн
Вот вывод команды ls -l /home/ftpuser/
drwxr-xr-x 2 ftpuser ftpgroup 4096 Jan 2 21:28 ftp_data
drwxr-xr-x 2 ftpuser ftpgroup 4096 Jan 2 21:28 ftp_log
drwxr-xr-x 2 root root 4096 Jan 12 18:17 script
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 11 21:03 www
вот вывод groups www-data
www-data : www-data ftpgroup
т.е пользователь www-data состоит в группе ftpuser. Права даны рекурсивно, т.е. распространяются на все файлы и каталоги: ls -l /home/ftpuser/www/wwwenv/project/webfather/
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 3 16:56 control
-rwxrwxr-x 1 ftpuser ftpgroup 131072 Jan 15 19:53 db.sqlite3
drwxr-xr-x 10 ftpuser ftpgroup 4096 Jan 3 16:56 fontawesome-free-5.6.3-web
drwxr-xr-x 2 ftpuser ftpgroup 4096 Jan 3 16:56 logs
drwxr-xr-x 7 ftpuser ftpgroup 4096 Jan 9 00:38 main
-rwxr-xr-x 1 ftpuser ftpgroup 556 Jan 15 19:53 manage.py
drwx—— 2 ftpuser ftpgroup 4096 Jan 9 01:07 media
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 3 16:56 mydate
drwxr-xr-x 6 ftpuser ftpgroup 4096 Jan 9 01:07 static
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 3 16:56 telegram
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 3 16:56 temperature
drwxr-xr-x 2 ftpuser ftpgroup 4096 Jan 3 16:56 templates
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 3 16:56 video
drwxr-xr-x 3 ftpuser ftpgroup 4096 Jan 12 18:18 webfather
Временно дал права на файл /tmp/temperature/temperature.txt
chmod 777 /tmp/temperature/temperature.txt
ls -l
-rwxrwxrwx 1 root root 3 Jan 15 19:16 temperature.txt
ситуация не поменялась.
Я конечно не специалист, только начинаю осваивать Python3 и Django2 поэтому могу ошибаться: когда мы открываем файл в django:
f = open('/tmp/temperature/temperature.txt', ‘r’)
my_temper_garaj = f.read()
нам ведь нужны права только для чтения для всех остальных, поэтому если пользователь www-data будет скомпроментирован он не сможет обратится к разделу /tmp/ в которой вроде как хозяин root. Не так?
Офлайн