UncleFather » 07 окт 2011 12:00, Пт
Казалось бы - что такого особенного в установке Denwer. Запустил setup - и все работает.
И действительно, все бы было хорошо, если б мы могли выполнить установку Denwer от имени обычного пользователя. Но, как правило, мы работаем под учеткой администратора либо локального компьютера, либо даже администратора домена.
Соответственно, и Denwer будет запускаться под учетной записью администратора, что крайне нехорошо для обеспечения должной безопасности web-сайта да и всей системы Windows. Так, например, любой, запустивший скрипт под Denwer получит доступ ко всем настройкам и файлам компьютера.
Поэтому, чтобы обеспечить безопасную работу Denwer на ОС Windows, необходимо настроить запуск этого сервиса в автоматическом режиме от имени обычного пользователя.
-
Прежде всего, необходимо настроить автоматическое монтирование диска, который использует Denwer. Для этого:
-
Убираем из автозагрузки ярлык "Create virtual drive for Denwer", указывающий на файл ...\denwer\Boot.exe
-
Согласно последнему методу Чтобы диск подключался на ранней стадии загрузки Windows из статьи, настраиваем подключение диска Денвера на ранней стадии загрузки.
-
Создаем на компьютере локальную учетную запись с правами локального пользователя.
-
В групповых политиках даем этой учетной записи права на "Вход в качестве пакетного задания"
-
Устанавливаем права на запись и изменение для этой учетной записи на папки и файлы:
-
C:\MyWeb\usr\local\apache\bin\
-
C:\MyWeb\usr\local\apache\conf\vhosts.conf
-
C:\MyWeb\usr\local\apache\logs\
-
C:\MyWeb\tmp\
-
C:\MyWeb\denwer\scripts\lib\
-
%SystemRoot%\system32\cmd.exe
-
%SystemRoot%\system32\Drivers\etc\hosts
-
Устанавливаем права на запись и изменение для этой учетной записи на папки своего сайта, в которые необходимо записывать какие-либо данные, например C:\MyWeb\home\localhost\MySite\Files\Downloads
-
От имени этой же учетной записи создаем запланированное (назначенное) задание запускающее Denwer при запуске компьютера. То есть в параметрах задания, в поле "Запускать от имени", указываем именно нашу новую учетную запись). В поле "Выполнить" указываем исполняемый файл запуска Denwer: "C:\MyWeb\denwer\Run.exe", "рабочая папка" - "C:\MyWeb\denwer\"
"Назначить задание" - "При включении компьютера"
Перезагружаемся. Статус нашего нового назначенного задания "Работает" будет висеть не долго - всего несколько секунд - пока активно окно запуска Denwer. Далее - в активных процессах можно будет увидеть два процесса "httpd.exe" запущенных от имени пользователя, созданного в пункте 2. Это означает, что наш сайт работает, и работает от имени обычного пользователя.
Если же процессов "httpd.exe" не появилось среди активных процессов, то нужно смотреть файл ошибок Denwer: C:\MyWeb\tmp\control_error_log.txt
Виртуальный каталог в Denwer.
Сколько ни искал - не нашел возможности создания виртуального каталога в Denwer.
Что такое виртуальный каталог (папка) - это папка, находящаяся на web или ftp сервере, но ссылающаяся на другое место, либо на другой ресурс в сети. То есть для пользователей сайта эта папка находится на web сервере, а реальное же ее местоположение знает только администратор.
Единственным решением для создания чего-то подобного в связке Denwer + Windows, является создание символьной ссылки (junction point) NTFS. Подробности здесь.
Пример:
Для создания "виртуального каталога" VirtFolder в папке своего сайта C:\MyWeb\home\localhost\MySite\Files\, ссылающегося на D:\Users\Folders\Home\Docs\, необходимо выполнить команду:
Код: Выделить всё
linkd C:\MyWeb\home\localhost\MySite\Files\VirtFolder D:\Users\Folders\Home\Docs
Папка VirtFolder (а точнее - символьная ссылка на папку) создастся сама и будет сохраняться после перезагрузок.
PS: Chmod на Windows-хостинге НЕ РАБОТАЕТ!!!, см. ссылку.
Казалось бы - что такого особенного в установке Denwer. Запустил setup - и все работает.
И действительно, все бы было хорошо, если б мы могли выполнить установку Denwer от имени обычного пользователя. Но, как правило, мы работаем под учеткой администратора либо локального компьютера, либо даже администратора домена.
Соответственно, и Denwer будет запускаться под учетной записью администратора, что крайне нехорошо для обеспечения должной безопасности web-сайта да и всей системы Windows. Так, например, любой, запустивший скрипт под Denwer получит доступ ко всем настройкам и файлам компьютера.
Поэтому, чтобы обеспечить безопасную работу Denwer на ОС Windows, необходимо настроить запуск этого сервиса в автоматическом режиме от имени обычного пользователя.
[list=1]
[*] Прежде всего, необходимо настроить автоматическое монтирование диска, который использует Denwer. Для этого: [list][*] Убираем из автозагрузки ярлык "Create virtual drive for Denwer", указывающий на файл ...\denwer\Boot.exe
[*] Согласно последнему методу [b][i]Чтобы диск подключался на ранней стадии загрузки Windows[/i][/b] из [url=http://manaeff.ru/forum/viewtopic.php?f=3&t=669&p=871&hilit=subst#p871]статьи[/url], настраиваем подключение диска Денвера на ранней стадии загрузки.[/list]
[*] Создаем на компьютере локальную учетную запись с правами локального пользователя.
[*] В групповых политиках даем этой учетной записи права на [b]"Вход в качестве пакетного задания"[/b]
[*] Устанавливаем права на запись и изменение для этой учетной записи на папки и файлы:
[list]
[*] [b][i]C:\MyWeb\usr\local\apache\bin\[/i][/b]
[*] [b][i]C:\MyWeb\usr\local\apache\conf\vhosts.conf[/i][/b]
[*] [b][i]C:\MyWeb\usr\local\apache\logs\[/i][/b]
[*] [b][i]C:\MyWeb\tmp\[/i][/b]
[*] [b][i]C:\MyWeb\denwer\scripts\lib\[/i][/b]
[*] [b][i]%SystemRoot%\system32\cmd.exe[/i][/b]
[*] [b][i]%SystemRoot%\system32\Drivers\etc\hosts[/i][/b][/list]
[*] Устанавливаем права на запись и изменение для этой учетной записи на папки своего сайта, в которые необходимо записывать какие-либо данные, например [b][i]C:\MyWeb\home\localhost\MySite\Files\Downloads[/i][/b]
[*] От имени этой же учетной записи создаем запланированное (назначенное) задание запускающее Denwer при запуске компьютера. То есть в параметрах задания, в поле "Запускать от имени", указываем именно нашу новую учетную запись). В поле "Выполнить" указываем исполняемый файл запуска Denwer: "[b][i]C:\MyWeb\denwer\Run.exe[/i][/b]", "рабочая папка" - "[b][i]C:\MyWeb\denwer\[/i][/b]"
[attachment=1]1.JPG[/attachment]
"Назначить задание" - "[b][i]При включении компьютера[/i][/b]"
[attachment=0]2.JPG[/attachment][/list]
Перезагружаемся. Статус нашего нового назначенного задания "Работает" будет висеть не долго - всего несколько секунд - пока активно окно запуска Denwer. Далее - в активных процессах можно будет увидеть два процесса "httpd.exe" запущенных от имени пользователя, созданного в пункте 2. Это означает, что наш [b]сайт работает[/b], и работает [b]от имени обычного пользователя[/b].
Если же процессов "httpd.exe" не появилось среди активных процессов, то нужно смотреть [size=150]файл ошибок Denwer[/size]: [b][i]C:\MyWeb\tmp\control_error_log.txt[/i][/b]
[size=150][b]Виртуальный каталог в Denwer.[/b][/size]
Сколько ни искал - не нашел возможности создания виртуального каталога в Denwer.
Что такое виртуальный каталог (папка) - это папка, находящаяся на web или ftp сервере, но ссылающаяся на другое место, либо на другой ресурс в сети. То есть для пользователей сайта эта папка находится на web сервере, а реальное же ее местоположение знает только администратор.
Единственным решением для создания чего-то подобного в связке Denwer + Windows, является создание символьной ссылки (junction point) NTFS. Подробности [url=http://manaeff.ru/forum/viewtopic.php?f=4&t=827&p=1073&hilit=junction#p1073]здесь[/url].
[b]Пример:[/b]
Для создания "виртуального каталога" [b][i]VirtFolder[/i][/b] в папке своего сайта [b][i]C:\MyWeb\home\localhost\MySite\Files\[/i][/b], ссылающегося на [b][i]D:\Users\Folders\Home\Docs\[/i][/b], необходимо выполнить команду:
[code]linkd C:\MyWeb\home\localhost\MySite\Files\VirtFolder D:\Users\Folders\Home\Docs[/code]
Папка [b][i]VirtFolder[/i][/b] (а точнее - символьная ссылка на папку) создастся сама и будет сохраняться после перезагрузок.
[color=#FF0000][size=150][b]PS: [url=http://ru.wikipedia.org/wiki/Chmod]Chmod[/url] на Windows-хостинге НЕ РАБОТАЕТ!!![/b][/size][/color], см. [url=http://manaeff.ru/forum/viewtopic.php?f=10&t=784&p=1027#p1027]ссылку[/url].