Windows 7 как сервер приложений
Привет, всем!
Хочу рассказать о том как я создавал веб-сервер для разработки и тестирования PHP приложений на локальной машине и как потом я его «вывел в свет».
Предыстория
В качестве собственного и профессионального развития я решил более тесно познакомится с Linux системой и, в частности, с настройкой веб-сервисов. До этого для разработки и тестирования PHP приложений я пользовался пакетом Denwer для Windows (apache+php+mysql), который вообщем-то со своей задачей справлялся, но не отражал (и не отражает) современной действительности — все-таки хостинг с Windows не так популярен.
Желание иметь полный доступ к серверу и нежелание платить за это удовольствие исключили из рассмотрения вариант покупки VPS. А потому я решил организовать Linux сервер на своем локальном компьютере.
Задача
- Поставить виртуальный Linux
- Настроить сетевое соединение гостевой ОС (Linux) и хост (Windows 7)
- Установить необходимые сервисы
- Сделать доступ к серверу из внешнего мира
Инвентарь
Windows 7 Home Basic
VirtualBox 4.0.8
Образ ubuntu-11.04-server-i386.iso
Приступим
Первый пункт, наверное самый простой. Virtualbox обладает простым интерфейсом и процесс создания виртуальной машины не вызывает трудностей. Для своего сервера я выбрал минимальные настройки производительности — (128Мб оперативной памяти, usb устройства отключены, никаких графических ускорений и прочих изысков — для сервера должно быть ок ), чтобы не слишком загружать основную систему.
Параметры сети
В меню Virtualbox в настройках сети для виртуальной машины в качестве типа подключения для первого сетевого адаптера указываем NAT. Тогда сеть в системе поднимется сама и машина будет иметь доступ к внешнему сетевому соединению Windows. Проблема в том, что при таких настройках, Linux система остается недоступной из основной системы.
Но решение есть! Указываем для второго сетевого адаптера значение «Виртуальный адаптер хоста». При установке Virtualbox в системе автоматически дополнительно создается сетевое подключение «VirtualBox Host-Only Network», которое нам пригодится в этом случае. Заходим в «Центр управления сетями и общим доступом» Windows. В настройках этого соединения указываем стандартные для данной задачи параметры: ip — 192.168.0.1, netmask — 255.255.255.0.
Осталось указать нужные параметры в виртуальной системе. Дописываем нужные строки в файл "/etc/network/interfaces"
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
auto eth1
перезапускаем сеть и можно попробовать пинговать Linux.
Таким образом: а) Linux имеет доступ в интернет через сетевое соединение Windows
б) Windows видит сервер и может к нему обращаться по ip — 192.168.0.2 (для удобства можно дописать в файл hosts какое-нибудь удобоваримое имя для этого ip, например «webserver»)
Конфигурация Linux
Что я хочу от своего сервера?
Во-первых, мне нужен веб-сервер с поддержкой PHP — возможность разрабатывать и тестировать приложения на локальной машине меня весьма радует
Во-вторых, мне нужна база данных — MySQL и/или PostgreSQL
В-третьих, мне очень удобно когда сохранив файл в IDE, можно тут же запустив скрипт в консоли или обновив страницу в браузере увидеть изменения. Таким образом, используемая мной IDE также должна иметь доступ к www каталогу на сервере. (чтобы не нужно было дополнительно копировать что-либо куда-нибудь)
В-четвертых, мой сервер должен быть доступен из внешней среды.
Поскольку моя статья не о настройке apache, тонкостях php.ini или бэкапе mysql, то первые три пункта я пропущу и описывать не буду. Скажу лишь, что все что сделал я (что не заработало сразу после установки) — это поправил вывод ошибок в php.ini (по умолчанию был полностью отключен вывод вообще всех ошибок), а также установил xdebug. Третий пункт решается установкой samba и небольшой модификацией файла конфигурации «etc/samba/smb.conf» в разделе Share Definitions, с целью разрешить пользователям доступ к своей директории в home (именно в эту папку помещен DocumentRoot сервера apache).
На данный момент уже можно получить доступ к серверу не только по ssh (open ssh server ставится по умолчанию) через putty, но и по samba — подключив пользовательскую директорию как сетевой диск в Windows.
А вот на последнем пункте я остановлюсь подробнее.
Доступ к серверу из внешнего мира
По сути, задача стоит в том, чтобы все запросы на 80 порт к моему компьютеру перенаправлять на 80 порт моего локального сервера. Такой вот небольшой прокси. Здесь на помощь приходит утилита netsh встроенная в Windows 7.
c:\>netsh
netsh>interface portproxy
netsh interface portproxy>add v4tov4 listenport=80 connectaddress=192.168.0.2 connectport=80 protocol=tcp
Теперь виртуальный веб-сервер доступен при обращении к моему компьютеру по внешнему ip-адресу.
Если для вас, как и для меня, белый внешний ip адрес является роскошью и проще говоря, его нет, то еще одна часть истории для вас!
Данная статья представляет собой пошаговую инструкцию по настройке Windows 7 в качестве терминального сервера с доступом по RDP.
Процесс настройки показан на примере Windows 7 x64, однако данное руководство актуально для ОС Windows XP SP2/SP3, Vista SP1/SP2, Windows 7, Windows Server 2008 SP1/SP2.
.
Для настройки Windows 7 в качестве терминального сервера с доступом по RDP понадобятся:
1. Компьютер с установленной операционной системой Windows 7 и правами администратора, подключённый к локальной сети;
2. Компьютер в локальной сети, с которого будет производиться подключение и который имеет RDP клиент (прим. требуется ОС Windows XP/Vista/7/8/8.1/10 и т.д.);
I. Создание пользователя и настройка прав для доступа по RDP
1. Перейдите в раздел Управление учётными записями (прим. Пуск > Панель управления > Добавление и удаление учётных записей пользователя), затем нажмите Создание учётной записи (Рис.1).
2. В разделе Создание новой учётной записи укажите имя учётной записи (прим. в данном примере это UserRDP), выберите пункт Обычный доступ и нажмите Создание учётной записи (Рис.2).
3. Выберите созданную учётную запись (прим. в данном примере это UserRDP) (Рис.3).
4. Выберите Создание пароля (прим. Наличие пароля является обязательным для доступа по RDP) (Рис.4).
5. Придумайте и введите пароль для учётной записи, затем нажмите Создать пароль (Рис.5).
6. Нажмите Пуск > Компьютер (пр. кнопкой мыши) > Управление (Рис.6).
9. Нажмите Поиск, выберите из списка Пользователи удаленного рабочего стола и нажмите OK (Рис.9).
10. Нажмите OK (Рис.10).
11. Нажмите Применить, затем OK (Рис.11).
II. Настройка терминального сервера с доступом по RDP
1. Нажмите Пуск > Компьютер (пр. кнопкой мыши) > Свойства (Рис.12).
2. Нажмите Настройка удалённого доступа, в открывшемся окне перейдите на вкладку Удалённый доступ, выберите пункт Разрешать подключения от компьютеров с любой версией удалённого рабочего стола, затем нажмите Применить и OK (Рис.13).
4. Нажмите Да (Рис.15).
5. Нажмите OK (Рис.16).
7. В открывшемся окне нажмите Patch (Рис.18).
8. После успешной установки патча нажмите OK (Рис.19).
9. В появившемся окне нажмите Да, после чего перезагрузите компьютер (Рис.20).
10. Нажмите Пуск, с помощью поисковой строки найдите, а затем выберите Выполнить (Рис.21).
11. В открывшемся окне введите gpedit.msc и нажмите OK (Рис.22).
12. Выберите: Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы удалённых рабочих столов > Узел сеансов удалённых рабочих столов > Подключения > Ограничить количество подключений (Рис.23).
13. В открывшемся окне выберите пункт Включить, установите в параметрах разрешённое количество подключений к удалённым рабочим столам на 999999, затем нажмите Применить и OK. Перезагрузите компьютер (Рис.24).
III. Подключение к удаленному рабочему столу
1. Используя второй компьютер, находящийся в той же локальной сети, нажмите Пуск, с помощью поисковой строки найдите, а затем выберите Подключение к удалённому рабочему столу (Рис.25).
2. В открывшемся окне ведите имя компьютера к которому следует подключиться (прим. Тот, на котором производились все настройки), затем нажмите Подключить (Рис.26).
3. Прежде всего, выберите пользователя (прим. в данном примере это UserRDP) и введите пароль от учётной записи, который Вы указывали ранее (прим. см. Рис.5), затем нажмите OK (Рис.27).
4. В появившемся окне нажмите Да, после чего начнётся сеанс удаленного подключения (Рис.28).
Настройка Windows 7 в качестве терминального сервера с доступом по RDP завершена!
.
Пользовательские операционные от Microsoft последних поколений, в частности рассматриваемая нами Windows 7, имеют возможность подключения по протоколу RDP (Remote Desktop Protocol). По-русски говоря, это удалённый рабочий стол. В серверных Windows имеется сервер терминалов, позволяющий подключиться к компьютеру посредством удалённого рабочего стола сразу нескольким пользователям. В не серверных системах же имеется ограничение на количество сессий, равное одному. То есть возможность подключится к своему компьютеру удалённо есть, но если в этот момент другой пользователь работает за компьютером, ему придётся завершить свой сеанс, чтобы позволить войти удалённому пользователю.
Лицензионное соглашение операционной системы Windows XP Professional разрешает 10 удаленных сетевых подключений без дополнительной лицензии (Windows XP Home Edition соответственно 5). Это означает, что используя ниже перечисленные методы Вы не нарушаете лицензионное соглашение. Каким же образом можно заставить работать Windows 7 как полноценный терминальный сервер. Которые позволили мне работать за компьютером обойдя ограничение в одну рабочую сессию.
Ниже представлены два варианта.
- Для тех кто хочет всё и сразу.
- Для тех кто любит всё настраивать сам.
Сервер терминалов на windows 7 - Вариант 1
Использовать универсальное решение (для 32-битной системы) или (для 64-битной системы) . Работает для Windows XP SP2/SP3, Vista SP1/SP2, Windows 7, Windows Server 2008 SP1/SP2. Скачиваем и запускаем от имени Администратора, правым кликом. Жмем Path и перезагружаемся и будет вам счастье.Как увеличить количество терминальных сессий в Windows 7-01
Сервер терминалов на windows 7 - Вариант 2
- Установленная операционная система MS Windows 7 Максимальная (можете попробовать с другими конфигурациями, думаю, получится).
- Компьютер с выше упомянутой системой, подключённый к локальной сети.
- Компьютер в локальной сети, с которого будем подключаться и который имеет RDP клиента (по сути любой компьютер с операционной системой Windows), в моём случае это ноутбук с Windows XP.
- Администраторские права на компьютере с Windows 7.
- Библиотека терминального сервера, в которой отключено ограничение на одну сессию. для 32-битной системы , для 64-битной системы .
Как увеличить количество терминальных сессий в Windows 7-02
Далее под полем "Разрешения для группы Администраторы" жмём кнопку "Дополнительно". Должно вылезти окошко под названием "Дополнительные параметры безопасности для termsrv.dll", где во вкладке "Разрешения" под полем "Элементы разрешений" нажимаем кнопку "Изменить разрешения".
Как увеличить количество терминальных сессий в Windows 7-03
Вылезет ещё одно окошко под тем же названием, что и перед ним, только теперь вы можете выбрать в поле "Элементы разрешений" элемент "Администраторы" и нажать кнопку "Изменить".
Как увеличить количество терминальных сессий в Windows 7-04
Вылезет окошко "Элемент разрешений для termsrv.dll", где в поле "Разрешения" установите галочку на "Разрешить полный доступ".
Как увеличить количество терминальных сессий в Windows 7-05
Во всех окошках нажимаем ОК для применения внесённых изменений. Теперь для изменения владельца файла termsrv.dll открываем командную строку с правами администратора.Как увеличить количество терминальных сессий в Windows 7-06
Скопируем команду в окно командной строки:
Нажимаем Enter. Система должна сообщить нам о том, что владелец файла изменён на текущего пользователя. Переименовываем файл termsrv.dll во что-нибудь типа termsrv.dll.original, оставив его в качестве резервной копии. Скачанный файл переименовываем в termsrv.dll и копируем его в C:\Windows\System32.
Теперь производим записи в реестр, копируя команды в командную строку: REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 10 /f В последней команде 10 - количество одновременных сессий. Можете здесь поставить нужное вам количество. Далее нам нужно создать пользователя, через которого мы будем подключаться по RDP. Для этого кликаем правой кнопкой мыши по значку "Мой компьютер" и выбираем "Управление" или через "Панель управления" > "Администрирование" > "Управление компьютером" выбираем "Локальные пользователи и группы" в дереве слева, открываем папку "Пользователи", правой кнопкой мыши кликаем по свободному месту в списке пользователей, в контекстном меню выбираем "Новый пользователь. ". Заполняем предложенную форму, жмём кнопку "Создать".
Как увеличить количество терминальных сессий в Windows 7-07
Теперь в списке пользователей находим нашего нового пользователя и двойным кликом по нему открываем свойства пользователя, где заходим во вкладку "Членство в группах" добавляем группы "Администраторы" и "Пользователи удалённого рабочего стола".
Как увеличить количество терминальных сессий в Windows 7-08
Всё готово, осталось только запустить службу "Службы удалённых рабочих столов" (чуть выше мы уже говорили о том, как остановить эту службу, теперь нам нужно её запустить) и разрешить удалённый рабочий стол, для чего в свойствах системы слева выбираем "Настройки удалённого доступа".
Как увеличить количество терминальных сессий в Windows 7-09
Вылезет окошко "Свойства системы" с открытой вкладкой "Удалённый доступ", где в блоке "Удалённый рабочий стол" выбираем средний параметр "Разрешить подключение от компьютеров с любой версией удалённого рабочего стола (опаснее)". Что тут опасного не понятно, но деваться нам некуда, так как я, например, буду подключаться с RDP клиента Windows XP.
Как увеличить количество терминальных сессий в Windows 7-10
Нажимаем кнопку "Выбрать пользователей", добавляем пользователя, созданного для удалённого доступа, с помощью кнопки "Добавить".
Как увеличить количество терминальных сессий в Windows 7-11
Перезагружаем машину, вот теперь действительно всё, на другой машине запускаю RDP клиент, ввожу адрес компьютера с Windows 7, выбираю пользователя, которого мы создавали для удалённого доступа, ввожу пароль и. пользуюсь удалённо своим компьютером в тот момент, когда за ним работает кто-то другой. Таким образом нам удалось сотворить полноценный сервер терминалов из пользовательской системы. Не думаю, что это вполне легальный способ, но для домашних условий подойдёт оптимально.
Популярные Похожие записи:
22 Responses to Как увеличить количество терминальных сессий в Windows 7 / Как установить терминальный сервер в Windows 7
Неплохо, спасибо) Если я не ошибаюсь, то таким образом может подключиться только один пользоватетель, 2 и более будет нарушением. Если вам понадобится больше подключений, могу порекомендовать Thinstuff или MS Server. Программы аналогичны, разница в цене.
Да это хак и это будет нарушение с точки зрения лицензионного соглашения, но мы в России:) и плюс для тестовых вещей подойдет.
Теперь я сделаю сервер терминалов из windows 7, спасибо
Если вы не организация, то почему бы и не использовать бесплатно терминальный сервер? Вас же не кто не будет проверять и это плюс))
Увы, у нас нельзя этого делать, щас пробуем Thinstuff, часто стал в интернете встерчаться данный продукт, вот и посмотрим. Пока 10 дней прошло пробной версии, работает отлично, не думал, что справится. Достойная замена MS Server, ещё и при такой экономии
Добрый день, потом если нетрудно поделитесь мнением про Thinstuff
Спасибо большое, полезная фича!
Спасибо, все работает
Я то же всегда знал, что отличие серверной от десктоповой в этом случае, только в DLL файлике.
Как ни странно, но из семерки еще до сих пор делают, терминальный сервер, у нас на работе админ такое сделал.
Нужны были тонкие клиенты rdp, обратилась в компанию ШАТЛ, купили, установили, все работает без проблем, сэкономили деньги и время.
Спасибо за статью. Может еще тема поддерживается. Спрошу. Как снять ограничение на количество одновременных сеансов от ОДНОГО пользователя? Запускаю второе подключение, а первое вываливается. Спасибо за статью.
А в логах на контроллере или самом сервере, есть какие либо события?
Спасибо за помощь.
После многих экспериментов с разными образами виндовса 7 x64 (тестировал оригинальные с апдейтами и без них) результат одинаков. Кроме того. Пробовал ДО и ПОСЛЕ патча dll
Вот записи журнала (на сервере)
При входе в сеанс
Событие 4101
Лицензия Windows проверена.
Событие 9003, Desktop Windows Manager
Не удается запустить диспетчер окон рабочего стола, так как составная тема не используется
При выходе из терминала:
Событие 9009 Desktop Windows Manager
Диспетчер окон рабочего стола завершил работу с кодом (0x40010004)
Предупреждение 1530 User profile Service
Система Windows обнаружила, что файл реестра используется другими приложениями или службами. Файл будет сейчас выгружен. Приложения или службы, которые используют файл реестра, могут впоследствии работать неправильно.
В добавок к своему предыдущему комментарию добавлю. Мои подозрения по поводу урезанного функционала win 7 подтвердились. Нашел статью по этой проблематике:
если честно, то реально работает только tsplus. был у нас rds стандартный, отказались. поставили tsplus и работаем без проблем.
у нас 5 пользователей, версия enterprise edition, работаем в веб интерфейсе в 1С, офисный пакет. полет нормальный. сисадмин тихонько посапывает и в ус не дует себе. как то так
Как настроить Terminal Services RemoteApp (удаленные приложения) в Windows 7 Корпоративная? После моей заметки “Как сделать из Windows 7 терминальный сервер?” – это сделать проще простого. Нужно добавить пару ключей в реестр и создать файл для подключения.
1. Правим реестр. Запускаем regedit.exe. И идем в ветку:
В разделе TSAppAllowList создаем новый подраздел Applications. Далее создаем подразделы для программ, которые должны будут запускаться в качестве RemoteApp. Для каждой программы свой подраздел. Для проверки создадим подраздел с названием Notepad. Переходим в него и создаем два строковых параметра Name и Path. Для параметра Name задаем значение notepad.exe, а для Path – путь к папке где лежит приложение, в нашем случае – C:\Windows. (Путь должен быть к папке на компьютере, который будет выступать в роли терминального сервера с Windows 7).
Добавляем приложения следующим образов. В разделе Applications создаем дополнительные разделы для каждой программы. И в этих разделах создаем два строковых параметра Name и Path.
На последок изменим еще один параметр. Переходим в раздел TSAppAllowList. И выставим значение 1 для параметра fDisableAllowList.
С реестром закончили.
2. Создадим файл для подключения к удаленному рабочему столу
Запускаем утилиту Подключением к удаленному рабочему столу через меню Пуск –> Стандартные, либо Win+R, вводим mstsc, Enter.
В открывшемся окне вводим имя ПК, либо IP адрес компьютера с Windows 7 TS RemoteApp. Жмем Сохранить как… И сохраняем в любом месте.
Откроем полученный файл в Notepad++
В файле меняем значение параметра remoteapplicationmode:i:0 на remoteapplicationmode:i:1. После добавим 3 строчки:
Сохраняем файл RemoteApp.rdp и запускаем.
При подключении спросит логин и пароль. Нужно чтобы учетная запись входила в группу Пользователи удаленного рабочего стола. Либо надо быть локальным админом, либо доменным. Если все условия соблюдены, то через пару секунд откроется Notepad.
Пробовал разные программы и даже некоторые игры – работает. Вот только как это применить на практике, я пока не придумал.
01.11.2011 — Метод работает только в Windows 7 SP1 Корпоративная (может еще в Windows 7 Максимальная — не проверял). В Windows 7 SP1 x32 Профессиональная не работает.
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!
Читайте также: