ошибка разрешения записи файла как пользовательские данные www

1

Я пытаюсь записать файл, запустив скрипт python в качестве пользовательских www-данных. Когда я запускаю скрипт, используя следующее:

sudo python my_script.py

он пишет хорошо. Когда я запускаю скрипт PHP как www-data, он не пишет. Разрешения:

folder(PiControl....contains status_log file): drwxrwxrwx
file(status_log....the file I am trying to write to): -rwxrwxrwx User:www-data group:www-data

запись в файл Код Python:

#!/usr/bin/python
import datetime

status="on"

with open("status_log", "a") as myfile:
    myfile.write("{} {} {}".format("<br>light is now:", status,datetime.datetime.now()))

Я создал кнопку веб-страницы для запуска файла

Может кто-нибудь сказать мне, что здесь изменить?

  • 0
    имеет ли www-data доступ ко ВСЕМ папкам выше, где находится файл? наличие возможности записи файла и его непосредственного родителя не имеет значения, если дедушка или прадедушка все еще заблокированы.
  • 0
    У меня есть символическая ссылка из папки на рабочем столе в мой каталог www / для обслуживания веб-страниц. Нужно ли разрешить путь из папки на моем рабочем столе или путь из реальной папки www /?
Показать ещё 4 комментария
Теги:
permissions

1 ответ

0
Лучший ответ

Поскольку у меня были symlink'ed мои веб файлы из моего домашнего каталога, когда PHP прочитал status_log, они нашли его в моем локальном каталоге, когда www-данные написали ему (через Python выше), он создал файл в /var/www, вместо этого of/home, где я пытался его прочитать.

Решение заключалось в том, чтобы изменить путь считываемого файла к его местоположению в: /var/www

Ещё вопросы

Сообщество Overcoder
Наверх
Меню