У меня есть приложение Django на сервере Apache, которое использует subprocess.Popen
сделать git pull
в репо, хранящемся на этом сервере.
Ему удается получить новую фиксацию для сервера, но он не может выполнить проверку:
error: git checkout-index: unable to create file run_gui.py (Permission denied)
Точно такое же приложение работает в моей системе Windows, имея возможность успешно извлекать репозиторий git с пульта дистанционного управления. Но на моем сервере Linux он не работает с указанным выше сообщением об ошибке. Когда я ssh
на сервер, мне удается сделать git pull
в оболочке, и он завершается без ошибок. Но не из приложения Django.
Я подумал, что, возможно, это проблема с разрешениями; Но я проверил, под каким пользователем работает Django, используя тот же subprocess.Popen
процедура для запуска id
. У меня есть свой пользователь:
uid=608(coolrr) gid=608(coolrr) groups=608(coolrr)
Это пользователь, которому принадлежит репо.
Я также подтвердил, что могу создать простой файл в файловой системе из приложения Django.
Кто-нибудь знает, что происходит?
Я нашел свою ошибку; Я использовал неправильный «рабочий каталог». На этот раз я дал Popen
а cwd
аргумент, который я установил для пути к моему репо, и он работал без проблем.