Простой способ открытия сайта наружу
Предположим, ваш IP-адрес равен 192.168.0.49, как в примере выше. Самый простой способ заставить Денвер открывать по адресу
http://192.168.0.49 определенный сайт — это расположить документы сайта в директории:
/home/192.168.0.49/www
Да, имя директории содержит точки! Не забудьте также перезапустить Денвер.
Более того: если ваш провайдер выдал вам не только IP-адрес, но также и связанное с ним доменное имя, то сайт будет сразу же доступен по этому доменному имени. В случае статического IP-адреса домен выдается почти всегда, вам лишь нужно узнать его у провайдера. Например, если ваше доменное имя равно abcd.ints.ru (провайдер Корвет-Телеком НЭКСТ), то сайт будет доступен по адресу
http://abcd.ints.ru.
Другой способ назначения IP-адреса сайту
Если у вас уже имеется виртуальный хост в Денвере и вы не хотите переименовывать его директорию документов, то вы можете назначить сайту свой собственный IP-адрес и сделать его доступным снаружи. Предположим, что ваш хост хранится в директории
/home/mysupersite/www. Чтобы назначить ему IP-адрес 192.168.0.49, необходимо создать файл
/home/mysupersite/.htaccess и добавить в него строчки:
## Файл /home/mysupersite/.htaccess
## Укажите здесь ваш внешний IP-адрес, а не 192.168.0.49!
# dnwr_ip 192.168.0.49
Кстати, вы можете узнать, какие еще существуют директивы, заглянув в файл /home/custom/.htaccess.
Перезапустите Денвер. Проверьте, что по адресу
http://192.168.0.49 (вместо 192.168.0.49, конечно, нужно подставить ваш собственный IP-адрес) открывается ваш сайт
/home/mysupersite/www.
Предупреждение службы безопасности
Напомним еще раз, что Денвер — это не законченный и надежный Web-сервер, это — всего лишь инструмент, позволяющий отлаживать (тестировать) сайты, «не выходя из дома». Любая попытка использовать его в других целях может быть небезопасна.
Вообще, настроить можно все, что угодно, другое дело — нужно ли это. Помните, что открытый для окружающего мира Web-сервер представляет потенциальную уязвимость в защите вашей машины. Например, злоумышленник может проникнуть через не до конца отлаженный скрипт. Т.к. Денвер запускается с правами Администратора (то есть, с максимальными правами в системе), то любой скрипт, даже самый маленький, может делать все, что ему заблагорассудится. Давайте предположим, что вы написали вроде бы безобидный скрипт
test.pl, который делает следующее:
#!/usr/bin/perl -w
use CGI::WebIn;
use CGI::WebOut;
Header("Content-type: text/plain");
open(F, $IN) or die "Could not open\n";
while(<F>) { print }
Программа, казалось бы, просто печатает содержимое файла, указанного в параметре fname. Например,
http://localhost/cgi/test.pl?fname=test.pl напечатает исходный код программы. Однако нетрудно заметить, что вызов open в таком виде небезопасен. Например, зайдя по адресу
/cgi/test.pl?fname=|dеl+/s/q+c:\windows, в программе будет выполнено:
open(F, "|dеl /s/q c:\\windows") or ...
Это приведет к немедленному уничтожению всей директории Windows!
Возможно, вы скажете, что localhost — на то и localhost, чтобы работать лишь с текущей машины. Если вы открыли доступ наружу по инструкции, приведенной выше, то все именно так. Тем не менее, в случае неправильной настройки Apache можно проникнуть на localhost и извне (если сервер открыт). Это делается очень просто:
C:/> telnet server.ru 80
GET /cgi/test.pl?fname=|dеl+/s/q+c:\windows HTTP/1.1
Host: localhost
здесь нужно просто нажать Enter
Вывод: если у вас нет значительного опыта в администрировании серверов, установка Web-сервера, доступного извне, может быть опасной. Это особенно относится к счастливым обладателям выделенных каналов в Интернет. Одно неверное движение, и однажды утром вы проснетесь с только что отформатированным жестким диском (в лучшем случае).