Страница 1 из 1

Корректный запуск Denwer на ОС Windows

СообщениеДобавлено: 07 окт 2011 13:00, Пт
UncleFather
Казалось бы - что такого особенного в установке Denwer. Запустил setup - и все работает.
И действительно, все бы было хорошо, если б мы могли выполнить установку Denwer от имени обычного пользователя. Но, как правило, мы работаем под учеткой администратора либо локального компьютера, либо даже администратора домена.
Соответственно, и Denwer будет запускаться под учетной записью администратора, что крайне нехорошо для обеспечения должной безопасности web-сайта да и всей системы Windows. Так, например, любой, запустивший скрипт под Denwer получит доступ ко всем настройкам и файлам компьютера.
Поэтому, чтобы обеспечить безопасную работу Denwer на ОС Windows, необходимо настроить запуск этого сервиса в автоматическом режиме от имени обычного пользователя.

  1. Прежде всего, необходимо настроить автоматическое монтирование диска, который использует Denwer. Для этого:
    • Убираем из автозагрузки ярлык "Create virtual drive for Denwer", указывающий на файл ...\denwer\Boot.exe
    • Согласно последнему методу Чтобы диск подключался на ранней стадии загрузки Windows из статьи, настраиваем подключение диска Денвера на ранней стадии загрузки.
  2. Создаем на компьютере локальную учетную запись с правами локального пользователя.
  3. В групповых политиках даем этой учетной записи права на "Вход в качестве пакетного задания"
  4. Устанавливаем права на запись и изменение для этой учетной записи на папки и файлы:
    • 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
  5. Устанавливаем права на запись и изменение для этой учетной записи на папки своего сайта, в которые необходимо записывать какие-либо данные, например C:\MyWeb\home\localhost\MySite\Files\Downloads
  6. От имени этой же учетной записи создаем запланированное (назначенное) задание запускающее Denwer при запуске компьютера. То есть в параметрах задания, в поле "Запускать от имени", указываем именно нашу новую учетную запись). В поле "Выполнить" указываем исполняемый файл запуска Denwer: "C:\MyWeb\denwer\Run.exe", "рабочая папка" - "C:\MyWeb\denwer\"
    1.JPG


    "Назначить задание" - "При включении компьютера"
    2.JPG

Перезагружаемся. Статус нашего нового назначенного задания "Работает" будет висеть не долго - всего несколько секунд - пока активно окно запуска 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-хостинге НЕ РАБОТАЕТ!!!, см. ссылку.