Я пытаюсь создать «разработчика» для своих пользователей. В этой среде они будут иметь доступ к своей собственной учетной записи PHPMyAdmin, SQL, Subversion и FTP, что не является большой проблемой, но я хотел бы подражать тому, как если бы каждый из них был на своем собственном сервере.
Я имею в виду, чтобы они могли изменять конфигурацию PHP (например) и делать это только в своей собственной среде.
есть идеи как это сделать? Должен ли я делать что-то «особенное» при установке моего сервера или что-то в этом роде?
(Отказ от ответственности: у меня нет опыта работы с lxc
как предложено в комментарии)
Я хотел бы подражать, как если бы каждый был на своем собственном сервере.
Лично я бы дайте им свой собственный (виртуальный) сервер, просто используя OpenVZ. Установить действительно просто, и вы можете получить для него облегченный клиент с графическим интерфейсом, если он вам нужен.
Идея состоит в том, чтобы вы создали единый шаблон, который затем развернули бы для каждого пользователя, у которого есть собственный сервер. Они могли бы иметь root
внутри их виртуальной машины, но это будет полностью изолировано только от их машины. Он отлично имитирует то, что произошло бы, если бы у них был собственный (выделенный) сервер, и прелесть этого заключается в том, что вы можете использовать предоставленные инструменты (например, vzmigrate
), чтобы перенести свою машину на новый хост, если им нужно больше ресурсов (ОЗУ, диск и т. д.) - без необходимости переустанавливать ничего. Накладные расходы OpenVZ минимальны, поэтому нередко иметь один выделенный хост только с одной виртуальной машиной OpenVZ из-за такой переносимости.
Другое преимущество в том, что у них есть root
, они могут продолжить и установить любое программное обеспечение, которое им нравится, в свой контейнер, поскольку некоторым разработчикам может потребоваться другая версия PHP или Apache, пользовательские модули Apache или просто какое-то другое серверное программное обеспечение для их разработки.
Выберите простой вариант и дайте им всем Бродяга ВМ, предварительно настроенная с тем, что вам нужно установить (через Chef / Puppet), и позволить им жить своей жизнью. Также лучше масштабируется, потому что не все они используют одну машину (у каждого разработчика предположительно есть собственная рабочая станция), и они могут работать, когда они не подключены к центральному серверу.