#python #virtualenv
#python #virtualenv
Вопрос:
Я немного смущен virtualhosting и virtualenv.
Я знаю, что virtualenv создает изолированные установки python с пакетами, необходимыми для конкретного приложения. Я понял это. Для меня это означает, что вам все равно нужно настроить virtuahosts, чтобы размещать несколько доменов из одного поля.
В типичном VPS каждый пользователь домена изолирован от доступа за пределы своей учетной записи пользователя. Это означает, что вы не можете создавать и поддерживать virtualenv вне пользовательского пространства. Не уверен, что это бросает ключ в машину.
Для конкретного примера, допустим, у вас есть:
<VirtualHost *:80>
ServerAdmin you@example_01.com
ServerName example_01.com
ServerAlias example_01.com *.example_01.com
DocumentRoot /var/www/example_01/public_html
ErrorLog /var/www/example_01/logs/access.log
CustomLog /var/www/example_01/logs/error.log combined
<Directory /var/www/example_01>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin you@example_02.com
ServerName example_02.com
ServerAlias example_02.com *.example_02.com
DocumentRoot /var/www/example_02/public_html
ErrorLog /var/www/example_02/logs/access.log
CustomLog /var/www/example_02/logs/error.log combined
<Directory /var/www/example_02>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Каждый ли пользователь обрабатывает и управляет своим собственным virtualenv? В этом случае они могли бы жить в:
/var/www/example_01/virtualenv/
и
/var/www/example_02/virtualenv/
Так ли это делается?
Контекст, опять же, заключается в том, что у вас есть план VPS и у вас есть несколько клиентов, каждый из которых имеет свои собственные домены, размещенные на этом компьютере. Как настроить virtualhosting и virtualenv для этого сценария?
Комментарии:
1. Я бы подумал, что вам нужно что-то более «изолированное», чем virtualenv. Насколько я понимаю, virtualenv просто описывает, какие модули python установлены в данной среде. Ничего общего с разделением сетевого пространства / пространства выполнения / и т.д. Виртуальные машины или, по крайней мере, виртуализация на уровне ядра (lxc, docker и т. Д.) Должны использоваться для размещения нескольких клиентов на одной машине.
2. Я думаю, вы также путаете VPS (у пользователя есть целый виртуальный сервер для себя, т.Е. user == root) с общим веб-хостингом (у пользователя есть учетная запись оболочки и доступ к некоторому предварительно настроенному веб-пространству Apache, как вы описали).
3. @hmn, не уверен, что ваш комментарий был для меня. Во всяком случае, я использовал «VPS» в качестве сокращения для того, что я имел в виду, и, возможно, я был недостаточно ясен. Представьте, что я получаю Linode, а затем использую виртуальный хостинг (не виртуальные машины) для размещения нескольких доменов и предоставляю интерфейс типа cPanel для каждого владельца домена для управления своим сайтом. Как затем управляются virtualenv? Я новичок в Python и virtualenv и вполне могу иметь пробел в моем понимании. До сих пор каждый учебник, с которым я сталкивался, кажется, начинается с того, что один из них является пользователем root, а не одним из 100 человек, управляющих одним из 100 сайтов на сервере.
4. Virtualenv работает через переменные среды, которые могут быть настроены для пользователя при входе в систему и в Apache для каждого виртуального хоста.