Web Policy
Материал из ALT Linux Wiki
(Различия между версиями)
Строка 3: | Строка 3: | ||
== Policy по упаковке веб-приложений == | == Policy по упаковке веб-приложений == | ||
- | |||
- | |||
- | |||
=== Системные веб-приложения и приложения для single-hosting === | === Системные веб-приложения и приложения для single-hosting === | ||
+ | В этом разделе часть написана по мотивам [http://webapps-common.alioth.debian.org/draft/html/index.html Debian Web Policy] | ||
==== Размещение веб-приложений в иерархии URL ==== | ==== Размещение веб-приложений в иерархии URL ==== | ||
# CGI-bin файлы: | # CGI-bin файлы: | ||
- | ** '''<домен>/cgi-bin/<cgi-файл>''' | + | ** '''<домен>/cgi-bin/<cgi-файл>''' — независимые и самодостаточные cgi-файлы |
- | ** '''<домен>/<приложение>/cgi-bin/<cgi-файл>''' | + | ** '''<домен>/<приложение>/cgi-bin/<cgi-файл>''' — cgi-файлы приложений с cgi частью выделенной явно |
- | ** '''<домен>/<приложение>/<cgi-файл>''' | + | ** '''<домен>/<приложение>/<cgi-файл>''' — cgi-файлы приложений без явного выделения cgi части |
- | :: | + | :: |
+ | |||
==== Размещение веб-приложений в иерархии файловой системы ==== | ==== Размещение веб-приложений в иерархии файловой системы ==== | ||
# CGI-bin файлы: | # CGI-bin файлы: | ||
- | ** '''%_libdir/cgi-bin/<имя>''' | + | ** '''%_libdir/cgi-bin/<имя>''' — архитектурно зависимые cgi-файлы |
- | ** '''/usr/share/cgi-bin/<имя>''' | + | ** '''/usr/share/cgi-bin/<имя>''' — архитектурно независимые cgi-файлы |
- | ** '''/usr/share/<имя>/<каталог>''' | + | ** '''/usr/share/<имя>/<каталог>''' — любой уникальный каталог внутри директории веб-приложения |
** '''/var/www/cgi-bin/<имя>/''' <div style="display: inline; color: red;">исторически сложившееся место, от которого решено отказаться (?)</div> | ** '''/var/www/cgi-bin/<имя>/''' <div style="display: inline; color: red;">исторически сложившееся место, от которого решено отказаться (?)</div> | ||
# Конфигурационные файлы: | # Конфигурационные файлы: | ||
Строка 31: | Строка 30: | ||
==== Права на конфигурационные файлы и модифицируемый контент ==== | ==== Права на конфигурационные файлы и модифицируемый контент ==== | ||
- | # Файлы, содержащую приватную информацию, пароли, | + | # Файлы, содержащую приватную информацию, пароли, и т. п.: |
** '''640 root:_webserver''' | ** '''640 root:_webserver''' | ||
- | # Файлы, содержащую приватную информацию, пароли, | + | # Файлы, содержащую приватную информацию, пароли, и т. п., подлежащие модификации со стороны веб-сервера: |
** ''' 660 root:_webserver''' | ** ''' 660 root:_webserver''' | ||
# Файлы, подлежащие модификации со стороны веб-сервера: | # Файлы, подлежащие модификации со стороны веб-сервера: | ||
Строка 43: | Строка 42: | ||
==== Привязка к различным веб-серверам ==== | ==== Привязка к различным веб-серверам ==== | ||
# Привязки к конкретным веб-серверам должны быть вынесены в отдельные подпакеты. | # Привязки к конкретным веб-серверам должны быть вынесены в отдельные подпакеты. | ||
- | # В понятие | + | # В понятие «привязка» входят: |
## Конфигурационные файлы под конкретный веб-сервер | ## Конфигурационные файлы под конкретный веб-сервер | ||
## Команды (или файлы с директивами) для активации модулей веб-сервера, необходимые для корректной работы web-приложения. | ## Команды (или файлы с директивами) для активации модулей веб-сервера, необходимые для корректной работы web-приложения. | ||
Строка 49: | Строка 48: | ||
==== Привязка к php ==== | ==== Привязка к php ==== | ||
# Основной пакет, содержащий веб-приложение, должен иметь зависимость на мета-пакет php-движка (Requires: php-engine). | # Основной пакет, содержащий веб-приложение, должен иметь зависимость на мета-пакет php-движка (Requires: php-engine). | ||
- | # Чтобы избежать зависимости от конкретной major-версии php, | + | # Чтобы избежать зависимости от конкретной major-версии php, зависимости на конкретные модули php должны быть вынесены в отдельные подпакеты. То есть если приложение поддерживает и php4, и php5, то зависимости на php-модули следует вынести в подпакеты %name-php4 и %name-php5, где первый подпакет содержит зависимость только на модули php4, а второй — только на php5. |
=== Упаковка веб-приложений для использования на виртуальном хостинге === | === Упаковка веб-приложений для использования на виртуальном хостинге === | ||
- | ''требуется обсуждение'' | + | * ''требуется обсуждение'' |
+ | * [http://apsstandard.com/r/doc/package-format-specification-1.0/index.html Упаковка веб-приложений в бывшем swsoft]. | ||
+ | Краткое описание от [[Участник:MikhailGusarov | dottedmag]]: | ||
+ | |||
+ | Там описаны две вещи: | ||
+ | # формат упаковки приложений | ||
+ | # протокол установки/удаления на vhost. | ||
+ | |||
+ | Берётся формат упаковки, из него нещадно стрипается всё, что уже есть в RPM, остальное раскладывается в метаинформацию, более пригодную к shell-скриптованию. | ||
+ | Дальше. По спеке пишется набор CLI-утилит, умеющих | ||
+ | # устанавливать приложение в vhost | ||
+ | # апгрейдить | ||
+ | # удалять | ||
+ | Бонус: альтераторный модуль, одним кликом делающий щщастье. | ||
+ | Результат — платформа для хостинга, в части web-приложений не уступающая тому же Plesk. | ||
+ | Второй бонус: утилита для перепаковки приложений из формата apsstandard.com в RPM-ки под альт. |
Версия 17:43, 14 августа 2008
Содержание |
Policy по упаковке веб-приложений
Системные веб-приложения и приложения для single-hosting
В этом разделе часть написана по мотивам Debian Web Policy
Размещение веб-приложений в иерархии URL
- CGI-bin файлы:
- <домен>/cgi-bin/<cgi-файл> — независимые и самодостаточные cgi-файлы
- <домен>/<приложение>/cgi-bin/<cgi-файл> — cgi-файлы приложений с cgi частью выделенной явно
- <домен>/<приложение>/<cgi-файл> — cgi-файлы приложений без явного выделения cgi части
Размещение веб-приложений в иерархии файловой системы
- CGI-bin файлы:
- %_libdir/cgi-bin/<имя> — архитектурно зависимые cgi-файлы
- /usr/share/cgi-bin/<имя> — архитектурно независимые cgi-файлы
- /usr/share/<имя>/<каталог> — любой уникальный каталог внутри директории веб-приложения
- /var/www/cgi-bin/<имя>/ исторически сложившееся место, от которого решено отказаться (?)
- Конфигурационные файлы:
- /etc/<имя>/
- Статический и динамический контент:
- /usr/share/<имя>/
- Данные, подвергающиеся модификации со стороны веб-приложения:
- /var/www/webapps/<имя>/
- /var/lib/<имя>/
- Если распил согласно вышеуказанным пунктам не производится, веб-приложение должно располагаться в /var/www/webapps/<имя>/
Права на конфигурационные файлы и модифицируемый контент
- Файлы, содержащую приватную информацию, пароли, и т. п.:
- 640 root:_webserver
- Файлы, содержащую приватную информацию, пароли, и т. п., подлежащие модификации со стороны веб-сервера:
- 660 root:_webserver
- Файлы, подлежащие модификации со стороны веб-сервера:
- 664 root:_webserver
- Директории, подлежащие модификации со стороны веб-сервера:
- 2770 root:_webserver
- 2775 root:_webserver
Привязка к различным веб-серверам
- Привязки к конкретным веб-серверам должны быть вынесены в отдельные подпакеты.
- В понятие «привязка» входят:
- Конфигурационные файлы под конкретный веб-сервер
- Команды (или файлы с директивами) для активации модулей веб-сервера, необходимые для корректной работы web-приложения.
Привязка к php
- Основной пакет, содержащий веб-приложение, должен иметь зависимость на мета-пакет php-движка (Requires: php-engine).
- Чтобы избежать зависимости от конкретной major-версии php, зависимости на конкретные модули php должны быть вынесены в отдельные подпакеты. То есть если приложение поддерживает и php4, и php5, то зависимости на php-модули следует вынести в подпакеты %name-php4 и %name-php5, где первый подпакет содержит зависимость только на модули php4, а второй — только на php5.
Упаковка веб-приложений для использования на виртуальном хостинге
- требуется обсуждение
- Упаковка веб-приложений в бывшем swsoft.
Краткое описание от dottedmag:
Там описаны две вещи:
- формат упаковки приложений
- протокол установки/удаления на vhost.
Берётся формат упаковки, из него нещадно стрипается всё, что уже есть в RPM, остальное раскладывается в метаинформацию, более пригодную к shell-скриптованию. Дальше. По спеке пишется набор CLI-утилит, умеющих
- устанавливать приложение в vhost
- апгрейдить
- удалять
Бонус: альтераторный модуль, одним кликом делающий щщастье. Результат — платформа для хостинга, в части web-приложений не уступающая тому же Plesk. Второй бонус: утилита для перепаковки приложений из формата apsstandard.com в RPM-ки под альт.