[devel] Re: apache2, apache1, /var/www (was: /srv)

Yury Konovalov =?iso-8859-1?q?yurix_=CE=C1_unixcenter=2Eru?=
Пт Май 21 17:23:43 MSD 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Четверг 20 Май 2004 18:04, Michael Shigorin написал:
> > > %apache_datadir         %_var/www
> > > %apache_htdocsdir       %apache_datadir/html
> > > %apache_cgibindir       %apache_datadir/cgi-bin
> > > %apache_webmaster       webmaster
> >
> > На мой взгляд это уже специфичные вещи.
>
> Нет, ну переименовать их в httpd_* или еще как более нейтрально,
> понятное дело.
>
Я имел ввиду не имена, а сам принцип.

> > Я исхожу из того, что разные ветки апачей не должны иметь один
> > и тот-же htdocsdir (какой апач наполнит его, если у каждого
> > свой контент для этого?) и cgibindir также имеет пару cgi,
> > предоставляемых самим апачем.
>
> Насколько понимаю, "свой" (неразделяемый) контент, по-хорошему --
> исключение из правила.
Да, но именно на "свой" контент должен глядеть docroot по-умолчанию. Это 
по-моему правильно. Иначе что показывать по-умолчанию?

> Опять же может иметь смысл держать его тоже в /usr/share -- это
> нечто неизменяемое, в конце концов.
Тут не спорю -- можно сдвинуть docroot в /usr/share/apache{favour}. Однако 
здесь есть один момент (не связанный с /usr/share - просто вспомнил) -- 
некоторые сайты вообще не используют виртхосты. Для таких случаев нужно 
предусмотреть хорошие комментарии в конфигах, чтобы можно было просто 
раскоментировав строчку перебросить docroot в другое место (/var/www/htdoc?), 
чтобы увести личных контент из обновляемой пакетом области.

> > На сколько я понимаю, предлагается более тесная интеграция
> > апачей, предполагающая объединение контентов и разделения
> > общего docroot.  В свою очередь, предлагаю так далеко не идти
> > сходу, и для начала определить простую схему при которой апачи
> > смогут сосуществовать.
>
> А потом с ней героически сражаться? ;-)
>
> См. mod_ssl.spec свежего разлива.  А ведь тривиальная вещь,
> казалось бы...
>
Не вижу связи. Модулям нужно использовать макросы, предоставляемые апачем -- 
тогда им все-равно, какая будет схема.

> > Это, например, может выглядеть так:
> > /var/www/
> >
> > 	-apache1/
> >
> > 		-html/
> > 		-cgi-bin/
> > 		-manual/
> > 		-addon1/
> > 		-addon2/
>
> Что здесь? (ну manual понятно, хотя и он у нас обычно жил
> симлинком под html)

- -html - дефолтная страница с красивой картинкой alt и ссылками на доки
- -cgi-bin - cgi, поставляемые с апачем.
- -addonX - контент, поставляемый с модулями, работающими только с данной 
версией apache
для manual - думаю, лучше все-же alias.
Ещё нужно наверное добавить:
- -addons-manual/
	|
	-addon1/
	-addon2/

> > 	-apache2/
>
> И чем отличается то, что здесь?

Всем -- чаще всего, видимо, вообще не будут пересекаться.

> Бишь если я собираю webalizer -- куда он кладет свой контент?
> (собирать два webalizer просто так -- не буду :)

В /var/www/shared-cgis/webalizer + конфиг в 
оба /etc/httpd{favour}/conf/addon.d
Ну или если применить /usr/share, то в /usr/share/apache-shared/webalizer/

> > 	-shared-cgis/
> >
> > 		-mailman
> > 		-one_more_apache_favour_ignoring_project
>
> А не большинство ли их такое?  И нет ли смысла тогда здвать это
> просто cgi-bin/ ? :)
Можно конечно -- ведь это уже вопрос вкуса. Человек может просто запутаться 
если будет cgi-bin у каждого favour + cgi-bin, для разделяемых cgi. Может 
пусть в самом названии каталога отражается его суть.
Кроме этого, большинство проектов могут предоставлять sсriptalias в своём 
конфиге, и добавлять централизованный алиас нет смысла.

> Опять же, разделяемый html -- это то, на что (сейчас) заряжен
> default vhost.  Было бы разумно вообще исключить запись туда
> вебмастером (права+README) и тут же "удобнизировать" создание
> нормального виртхоста -- в т.ч. дефолтного, но не здесь, в
> пакетной местности.
Под default vhost я понял просто docroot  и его дефолтное содержимое. Тут я 
опять-же за разные docroot для каждого favour апача. С остальным согласен.

> > > А у нас есть настолько специфичные cgi, или речь о том, чтобы
> > > обеспечить эту возможность?  Просто получается множество
> >
> > За то, что уже есть в сизифе не скажу (там просто не откуда
> > взяться apache2-specific пакетам:), но я знаю такие пакеты,
> > которые будут предоставлять cgi, зависящие от модулей,
> > имеющихся только во втором апаче (WebAuth/WebKDC как пример).
>
> С другой стороны -- и что плохого, если они окажутся в
> разделяемом cgi-bin?  Максимум взорвется не под тем (и то уже дав
> намек требованием "того").
>
Эти "намёки" вряд ли будут содержательными, по крайней мере не укажут напрямую 
на необходимость сменить версию апача.
А намёк в виде каталога внутри apache{favour} должен восприниматься 
однозначно ;)

> > > мощностью Nflavour x Nvirthost.
> >
> > Я бы учёл, что на практике:
> > 1) Apache2 на данный момент решение скорее дополнительное к Apache1.
>
> Да, но уже не единственное.  Сам тоже собираюсь все boa опакетить
Разумеется!

> > 2) из первого вытекает, что большинство хостеров будут
> > использовать A2 в проксируемом посредством A1 режиме (что по
> > умолчанию действует в моем пакете почти также как и в
> > apache-mod_perl)
>
> А, вот как.  Не учел.
>
> Т.е. именно одновременная работа...
В том числе -- это просто трюк в инитскрипте и пара if в конфиге на случай, 
если A1 уже поднят. В остальном -- совершенно полноценная сборка A2

> > 3) В свою очередь, из второго вытекает, что A2 будет
> > действовать лишь для малой части виртхостов (или даже части
> > контента виртхоста), а центральный cgi-bin дотачивается
> > по-месту. Т.е мы здесь все-равно не угадаем.
>
> Ммм.... хорошо.  А наблюдались несовместимые снизу вверх CGI?
На моем веку нет -- разве что расчёт на mod_charset не состоятелен.

> > > > Вообщем все то, что попадет туда само-сабой, если изменить
> > > > apache_home.
> > >
> > > Э, не.  Тогда туда и разделяемого много упадет.
> >
> > Можно сказать, что это даже хорошо -- пусть сначала пакет
> > осознает свой контент разделяемым. Так постепенно все
> > образуется и не будет резких изменений. Я имею ввиду, что
> > пакеты(основанные на apache), даже без внесения изменений будут
> > собираться под A1, пока мантейнер не решит, что можно
> > предоставлять что-либо в %srv_dir
>
> Кажется, потерял контекст, но имелось в виду, что сейчас скорее
> типично использование /var/www, нежели %_apache/home:
>
> RPM/SPECS/classic> grep var/www * | cut -f1 -d: | uniq | wc -l
> 29
> RPM/SPECS/classic> grep %apache_home * | cut -f1 -d: | uniq | wc -l
> 3
>
> (это apache, packhouse, phpPgAdmin)
>
> Т.е. 1) дело не в макросах :-) и 2) незачем априори полагать, что
> софт является apache1-specific.
>
> В последнем могу быть неправ.

Макросы сильно помогут :)
Да, но сейчас все, что есть в сизифе выглядит как apache1-specific по форме, а 
не по факту. Пусть мантейнеры решают как сделать пакет толерантным к версии 
апача. Тут всего два варианта:
1) Пакет идёт в shared-cgis (mailman для примера)
2) Пакет рождает отдельную сборку для A2 (mod_php как пример)

> > > > > Кстати, тут еще Большаков справшивал про макросы сегодня в
> > > > > свете желания собрать tclhttpd.  Т.к. "общей частью" вопроса
> > > > > я тут вижу не виртхосты как таковые, подумал -- может, это
> > > > > httpd-common и httpd-devel?
> > > > > Вопрос чуть ли не вкуса, но чтоб уж потом не трогать.
> > > >
> > > > Тут мне не совсем понятно -- эти пакеты будут предоставлять
> > > > макросы для обоих версий apache?
> > >
> > > Частично.  Каждый апач может носить с собой оставшуюся часть
> > > сугубо своих макросов.
> >
> > Это пересекается со сказанным в начале.
>
> Да, конечно.  Особенно с учетом того, что я *подразумевал* там
> замену apache обобщенным httpd :-)
>
> > Здесь только хотелось сказать, что на данный момент, если
> > отказаться от идеи одного docroot'а, следует определить тот
> > список макросов, достаточный для сборки модулей, и использовать
> > одинаковые имена, при взаимно вытесняющих -devel.
>
> А что тогда делать с webalizer? ;-)

Это решать мантейнеру :)
На мой взгляд -- хороший пример для shared-cgis. Ему при сборке конечно нужно 
будет проsedить как apache.conf, так и apache2.conf. Причем, это даже слишком 
хороший пример - ему ведь по сути нужно знать где логи обоих апачей... Значит 
собираться ему без apache-макросов.

> Просто когда народ очень так интересовался, почему mod_perl так
> экстравагантно заведен -- я подумал-подумал, чего может стоить
> его вытаскивание из-под этой схемы (даже если течь не будет и
> вообще все замечательно теперь), и объявил, что делать этого в
> 1.3.x -- не собираюсь.
>
> Соответственно если apache2 будет этаким довеском, то когда ему
> придет времябыть _платформой_ -- изначальная завязка на
> "неполноценность" и обособленность может сыграть злую шутку.

Он более чем полноценен! Правда! :)

> Хочется по возможности избежать в его будущем нетривиальных
> скриптов по обеспечению миграции и продумывания ночами
> %triggerpostun...

Для этого и обсуждаем.

> > Иногда и с модулями идёт контент, который зависит от версии A.
>
> Кстати, можно пример?  (документация не в счет, с ней понятно)

mod_webkdc

> > > Если забегать в раздел мыслей по web packaging policy, то мне
> > > очень нравится размещение скриптов под /usr/share и
<...>
> > Да - это конечно мечта, но пока у меня нет чёткого
> > представления. Похоже, на данном этапе это скорее усложнение.
>
> А посмотрите дебиановские пакеты.
> Там есть и, например, возможность сказать, в какую именно БД
> ходить создавать штатные базы, и это очень симпатичная
> автоматизация нудной и тупой "деятельности".

Нужно будет посмотреть.

> Оно, конечно, per-webpackage, но...
>
> Хотя с другой стороны -- если бы rpm2 ориентировался на ситуацию
> "все равно все будут хачить по месту", так бы он и остался таром
> на стероидах -- большим, но глупым.
>
> Так что будем ориентироваться на mature web software.  Пилимое
> (плохое) -- в конце концов, руками по старинке разложить можно,
> раз все равно пилить.

Мы на это не ориентируемся -- просто пока не ясно, как сделать лучше.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFArgL7BMpuqP3w7LgRAkr0AKCHpjcw0y2doZ5eLNlicVz1hJC2XgCfSpQ9
d9ljxFXioZJ34LTRxshV6K0=
=hT7n
-----END PGP SIGNATURE-----


Подробная информация о списке рассылки Devel