Корректный запуск Denwer на ОС Windows
Казалось бы - что такого особенного в установке 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 (а точнее - символьная ссылка на папку) создастся сама и будет сохраняться после перезагрузок.