Эта тема на forum.dklab.ru


Vigo Tolubizer: Public_html вместо www. Так можно?
Мой хостинг содержит папки public_html и cgi-bin вместо www и cgi. Возможно ли в Денвере www заменить на public_html? И будет ли он работать с переименоваными папками?
Дмитрий Котеров:
Можете просто создать еще один шаблон виртуального хоста, который бы соответствовал директориям в /home, внутри которых есть поддиректория htdocs.


# DocumentRootMatch "/home/(?!cgi-)(.*)^1/htdocs"

Vigo Tolubizer:
Не понял. Поподробнее немного объясните. Я ж не спец, всяких net-сленгов не понимаю.
DmitriyPopov:
Vigo Tolubizer:
Откройте файл /usr/local/apache/conf/httpd.conf И почитайте его конец
Anton Chubchenko:
Намедни поставил денвер, весьма удобно, спасибо за пакет.

тем не менее, хотелось бы прописать для нескольких хостов директорию с документами отличную от www.
Дописал для эксперимента # DocumentRootMatch "/home/(?!cgi-)(.*)^1/html" однако апач по-прежнему желает видеть www в качесвте директории с документами, а директорию htdocs видеть не хочет. комментарии в httpd.conf читал, однако не проникся.. :-\
DmitriyPopov:
Anton Chubchenko:
Нужно не добавить DocumentRootMatch, а прописать еще один шаблон виртуального хоста
Aist: Как это сделать?
Ув. господа администраторы, модераторы и прочие грамотные люди!

ПОМОГИТЕ малограмотному юзеру!

имею хостинговый аккаунт, в котором путь для документов /home/MyDomainName/public_html, а CGI-скрипты ложить нужно в /home/MyDomainName/public_html/cgi-bin - в Денвере хочу так-же, но только чтобы всё было правильно и по-умному (т.к. доменов много, и для каждого писать руками параметры виртуального хоста утомительно


К сожалению что-то никак я не могу понять, как "прописать еще один шаблон виртуального хоста"...

...Несколько раз перечитал ВСЕ коментарии в httpd.conf - прозрение не наступило...
Пробовал "методом научного тыка" - результат тот-же...
Читал в очередной раз умную книжку по Апачу (неоднократно прочитанную) - само-собой - нет там ничего и отдалённо-напоминоющего...
(для справки: я знаю как создаются виртуал-хосты в Апаче под управлением юниксовых систем - делал это неоднокрытно)

Как это сделать??? Что для этого нужно???

Всем безмерно благодарен за ответ.
Дмитрий Котеров:
[*:9ec3479fb1]Копируете шаблон виртуального хоста в httpd.conf (он в комментариях, так и должно быть) еще раз в конец.
[*:9ec3479fb1]Правите там DocumentRootMatch и ScriptAlias в соответствии с тем, что там написано.
[*:9ec3479fb1]Если не получается, переставляете эти два шаблона местами (я не помню, важен порядок или нет).

Что именно не получается?
Aist: Ничего не получается... :(
Пробовал, пробовал... Отслеживал изменения в vhosts.conf после внесения каждой правки...
Сплошной бред... Ничего не получается...

А кто-нибудь уже это сделал???

Если у кого-то получилось - очень прошу дать код Вашего дополнительного шаблона в таком виде:
#НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА.
#<VirtualHost *:*>
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
#
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)"
#
# DocumentRoot "$&"
#
# ServerName "%&"
#
# ServerAlias "%&/-www" "%&/-www/www"
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#
# ErrorLog "$^1/error.log"
#</VirtualHost>
#КОНЕЦ ШАБЛОНА.

Только это оригинал, а мне-бы тот, который у Вас получился для переназначения DocumentRoot...

Цель такая:
Документы здесь: /home/MyDomainName/public_html
CGI-скрипты здесь: /home/MyDomainName/public_html/cgi-bin

...у Вас может быть немного по другому, но это уже не суть-важно - поменяю сам... Просто никак не могу понять значения вот этих всех "$^1&?#".....

Уважаемая администрация! Если вдруг у Вас окажется свободная минутка - очень прошу оказать помощь в требуемом виде. Заранее благодарю.
Дмитрий Котеров:

#НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА.
#<VirtualHost *:*>
# DocumentRootMatch "/home/(?!cgi-)(.*)^1"
#
# DocumentRoot "$^1/public_html"
#
# ServerName "%^1"
#
# ServerAlias "%^1" "%&/-www/www"
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/public_html/cgi-bin/"
#
# ErrorLog "$^1/error.log"
#</VirtualHost>
#КОНЕЦ ШАБЛОНА

Только в этом случае перекроются стандартные домены (даже те, у которых нет public_html). В теории хотелось бы написать: DocumentRootMatch "/home/(?!cgi-)(.*)^1/public_html", но на практике так, к сожалению, не выходит — «public_html» содержит подчерк, недопустимый в имени домена.

Ладно, позже разберусь с этим.
Vitj0k:
Привет!
Предлагаю такой вариант решения для случая
Документы здесь: /home/MyDomainName/public_html
CGI-скрипты здесь: /home/MyDomainName/public_html/cgi-bin

Необходимо добавить еще один шаблон после основного. А именно: #НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА.
#<VirtualHost *:*>
# DocumentRootMatch "/home/(?!cgi-)(.*)/(public_html)^1"
#
# DocumentRoot "$&"
#
# ServerName "%&/-public_html/www"
#
# ServerAlias "%&/-public_html" "%&/-public_html/www"
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#
# ErrorLog "$^1/../error.log"
#</VirtualHost>
#КОНЕЦ ШАБЛОНА
После этого обязательно нужно изменить строку основного шаблона
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
на
#DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|public_html$|cgi-)(.*)"
Кроме того в директории /home/MyDomainName/ не должно быть папки www иначе она унаследует DocumentRoot и ScriptAlias.
Error.log будет создан в /home/MyDomainName/
Дмитрий Котеров:
В новой версии (пока еще не вышла) также можно будет не делать отельный шаблон, а просто добавить в существующий команду:

# DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1"

Напоминаю, что имя домена составляется из того, что заключено в скобки (т.е. public_html в этот разряд не попадает), а ^1 помечает часть пути, на которую потом можно ссылаться, например:

# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"


В текущей версии имеется ошибка, так что такой маневр не срабатывает. В новой все будет нормально. На всякий случай прикладываю сюда пропатченный файл Z:\etc\scripts\_lib\VhostTemplate.pm с исправленной ошибкой.
Vitj0k:
Я скачал и заменил пропатченный файл. Добавив команду # DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1", проверил на работоспособность. Результат положительный. Хотелось бы отметить, что без замены строки

# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)" на#DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|public_html$|cgi-)(.*)"
эфекта не будет.

Кроме того, задав поддиректориям public_html соответствие шаблона, добавив строку # DocumentRootMatch "/home/(?!cgi-)(.*)/public_html/(?!cgi$|cgi-)(.*)^1", папка public_html перестает быть DocumentRoot. То есть больше не прописывается как хост. А хотелось бы. Многие провайдеры и в частности мой размещают субдомены именно в этой директории. Структура в таком случае принимает вид:

Документы домена здесь: /home/MyDomainName/public_html
CGI-скрипты домена здесь: /home/MyDomainName/public_html/cgi-bin
Документы субдомена здесь: /home/MyDomainName/public_html/subdomain
CGI-скрипты субдомена здесь: /home/MyDomainName/public_html/subdomain/cgi-bin

Заранее спасибо, если подскажите решение.
Дмитрий Котеров:
эфекта не будет
Будет, но только надо вставить эту директиву первой в списке. Они по порядку просматриваются.

папка public_html перестает быть DocumentRoot
И правильно перестает — Вы как написали, так она и делает. Надо в ней создать директорию www, вот она-то и будет директорией документов.


Документы домена здесь: /home/MyDomainName/public_html
Документы субдомена здесь: /home/MyDomainName/public_html/subdomain

Вы точно уверены, что схема такая? Ведь, зайдя на http://MyDomainName/, я увижу папку subdomain, чего быть не должно: это же поддомен. То есть, ее содержимое видно и как http://subdomain.MyDomainName, и как http://MyDomainName/subdomain/ — а это неправильно (представьте, что подумают скрипты, которые там лежат).

Вообще, в Денвере стоит специальное ограничение на этот счет: директория документов одного хоста не должна выглядеть, как обычная поддиректория другого. (Т.е. то, что я описал в предыдущем абзаце.)
Vitj0k:
папка public_html перестает быть DocumentRoot
И правильно перестает — Вы как написали, так она и делает. Надо в ней создать директорию www, вот она-то и будет директорией документов. А директория скриптов в таком случае какой будет?


Документы домена здесь: /home/MyDomainName/public_html
Документы субдомена здесь: /home/MyDomainName/public_html/subdomain

Вы точно уверены, что схема такая? Ведь, зайдя на http://MyDomainName/, я увижу папку subdomain, чего быть не должно: это же поддомен. То есть, ее содержимое видно и как http://subdomain.MyDomainName, и как http://MyDomainName/subdomain/ — а это неправильно (представьте, что подумают скрипты, которые там лежат).

Вообще, в Денвере стоит специальное ограничение на этот счет: директория документов одного хоста не должна выглядеть, как обычная поддиректория другого. (Т.е. то, что я описал в предыдущем абзаце.)
Да, я точно уверен. Хотя Вы тоже правы, что это ошибочно, субдомен должен быть независим от папки. Но что поделать, такой хостинг...
Насчет скриптов, то они располагаются для поддомена в папке /home/MyDomainName/public_html/subdomain/cgi-bin. И их http://MyDomainName/subdomain/script.pl не запустить, так что вроде не должно возникать конфликтов.

Если вы пишете, что в Денвере стоит на этот случай специальное ограничение, то сложно ли его отменить? Возможно ли вообще?
Дмитрий Котеров:
Насчет скриптов, то они располагаются для поддомена в папке /home/MyDomainName/public_html/subdomain/cgi-bin. И их http://MyDomainName/subdomain/script.pl не запустить, так что вроде не должно возникать конфликтов.
http://MyDomainName/subdomain/cgi-bin/script.pl
http://subdomain.MyDomainName/cgi-bin/script.pl
Два разных пути к одному скрипту. И при этом скрипту будет передан разный DOCUMENT_ROOT, так что он наверняка перестанет работать в одном из случаев.

Насчет ограничения. Отменить, конечно, возможно. Для этого просто уберите следующий фрагмент из библиотеки:

foreach my $h2 (@vhosts) {
next if $h1==$h2 || $h1->{deleted};
$h2->{deleted}=1 if $h1->{path} eq $h2->{path} || index($h1->{path},"$h2->{path}/")==0;
# warn "$h1->{path} - $h2->{path} - $h2->{deleted}\n";
}

Вам тогда нужно будет 2 DocumentRootMatch-а добавить — один для главного домена, и один для поддоменов. Но только это все равно идеологически неверно.

Данный фрагмент делает вот что: если нашлись 2 пути к директориям документов, и при этом один путь является родителем другого, то первый путь (родительский) удаляется. То есть, как я уже писал, директории документов сервера не могут отображаться в виде обычных директорий какого-то другого сервера (это, кстати, еще и по соображениям безопасности).

Что за хостинг-то у Вас, кстати?
Vitj0k:
Насчет конфликта скриптов я понял, спасибо. Нужно обязательно предъявить это хостеру как аргумент.

Фрагмент удалить, как я понял, из файла VhostTemplate.pm? Это действительно было бы решением для данного случая, пусть даже и не корректного.

Хостинг у меня на www.dreamsee.ru, ребята там только раскручиваются, но зато цены неимоверно низкие и хороший суппорт. Хотя в их профессионализме я уже сомневаюсь...
bæv:
Насчет конфликта скриптов я понял, спасибо. Нужно обязательно предъявить это хостеру как аргумент.

На хостинге конфликта может и не быть -- зависит от того как субдомены прописаны.
Vitj0k:
Насчет конфликта скриптов я понял, спасибо. Нужно обязательно предъявить это хостеру как аргумент.

На хостинге конфликта может и не быть -- зависит от того как субдомены прописаны.

А как же случай с DOCUMENT_ROOT, если это будут два разных адреса? Хотя аргумент насчет безопастности более весомый, любой хостинг этого боится.
Кто взялся бы кратко в общих чертах объяснить просчет в безопастности для этого случая?
Дмитрий Котеров:
А что тут объяснять? В одном домене у скрипта может быть атрибут ExecCGI (что запрещает прочтение его исходного кода и форсирует выполнение), а во втором — его не быть. И можно смотреть исходники. Так, кстати, и будет, если cgi-директории прописаны при помощи директив ScriptAlias.
Vitj0k:
Хм..простите, но что-то я не понимаю что Вы имеете ввиду под "одним доменом" и "вторым", ведь по сути если речь идет о

http://MyDomainName/subdomain/cgi-bin/script.pl
http://subdomain.MyDomainName/cgi-bin/script.pl

то это один и тот же скрипт и у них общий атрибут.
Да, кстати, вот выход из ситуации. Можно прописать редирект http://MyDomainName/subdomain --> http://subdomain.MyDomainName тогда по идее запросы на папку а не на субдомен не будут проходить.
Дмитрий Котеров:
то это один и тот же скрипт и у них общий атрибут
Ничего подобного. Если в настройках виртуального хоста сказано

ScriptAlias /cgi-bin/ /home/MyDomainName/subdomain/cgi-bin/

то по второму адресу скрипт будет запускаться, а по первому — просто показывать содержимое.
compumaster: вместо www htdocs с сохранением dns
Уважаемый администратор! С вниманием прочитал все написанное и не только здесь! У меня такая проблема:

хочу чтобы папка с документами называлась htdocs а имена сайтов оставалить www.site.ru, а не htdocs.site.ru. Напишите, пожалуйста, как это сделать. Потому что читать по кускам советы -> не разбираюсь. Напишите как что сделать поэтапно. И где.
Дмитрий Котеров:
В новой версии Денвера уже по умолчанию поддерживается масса разных способов именования хостов. В частности, public_html. Откройте httpd.conf, пролистайте его вниз до конца и посмотрите, как там сделано для public_html. Затем по аналогии сделайте точно то же самое для htdocs.
Anonymous:
Здравствуйте.
Корневая сайта у хостера расположена таким образом:
(домен типа domain.bip.ru)
/home/bip/d/o/m/domain/public_html
/home/bip/d/o/m/domain/public_html/cgi-bin/
Нужно, чтобы нормально работал не только данный сайт в Денвере, но также и другие, у которых директории "/home/domain.ru/www", без регулярных ручных правок каких-либо конфигов или hosts`ов.
Пробовал править /etc/scripts/_lib/ParseHosts.pm, написал $dom{'domain.bip.ru'}=$dom{'www.domain.bip.ru'}='127.0.0.1'; Затем прописал виртуальный хост на данный сайт в httpd.conf таким образом:
<VirtualHost 127.0.0.1>
ServerAdmin webmaster@domain.ru
DocumentRoot "z:/home/bip/d/o/m/domain/public_html"
ScriptAlias /cgi/ "z:/home/bip/d/o/m/domain/public_html/cgi-bin/"
ServerName domain.bip.ru
ErrorLog /home/bip/d/o/m/domain/error.log
CustomLog /home/bip/d/o/m/domain/access.log common
</VirtualHost>

Получилось: при запуске любого домена грузится данный сайт.
Пробовал создать .htaccess, не создается, по ходу дела мешает точка в начале имени файла, все время требует ввести имя файла.
Банальный вопрос: что делать?
Дмитрий Котеров:
Прежде, чем править скрипты, следует попытаться разобраться с конфигами. Вот Ваш случай:

# DocumentRootMatch "/home/(bip)/./././(.*)^1/public_html"

Anonymous:
Прежде, чем править скрипты, следует попытаться разобраться с конфигами. Вот Ваш случай:

# DocumentRootMatch "/home/(bip)/./././(.*)^1/public_html"

Таким образом, мой сайт будет находиться по шаблону? А каким образом он будет вызываться? http://domainbip ?
Дмитрий Котеров:
Каким образом Вы в первом постинге запрашивали, таким и будет. Давно бы уже попробовали. Кстати, можете вместо bip написать даже .* — все равно на реальных сайтах маловероятна ситуация, что будут подряд 3 вложенные директории с именем из одного символа (а тем более — заканчивающиеся на public_html). Соответственно, конфликтов с другими схемами путей быть не должно.

Только данное правило надо ставить в самое начало, естественно, перед другими.
Anonymous:
Сделал. Теперь сайт откликается на domain.bip :( А надо domain.bip.ru
Я перепробовал методом научного тыка разные варианты... Ну не получается у меня домен третьего уровня сделать, ну, в смысле, чтоб сайт на него откликался.
Я тут подумал..
А можно так сделать:
Удаляем нафиг шаблон (и все что относится к разделу virtual hosts), прописываем ручками каждый виртуальный хост на каждый сайт, присваеваем ему уникальный номер (127.0.0.2, 127.0.0.3 ...). Потом каким-либо образом модифицируем скрипт пакета так, чтобы hosts не создавался автоматически после сканирования home, а чтобы можно былобы просто написать список ip - hostname.
При запуске сервера апач работает со статическими данными, записанными нами, а в hosts прописывается тот список ip - hostname, который мы до этого создали. При завершении работы сервера файл hosts очищается.
Можно ли так сделать?
Дмитрий Котеров:
Что ж Вы все так хотите скрипт модифицировать... Ну добавьте свой кастомный сайт в виде отдельного блока VirtualHost, перед шаблоном, да и все дела.
Дмитрий Котеров:
А можете также просто скопировать имеющийся шаблон в еще один (чтобы их было 2), и в последнем поставить нужный Вам DocumentRootMatch и изменить ServerAlias так:

# ServerAlias "%&.ru/-www" "%&.ru/-www/www"
Anonymous:
А как сделать так чтобы директории автоматически
создаваемые скриптом были доступны как домены? например скрипт создаёт
директории domen.ru/sub1 и domen.ru/sub2, а они доступны как
sub1.domen.ru и sub2.domen.ru
Дмитрий Котеров:
Так и будет. Только надо Денвер перезапускать, чтобы изменения вступили в силу.
невидимка:
если там хочется человеку, пусть в папку /home/domain/public_html/cgi-bin/
Добавит .htaccess, который разрешает исполнение CGI
Дмитрий Котеров:
А именно,

Options +ExecCGI
Дмитрий К.:
На моём хостинге папки с поддоменами распологаются в public_html. И документы самого домена лежат тоже в public_html - прямо в корне.
Как можно подправить Денвер, чтобы всё работало так же? Там наверное возникнет проблема с тем, что все папки, расположенные в public_html будут считаться поддоменами?
Это у всех хостингов так, или только мой отличился?
vepmasha:
Поставила coldfusion c apache от Денвера.
Так cfm-скрипты откликаются по адресу http://localhost/CFIDE (лежат они в директории C:\CFusionMX\wwwroot\CFIDE\),
а html-файлы (http://localhost/CFIDE/index.htm), ест-но, не срабатывают.
Как прописать 2-й шаблон ВИРТУАЛЬНОГО ХОСТА?
Помогите, пожалуйста точным примером - второй день разбираюсь...
Ser_VIRUS:
Уважаемая Администрация, у меня проблема немного сложнее, на хосте у меня абсолютный пусть такой:
/usr/home/neo/www/www.mysite.com как мне сделать на локалке такойже ?

Сорри, это я незалогиненый писал.
Ant:
В файле httpd.conf есть хорошие примеры с описанием.
Ser_VIRUS:
В файле httpd.conf есть хорошие примеры с описанием.
Да я дома вчера 2 часа времени потратил, что бы чего либо добиться, прошу вас, пожалуйста, напишите строчку, какую мне надо найти и на что заменить, что бы абсолютный пусть был /usr/home/neo/www/www.mysite.com Пожалуйста, мне очень надо, я действительно несмог сам это сделать, я не разбираюсь в жаргонах !@$#@$#. Буду очень вам благодарен.
Maus:
Ser_VIRUS
Простите, а зачем Вам такой путь? Возможно ,есть другой путь решения Вашей проблемы?
Ant:
Если вы хотите именно путь
/usr/home/neo/www/www.mysite.com
то вам лучше достать из файла vhosts.conf уже готовый блок для вашего сайта, скопировать его в httpd.conf сразу после
# Если вы вручную хотите создать виртуальный хост со специфическими
# настройками, то сделайте это сразу же после данного комментария.
# Не помещайте "рукодельные" хосты в конец файла, иначе они не будут
# доступны!
и изменить

DocumentRoot "Z:/home/_ant/www"
ServerName "_ant"
ServerAlias "_ant" "www._ant"
ScriptAlias /cgi/ "/home/_ant/cgi/"
ScriptAlias /cgi-bin/ "/home/_ant/cgi-bin/"
ErrorLog "/home/_ant/error.log"

на ваши пути.

Не забудьте перезапустить Денвер после этого.
Ser_VIRUS:
Ser_VIRUS
Простите, а зачем Вам такой путь? Возможно ,есть другой путь решения Вашей проблемы?
Потому, что у меня на хосте такой путь и очень трудно на локалки с одним путем сайт делать, а при заливке на хост изменять каждый раз путь.
Ser_VIRUS:
Если вы хотите именно путь
/usr/home/neo/www/www.mysite.com
то вам лучше достать из файла vhosts.conf уже готовый блок для вашего сайта
Где мне его взять этот готовый блок ?


изменить

DocumentRoot "Z:/home/_ant/www"
ServerName "_ant"
ServerAlias "_ant" "www._ant"
ScriptAlias /cgi/ "/home/_ant/cgi/"
ScriptAlias /cgi-bin/ "/home/_ant/cgi-bin/"
ErrorLog "/home/_ant/error.log"

на ваши пути.
Что такое _ant ?
Ant:
Ser_VIRUS, слушайте, вы хоть сами-то начните думать и читать, что я уже написал.
Ser_VIRUS:
Ser_VIRUS, слушайте, вы хоть сами-то начните думать и читать, что я уже написал.
Да просто у меня уже голова разрываеться :) Уже кипит там внутри все, ок, а где мне готовый блок для мого сайта взять ?
Ant:
Уже кипит там внутри все, ок, а где мне готовый блок для мого сайта взять
Говорю же: в файле vhosts.conf. Вы внимательно прочитайте то, что я уже писал.
Maus:
Ser_VIRUS
Еще раз:
1) заводите в Денвре новый виртуальный хост, любой // Поправка: лучше не заводите. test1.ru не удалили? Нам его хватит...
2) создаете папку z:/usr/home/neo/www/www.mysite.com , кладете в неё свой сайт.
3) Запускаете Денвер.
4) Открываете файл /usr/local/apache/conf/vhosts.conf или /usr/local/apache2/conf/vhosts.conf -смотря какой у Вас Апач в Денвере.
5) Находите там секцию, соответсТвующую вирт.хосту, созданному на шаге 1. Вид секции указал Ant выше . Копируете секцию, вставлете туда, куда указал Ant . Файловые пути (они начинаются на /home или Z:/home) исправляете на свой путь (указан в шаге 2). ServerName и ServerAlias исправляете на Ваш хост (соответственно, "server.com" и "server.com" "www.server.com")
6) Останавливаете Денвер.
7) Сохраняете файл httpd.conf - Вы в него свою секцию вставляли.
8) Запускаете Денвер. Проверяете, что все работает.


//странно, зачем я всё это пишу? Кто-нить может мне объяснить?
Ser_VIRUS:
Я вроде все понял, только голова ничего не поняла. я скопирова страницу, приду домой, жена мне сделает массаж, расслабит меня, а после я займусь этим всем, бо я счас лопну. спасибо :) Сегодня вечером буду делать :)
Ant:
//странно, зачем я всё это пишу? Кто-нить может мне объяснить?
Вот и я об этом подумал, даже ещё когда не прочитал эту надпись. Как тут у Илья в подписи написано, простой учитель показывает истину, хороший учитель учит её находить. (-:
Ser_VIRUS:
Ребята, вы будете смеяться, не работает, сделал все со свежими мозгами, прочитал дома все все все и сделал все как вы сказали, запускаю денвер, гружу страницу а выдает: Невоможно отобразить страницу. Но там где надо файл error.log создает.
Maus:
Ser_VIRUS
отлаживать надо....
Ant:
Ветка выделена в отдельную тему «Оффтоп.»,
расположенную в форуме Мусоропровод (05 Января 2006, 17:14).
SpiderM: Как разместить сайт не на системном диске?
Установил Денвер. Очень удобно, большое спасибо. Все работает.
Однако. Денвер разместился на системном диске C, а все мои cgi-программки и формы HTML расположены на другом диске. Перемещать их на диск C не хочу, поскольку все наработанное за годы можно легко потерять при очередном глюке системы.
Пробовал поменять DocumentRoot "/home" -> DocumentRoot "D:\A\home" но не проходит. Что странно - если даже вообще закомментировать эту строку, то localhost продолжает работать по-прежнему как ни в чем ни бывало. Прежде имел небольшой опыт работы с localhost, там такой прием проходил.
Как поступить?
SpiderM:
Все, разобрался. В конец httpd.conf вставляем виртуальный хост с такими параметрами

Listen 127.0.0.1:80
NameVirtualHost *:*
<VirtualHost *:*>
DocumentRoot "D:/A/home/localhost/www"
ServerName "localhost"
ServerAlias "localhost" "www.localhost"
ScriptAlias /cgi/ "/home/localhost/cgi/"
ScriptAlias /cgi-bin/ "/home/localhost/cgi-bin/"
ErrorLog "/home/localhost/error.log"
</VirtualHost>

А в www уже можно пихать все что угодно. Ну, блин... Нормально. Пойдем дальше.
Ant:
можно ещё ссылками обойтись...
cann2:
Вопрос по той же теме. Все время пользовался для отладки Денвером и никаких проблем не возникало с хостерами. Сейчас сайт один замутил на CGI-скриптах, а на хостинге /pablic_html/cgi-bin, а у меня скрипты не работают там, а на Денвере работают. Вот я и думаю - может быть в конфигурационном файле скрипта пути неверны указаны. Администрация хостинга головушку парит второй день - отписками всякими - типа права доступа и все такое, а лог ошибок пишет вот такое: Premature end of script headers: /home/.../public_html/cgi-bin/member.cgi. Может кто подскажет, как с этим бороться?
Ant:
Premature end of script headers: /home/.../public_html/cgi-bin/member.cgi. Может кто подскажет, как с этим бороться?
Отладкой. Возможно у вас в скрипте ошибка. Там с заголовками что-то не то. Вы попробуйте минимальный код вписать в скрипт и запустить его на сервере и на Денвере. Если пойдёт и там и там - добавляйте код и проверяйте работу до того момента, как перестанет работать.
Anonymous:
Спасибо. Администрация хостинга все-таки изменила права доступа - там было 644, а требовалось 755, хотя файловый менеджер прописывал 755. Ничего не понимаю, но хотелось бы разобраться: права доступа может изменить только администратор сервера или я могу это сделать сам? Если да, то как? Простите за такое ламерство - книжки читать некогда - осваиваю все на практике. Заранее благодарен.
Дмитрий Бойков:
Доброго времени суток

Четвертый час читаю эту ветку, комментарии из httpd.conf... Стыдно. Начинаю ощущать себя деревом... :(
Первичная цель: Настроить Денвер так, что бы для httр://dоmain.ru/ видеть путь /home/domainru/public_html/ (Обратите внимание! В пути .../domainru/... без точки)

А решерка перед DocumentRootMatch это комментарий или такой синтаксис?

Пробовал так: В корневом каталоге лежит файл index.php, который ищет себя по полному пути<?
print "<pre>";
print_r($_SERVER);
print "</pre>";

print file_exists("/home/domainru/public_html/index.php") ? "<h1>ДА!</h1>" : "<h1>НЕТ!</h1>";
?>

Танцы с бубнами првели к тому, что вроде заработало как надо (реальный путь был Z:\home\domainru\www), но при этом все осталные сайты в Денвере перестали грузиться... По-этому, честно говоря, хочется видеть какое-то более элегантное решение...

Если невозможно сделать разные правилля для разных проектов в Денвере, то вероятно можно как то запускать его с разлмчными настройками? (каким-нибудь параметром?)

Вторичная цель: Настроить Денвер так, что бы по httр://dоmain.ru/ открывать локальный сайт, а по httр://www.dоmain.ru/ - реальный (на хосте)
Надоело каждый раз выключать Денвера, когда надо в реальный сайт глянуть... Из-за этого стал использовать имена dоmain.loc и напопролся на конфликты при миграции...

Для справки: Такая конфигурация используется у хостера АРБАТЕК (не реклама) кстати в cPanel дурацким расположением корневого каталога субдомена в каталоге основного домена дело не ограничивается... Если я хочу в рамках этого же дикового пространства организовать еще один домен, то мне придется так же в каталоге основного домена создать папку-"корень" нового сайта, а потом прописать алиасы...

P.S.: Может есть необходимость создать раздел для публикации готовых решений под различные хостиги?
Дмитрий Бойков:
Все! Я сдаюсь! У меня ничего не получилось :(
Пытался найти хоть какую-то информацию по DocumentRootMatch или httpd.conf но все ссылки ведут либо на этот форум, либо на статью с русским переводом httpd.conf.

В итоге для меня так и осталось не ясным:
1. Почему иногда Дмитрий советует оставлять блок настройки витруального хоста в httpd.conf закомментированным? На что это влияет?
2. Как же все таки работает DocumentRootMatch (с синтаксисом регулярных выражений я знаком, однако все равно немогу понять DocumentRootMatch. Примеров мало.)

В итоге сделать выше описанную схему так и не удалось.

P.S. Если Вам так не хочется писать очевидные для Вас вещи, то не могли бы Вы хотя бы дать ссылки на материал для изучения? Спасибо.
Дмитрий Бойков:
Господа! Помогите настроить Денвер так, что бы для httр://dоmain.ru/ видеть путь /home/domainru/public_html/ (Обратите внимание! В пути .../domainru/... без точки). Ну не справиться мне без вашей помощи!

Или это не реализуемо? Неверю!
Maus:
Дмитрий Бойков
Дмитрий, Вы хотите, чтобы вместо одной строчки в динамическую часть конфига подставлялась другая("domainru"!="domain.ru"). Попробуйте формально описать правило, по которому должна проходить такая подстановка (например, что делать в случае /home/domaincom/public_html/ )
Ant:
Дмитрий Бойков, если у вас только один такой домен, вам проще его прописать до шаблонов. И все дела.
Anonymous:
Maus
Спасибо, что откликнулись на мою просьбу. Да действительно "domainru"!="domain.ru" но именно так формируется путь у моего хостера. Уж не знаю зачем они убирают из пути точку. Говорят, что CPanel по-другому не работает.

Вероятно можно использовать какой-нибудь спецсимвол или спецконструкцию?

Пример 1 (спецсимвол):
"Z:\home\domain@com\public_html\"

Пример 2 (спецконструкции):
"Z:\home\domain(.)com\public_html\" или "Z:\home\domain[.]com\public_html\"

Ну а результатом должно стать, что URL должен быть "httр://dоmain.com/", а путь "/home/domaincom/public_html/"
Maus:
Гость
никакой спецсимвол использовать нельзя, т.к. виртуальные хосты строятся на основании файловых путей, а не наоборот. Если совет Ant-а Вам не подходит (то есть Вам нужно не один-два-три домена, а неопределённое количество), то думайте, как формализовать поиск этого окончания (например, можно ограничиться доменом ru).
Дмитрий Бойков:
Спасибо. Ключевая фраза "виртуальные хосты строятся на основании файловых путей, а не наоборот" помогла мне разобраться.

Итак: Создал папку Z:\home\domainru\public_html
После запуска сервера из файла Z:\usr\local\apache\conf\vhosts.conf скоприровал блок

# Host /home/domainru/public_html (1):
Listen 127.0.0.1:80
NameVirtualHost *:*
<VirtualHost *:*>
DocumentRoot "/home/domainru/public_html"
ServerName "domainru"
ServerAlias "domainru" "www.domainru"
ScriptAlias /cgi/ "/home/domainru/public_html/cgi/"
ScriptAlias /cgi-bin/ "/home/domainru/public_html/cgi-bin/"
ErrorLog "/home/domainru/public_html/error.log"
</VirtualHost>

и отредактировав его вставил в файл Z:\usr\local\apache\conf\httpd.conf после комментария "Если вы вручную хотите создать виртуальный хост со специфическими настройками, то сделайте это сразу же после данного комментария. Не помещайте "рукодельные" хосты в конец файла, иначе они не будут доступны!"

# Host /home/domainru/public_html (1):
Listen 127.0.0.1:80
NameVirtualHost *:*
<VirtualHost *:*>
DocumentRoot "/home/domainru/public_html"
ServerName "domain.ru"
ServerAlias "domain.ru" "www.domain.ru"
ScriptAlias /cgi/ "/home/domainru/public_html/cgi/"
ScriptAlias /cgi-bin/ "/home/domainru/public_html/cgi-bin/"
ErrorLog "/home/domainru/public_html/error.log"
</VirtualHost>


В файл C:\WINDOWS\system32\drivers\etc\hosts добавил строчку
127.0.0.1 domain.ru

Осталось только 2 маленьких вопроса:
1. Можно ли что-то приписать чтоб не править файл hosts вручную?
2. Что нужно чтобы файл ErrorLog создавался не в /home/domainru/public_html/error.log, а в /home/domainru/error.log (у меня при изменении пути файл error.log создается в двух местах сразу)
Maus:
насчет ErrorLog - проверьте: кажется, автомат всё равно генерирует блок для Вашего хоста - просто когда приходит запрос, Ваша секция Апачу попадается первой. Отсюда и второй лог-файл.
Дмитрий Бойков:
Хм... Ну да. "Автомат все равно генерирует...." (в файле vhosts.conf)
А есть возможность этого избежать?

(И еще ответ на первый вопрос в предыдущем сообщении тоже интересен)

Спасибо.
Andrej:
Здравствуйте всем!
Долгое время для эмуляции хостеров обходился одним апачем да перлом, но от PHP никуда не уйдеш, будь он неладен :)

У автора передомной задача преобразовать domainru в domain.ru, у меня задача обратная

есть виртуальный сервер, там путь для доменов следующий:

/home/user/domains/oneDomain.ru/public_html
/home/user/domains/twoDomain.com/public_html
/home/user/domains/threeDomain.net/public_html
/home/user/domains/fourDomain.info/public_html

В принципе, эта строчка со своей задачей справляется, надеюсь, все зделал правильно:

# DocumentRootMatch "/home/user/domains/(.*)/public_html^1"

Но проблема в том, что к настоящему домену oneDomain.ru тоже нужно иметь доступ... даже когда апача запущен!
поэтому нужно чтобы на моем компе виртуальные домены имели вид не oneDomain.ru а скажем oneDomain или oneDomainru, тоесть или без доменной зоны, или без точки в имени домена...

Пока ума никак не могу дать. помогите плиз :)
Andrej:
Еще одна задача, которую не осилю...

так же, имеем хостера, у которого путь к доменам имеет вид

/home/user/public_html

ну вроде бы все стандартно, если бы не одно но... главный домен/сайт действительно лежит по следующему пути /home/user/public_html, но! хостер мультидоменный, тоесть мы имеем возможность иметь несколько доменов на аккаунт. все домены лежат в папках, и путь мы имеем следующий:
/home/user/public_html/oneDomain/
/home/user/public_html/twoDomain/
/home/user/public_html/threeDomain/

если использовать следующюю строку:
# DocumentRootMatch "/home/trackway/public_html/(?!cgi$|cgi-)(.*)^1/"

то доменами становятся не только домены, которые лежат папками внутри главного домена, но и папки внутри этого главного домена...

Поэтому вижу единственный путь для индификации, что папка является доменом,

....если внутри любой папки лежит папка cgi-bin, то такая папка считается доменом, если cgi-bin в папке нету, то игнорируем...

вообще этот метод мог бы быть универсальным для всех хостеров, ведь мы имеем возможность положить папку cgi-bin в любой каталог, который желаем считать доменом, даже есть cgi-bin не нужна...

Возможно я велосипед придумал, и это ужедавно используется, не пинайте :) скажите как это сделать!
Andrej:
так... ну первую задачу вроде наполовину решил:

# DocumentRootMatch "/home/trackway/domains/(.*)^1\\.(.*)/public_html"

нужно было перед точной двойной слеш ставить \\.
теперь все доменные зоны обрезаются и Domain.ru становится Domain на локальном компе... и я могу ходить и на Domain.ru и на Domain без конфликтов...

но вот как быть, если появятся скажем, Domain.ru и Domain.com ?

единственный путь, это Domain.ru превращать в Domainru, тоесть убирать точку... тут я опять чешу репу :)

кстати, почему при включеном денвере иногда антивирус касперского выбивает или он виснет? ни у кого небыло прецедентов? версия 6.0.2.614 лицензионная, стоит Win2000

без запущенного денвера никогда проблем не наблюдал...
Andrej:
Проблему с антивирусом касперского описал здесь:
http://forum.dklab.ru/denwer/base/KriticheskieBagiVSvegemRelize-PishiteSyuda.html?added=yes#139459
zedbez:
вообщем не понять че куда все разорвана да и не целиком написали монуал,

задаю опять вопрос как сделать субдомин ?

forum.10.111.111/ ? а не 10.111.111/forum/
Maus:
кросспостинг: http://forum.dklab.ru/denwer/nursery/KakUstanovitSvoyForumSPomoshchyuDenveraOpisanieVKartinkah.html
igdrasil@drupal.org:
а зачем извращаться-то? давно придумана DNS, куча людей может сервера предоставляет, если надо локально - заведите свою, а на своем компе хватит и 2-3 хостов, верстальщик не знаю, но программер больше одновременно не осилит
A1eX:
#НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА.
#<VirtualHost *:*>
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
#
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)"
#
# DocumentRoot "$&"
#
# ServerName "%&"
#
# ServerAlias "%&/-www" "%&/-www/www"
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#
# ErrorLog "$^1/error.log"
#</VirtualHost>
#КОНЕЦ ШАБЛОНА.
Maus:
A1eX
это Вы к чему?
Anonymous:
Простой вопрос: нужен еще один виртульный хост ( /home/secondhost/public )
Если в браузере вбиваем http://secondhost/ выполняется к index.php который лежит в /home/secondhost/public
Как это сделать проще всего?
Прочитал всю ветку от и до ответа так и не нашел.

так выглядит код в httpd.conf

#
##
## НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА.
##
## Если вы хотите по умолчанию запускать Apache на порту, отличном от 80,
## измените номер порта в следующей далее директиве.
##
#Listen $&{ip:-127.0.0.1}:$&{port:-80}
#NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-80}
#<VirtualHost $&{ip:-127.0.0.1}:$&{port:-80}>
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/html/(.*)"
# DocumentRootMatch "/home/(?!cgi-)(.*)/public^1"
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)"
# DocumentRootMatch "/var/www/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)"
# DocumentRoot "$&"
# ServerName "%&/-www"
# ServerAlias "%&/-www" "%&/-www/www" $&{host:-}
#
# $&{directives:-}
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#</VirtualHost>




##
## ШАБЛОН ДЛЯ SSL.
ich_marcel: de schimbat pubblic_html
apache - conf - httpd.conf

## ÍÀ×ÀËÎ ØÀÁËÎÍÀ ÂÈÐÒÓÀËÜÍÎÃÎ ÕÎÑÒÀ.
##
## Åñëè âû õîòèòå ïî óìîë÷àíèþ çàïóñêàòü Apache íà ïîðòó, îòëè÷íîì îò 80,
## èçìåíèòå íîìåð ïîðòà â ñëåäóþùåé äàëåå äèðåêòèâå.
##
#Listen $&{ip:-127.0.0.1}:$&{port:-80}
#NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-80}
#<VirtualHost $&{ip:-127.0.0.1}:$&{port:-80}>
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
# DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1"
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/html/(.*)"
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)"
# DocumentRootMatch "/var/public_html/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)"
# DocumentRoot "$&"
# ServerName "%&/-public_html"
# ServerAlias "%&/-public_html" "%&/-public_html/public_html" $&{host:-}
#
# $&{directives:-}
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#</VirtualHost>



##
## ØÀÁËÎÍ ÄËß SSL.
##
## Çäåñü ÍÅËÜÇß èñïîëüçîâàòü "*" âìåñòî IP-àäðåñà! Èíà÷å SSL íå ðàáîòàåò.
##
#Listen $&{ip:-127.0.0.1}:$&{port_ssl:-443}
#NameVirtualHost $&{ip:-127.0.0.1}:$&{port_ssl:-443}
#<VirtualHost $&{ip:-127.0.0.1}:$&{port_ssl:-443}>
# SSLEngine on
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
# DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1"
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/html/(.*)"
# DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)"
# DocumentRootMatch "/var/public_html/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)"
# DocumentRoot "$&"
# ServerName "%&/-public_html"
# ServerAlias "%&/-public_html" "%&/-public_html/public_html" $&{host:-}
#
# $&{directives:-}
#
# ScriptAlias /cgi/ "$^1/cgi/"
# ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#</VirtualHost>
solutia
public_html: httpd.conf
#<VirtualHost _default_:*>
# ServerName non-existent-host
# DocumentRoot /home/non-existent-host/public_html
#</VirtualHost>

#<VirtualHost 127.0.0.1:*>
# ServerName non-existent-host
# DocumentRoot /home/non-existent-host/public_html
#</VirtualHost>
Burik:
Мне надо чтобы поддомен имел тот же DocumentRoot что и домен.
Прописал в httpd.conf в нужном месте:

<VirtualHost *:*>
DocumentRoot "/home/mydomain/www"
ServerName "m.mydomain"
ServerAlias "m.mydomain" "www.m.mydomain"
#ScriptAlias /cgi/ "/home/mydomain/public_html/cgi/"
#ScriptAlias /cgi-bin/ "/mydomain/host/public_html/cgi-bin/"
#ErrorLog "/home/mydomain/public_html/error.log"
</VirtualHost>

В hosts:
127.0.0.1 m.mydomain


После перезапуска захожу на m.mydomain и меня выкидывает на m.mydomain/denwer
По адресу mydomain всё работает нормально.
Geleosan:
имею вот такой путь на хостинге /home/public_html/moi-site.ru/www
Соответственно вставляю такую секцию в httpd, подправленную под мой путь:

# Host /home/public_html/moi-site.ru/www (5):
#Listen 127.0.0.1:80
#NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot "Z:/home/public_html/moi-site.ru/www"
ServerName "moi-site.ru"
ServerAlias "moi-site.ru" "www.moi-site.ru"
ScriptAlias /cgi/ "/home/public_html/moi-site.ru/cgi/"
ScriptAlias /cgi-bin/ "/home/public_html/moi-site.ru/cgi-bin/"
</VirtualHost>

Однако, сайт начинает открываться только после того, как вручную прописываю в hosts 127.0.0.1 moi-site.ru

Так вот, вопрос, где я накосячил, или почему автоматом не прописывается в hosts и потом не удаляется после остановки денвера?
Maus:
Geleosan
Во-первых, Вы можете сделать свой шаблон вируального хоста. Или же подправить имеющийся шаблон под себя.
Во-вторых, не lумаю, что парсер работает наполовину для таких случаев. Но можете попробовать бросить в /home/public_html/moi-site.ru файл .htaccess c содержимым

#dnwr_host moi-site.ru

Да, это сработает на "левый" хост public_html.moi-site.ru , но нам-то нужна только запись в hosts

А вообще, надо писать сайты, не завязанные на имя хоста, файловый путь и тому подобные глупости. Вот поменяете Вы хостинг, а там другая схема путей. И что будете делать?
Geleosan:
Да вы правы, что привязка к пути не есть хорошо. Но я только пока учусь, и использую готовые модули, где может это быть не учтено.

Спасибо за помощь. Кстати, заработало и с той секцией, что я писал комментом выше. Почему без понятия, вставил ее без строчек, что были с # и заработало. Хотя по идее не должно влиять. То ли перезагрузка компа помогла...
Maus:
Ветка выделена в отдельную тему «Как запретить автоматические создание "лишних" поддоменов»,
расположенную в форуме Базовый пакет :: Денвер (14 Февраля 2012, 02:59).
FontCity: Вообще без www
Мне не нужны поддомены. Ни цги, ни сси.
Безопасность на этапе отладки тоже не беспокоит.
У меня все свои дома, чужие не шастают.
Главное - простота и удобство.
Хочу, чтобы папки в папке home были корневыми папками сайтов.
И чтобы именами сайтов были имена этих папок.

Чтобы Денвер не свихнулся, home не трогаю.
Создал рядом с ней папку my.
Перед шаблоном в файле httpd.conf создал ещё один шаблон:

#Listen $&{ip:-127.0.0.1}:$&{port:-80}
#NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-80}
#<VirtualHost $&{ip:-127.0.0.1}:$&{port:-80}>
# DocumentRootMatch "/my/(.*)^1"
# DocumentRoot "$&"
# ServerName "%&"
# ServerAlias "%&"
#</VirtualHost>

Тестирую на одном сайте.
В папке my создал папку fontcity. Залил контент.
Перезапускаю Денвер.

Строка в hosts 127.0.0.1 fontcity создаётся.

Секция
# Host /my/fontcity (5):
#Listen 127.0.0.1:80
#NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot "Y:/my/fontcity"
ServerName "fontcity"
ServerAlias "fontcity"
</VirtualHost>
в файле vhosts.conf появилась.

Вызываю FF. Ввожу fontcity. Вижу пустой экран.
Пытаюсь посмотреть html-код - пустота.
Тем временем пиктограмма Апача пропадает из систрея.
Сендмейл висит.
Лог Апача девственно чист.

Нарушения синтаксиса не вижу. Да и других баг тоже.
Кто-нибудь может подсказать, что я сделал не так?
Буду очень признателен.
Если нужна доп. инфа, пож., скажите - какая?
Заранее всем благодарен за участие.
FontCity: чудеса!
Апач сваливается не только при заходе на fontcity.
Он рушится при заходе на localhost, test1.ru и прочая.
И даже если вообще никуда не заходить.
Через несколько минут после запуска он просто вылетает, даже не издавая писка.
Не понимаю: в чём беда?
Maus:
FontCity
после запуска щёлкните по перу в трее - там должно быть ссобщение об ошибке
FontCity:
О-о-о!!! Я уже счёл тему умершей.

Спасибо за отклик! Тогда поделюсь своим последним опытом. Я несколько раз перустанавливал Апач. Работал до любого первого вмешательства. Какую бы правку в conf я ни сделал (я, например, добавлял phtml в качестве index), Апач начинал слетать через некоторое время после запуска. Никаких логов в папке Апача я не находил. Додумался поискать свежие файлы во всей папке Денвера. Нашёл сообщения об ошибке связи с БД. Штук 10 строк о каких-то траблах MySQL. Не помню, в каком файле. Буду у того компа - могу посмотреть. Надо?

После нескольких сессий плясок с бубном я забил. На следующий день поставил Денвер на другом компе. Всё заработало. Повесил несколько нужных мне модулей php (zlib, xsl, mbstring и др.). Всё продолжало работать. Добавил index, время исполнения скриптов, увеличил память под процессы, разрешил закачку файлов большого объёма и т.п. Работало! Устойчиво, длительное время, с одновременным выходом по локалке и в Интернет. Короче, чудеса!

После этого перешёл к правке конфига. Удалил оба шаблона, поставил свой:

#Listen $&{ip:-127.0.0.1}:$&{port:-80}
#NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-80}
#<VirtualHost $&{ip:-127.0.0.1}:$&{port:-80}>
# DocumentRootMatch "/MY/(.*)^1"
# DocumentRoot "$&"
# ServerName "%&"
#</VirtualHost>


Создал пару тестовых каталогов. Сработало!
Удалил папку home. Денвер стал материться: структура папок не соответствует каталогу Денвера. Создал взад папку home. Для Денвера не жалко. Заработало.
Сейчас у меня два десятка локальных виртуальных хостов. И никаких проблем!

Тот комп тоже надо бы завести. Но не знаю, куда смотреть. Положу лог про ошибку соединения с БД. Может, спецам всё станет ясно?

Ещё раз спасибо!
FontCity:
выкладываю лог про БД (\usr\local\mysql-5.5\data\user.err):

130522 0:56:19 [Note] Plugin 'FEDERATED' is disabled.
130522 0:56:19 InnoDB: The InnoDB memory heap is disabled
130522 0:56:19 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130522 0:56:19 InnoDB: Compressed tables use zlib 1.2.3
130522 0:56:19 InnoDB: Initializing buffer pool, size = 128.0M
130522 0:56:19 InnoDB: Completed initialization of buffer pool
130522 0:56:19 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130522 0:56:19 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
130522 0:56:20 InnoDB: Waiting for the background threads to start
130522 0:56:21 InnoDB: 1.1.8 started; log sequence number 1595675
130522 0:56:21 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
130522 0:56:21 [Note] - '127.0.0.1' resolves to '127.0.0.1';
130522 0:56:21 [Note] Server socket created on IP: '127.0.0.1'.
130522 0:56:21 [Note] Event Scheduler: Loaded 0 events
130522 0:56:21 [Note] \usr\local\mysql-5.5\bin\mysqld.exe: ready for connections.
Version: '5.5.25' socket: '' port: 3306 MySQL Community Server (GPL)


А вот сообщение Апача из трея:
Maus:
FontCity
130522 0:56:21 [Note] \usr\local\mysql-5.5\bin\mysqld.exe: ready for connections.
Version: '5.5.25' socket: '' port: 3306 MySQL Community Server (GPL)

Отсюда видно, что MySQL запустился и работает. Ругань InnoDB - это от нештатного отключения, а штатно он отключается только через mysqladmin, который весит примерно столько же, сколько клиент ( 4.5Мб ).
Со вторым окном Вам осталось освоить кунфу "скопировать текст из окна, пока оно живо, и скормить Декодеру Студии Лебедева".
но вообще, он ругнулся на занятый 80-й порт.
FontCity:
Skype виноват?
Maus:
Skype виноват?
возможно ( http://forum.dklab.ru/viewtopic.php?t=20602 )
FontCity: Причина беды
Вот в чём была причина. Здесь стояла галка.
Убрать можно так:
Skype -> Инструменты -> Настройки -> Дополнительно -> Соединение

Эта тема на forum.dklab.ru