Назад | Перейти на главную страницу

Как следует настроить virtualenv на рабочем веб-сервере (пользователь, местоположение и т. Д.)

Я переключаю свой производственный сервер на использование virtualenv, и я хочу понять передовой опыт настройки virtualenv в производственной среде. Я столкнулся сегодня со следующими вопросами, пытаясь в этом разобраться:

Virtualenv будет использоваться почти исключительно Apache, поэтому я думаю, что правильный пользователь www-data, а расположение virtualenv может быть /var/www/.virtualenvs.

Вроде нормально, но следующая проблема в том, что www-data на самом деле не имеет оболочки входа и не может писать в свой собственный домашний каталог (/ var / www /), поэтому, когда я пытаюсь активировать virtualenv, это не работает, и когда я пытаюсь установить что-то с помощью pip, я получаю такие ошибки, как:

Каталог '/var/www/.cache/pip/http' или его родительский каталог не принадлежит текущему пользователю, и кеш отключен. Пожалуйста, проверьте разрешения и владельца этого каталога. При выполнении pip с помощью sudo вам может понадобиться флаг sudo -H.

(даже если я использую -H Я получаю эту ошибку.)

Итак, я мог создать оболочку входа для www-data, но это похоже на антипаттерн безопасности.

И я мог дать www-data доступ к его домашнему каталогу (/var/www/), но это явно антипаттерн безопасности.

Есть ли в этом норма? Я прожег слишком много циклов, пытаясь понять это, и мне кажется, что это должно быть намного проще.

Запуск в virtualenv ничем не отличается от любого другого приложения. Вы используете пользователя с наименьшим количеством привилегий, необходимых для выполнения того, что требуется приложению.

Не рекомендуется запускать его от себя.