Apache отличается от Ubuntu и Arch Linux

1052
Gman Smith

У меня есть сервер Ubuntu и машина Arch Linux. Я довольно привык к настройке apache в Ubuntu. Это просто и эффективно. Однако после установки apache2 на моем механизме арки я заметил, что все по-другому. Демон даже не имеет того же имени. Может кто-нибудь объяснить мне:

1: Почему все так отличается

2: Как я могу получить Ubuntu Apache на Arch

0
Ваш вопрос слишком широкий. «Все по-другому», очевидно, совершенно не соответствует действительности. Это все еще Apache. это займет * одинаковые * файлы конфигурации в любой системе. Судя по вашим комментариям к существующим ответам, вы в основном не понимаете поставленные файлы конфигурации. Они не установлены в камне. Вы можете изменить их так, как вам нравится. Вы можете настроить подстановочные знаки, включая себя и еще много чего. Daniel B 6 лет назад 1
@GmanSmith В настоящее время я пишу довольно длинный ответ, но вопрос в том, почему вы хотите измениться? funilrys 6 лет назад 0
@funilrys У меня есть некоторые инструменты, которые не взаимодействуют с настройкой арки apache Gman Smith 6 лет назад 0
@funilrys широкий спектр инструментов, я получил хорошее представление о том, что мне нужно сделать из вашего ответа, я получил большую часть работы, спасибо !! ^^ Gman Smith 6 лет назад 0

3 ответа на вопрос

2
wp78de
  1. Запуск, останов и перезапуск Команда веб-сервера Apache 2 отличается во многих дистрибутивах Linux и версиях Unix, как показано здесь (не самый актуальный список, но в любом случае). Это имеет как исторические, так и специфические причины. Помимо именования, расположения и команд управления веб-сервер Apache (2.x) практически одинаков во всех текущих версиях Linux, когда речь идет о конфигурации, возможностях и т. Д.
  2. Вы можете попытаться создать сценарии оболочки, которые имитируют команды, к которым вы более привыкли. В противном случае я не думаю, что вы можете сделать очень много.
Конфиг система выглядит совсем не так, как команды. Например, кажется, что невозможно иметь несколько файлов виртуальных хостов, но вы можете поместить все виртуальные хосты в один файл. Gman Smith 6 лет назад 0
Вы правы, вместо файлов виртуального хоста Arch использует центральный файл /etc/httpd/conf/extra/httpd-vhosts.conf. Тем не менее, конфигурация отдельного хоста почти такая же. wp78de 6 лет назад 0
проблема в том, что у меня есть некоторые инструменты, которые полагаются на несколько файлов виртуального хоста, и я бы не хотел отказываться от этих инструментов, если есть способ избежать этого Gman Smith 6 лет назад 0
Мы все больше и больше отклоняемся от исходного вопроса, но вы можете использовать директиву Include, чтобы включить другие файлы конфигурации и разделить вашу основную конфигурацию, как показано здесь: https://webmasters.stackexchange.com/questions/90690/possible-to- сплит-виртуальные хосты определение, в многодисковых апач-конф-файлы wp78de 6 лет назад 2
2
funilrys

Другие ответы достаточно хороши о разнице между Ubuntu / Debian и Arch Linux, но на самом деле они не "технически ориентированы" ... Я не специалист, я всего лишь пользователь Arch и сопровождающий AUR, но я ' Я постараюсь сделать все возможное, чтобы ответить на это более "технически".

Пожалуйста, примите во внимание следующее как неполное, поскольку я говорю только о различиях (и я все еще не закончил, но основные различия есть). На самом деле, поскольку я не понимаю, почему нужно менять ОП, я не могу правильно ответить на вторую часть вопроса ОП.

Поскольку я не являюсь постоянным пользователем Ubuntu / Debian, у этого ответа может быть недостаток объяснения Debian / Ubuntu.


отличия

PKGBUILD

Как пользователь Arch и сопровождающий AUR, первое, что я делаю, и первое, что каждый пользователь Arch должен делать, когда возникает такой вопрос, - это прочитать PKGBUILD пакета Apache, который можно найти здесь .

Итак, в то время, когда я пишу это, это выглядит следующим образом

# $Id$ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de>  pkgname=apache pkgver=2.4.27 pkgrel=1 pkgdesc='A high performance Unix-based HTTP server' arch=('i686' 'x86_64') url='http://www.apache.org/dist/httpd' license=('APACHE') backup=( etc/httpd/conf/httpd.conf etc/httpd/conf/extra/httpd-.conf etc/httpd/conf/extra/httpd-.conf etc/httpd/conf/extra/httpd-.conf etc/httpd/conf/extra/proxy-html.conf etc/httpd/conf/ etc/logrotate.d/httpd ) depends=('zlib' 'apr-util' 'pcre' 'libnghttp2' 'openssl') makedepends=('libxml2' 'lua') optdepends=( 'lua: for mod_lua module' 'libxml2: for mod_proxy_html, mod_xml2enc modules' 'lynx: apachectl status' ) source=( https://www.apache.org/dist/httpd/httpd-$.tar.bz2{,.asc} openssl-malloc-init.patch apache.tmpfiles.conf httpd.logrotate httpd.service arch.layout ) sha256sums=('71fcc128238a690515bd8174d5330a5309161ef314a326ae45c7c15ed139c13a' 'SKIP' 'd305f8b52ac2a9bbda7bb0776496471e69e9d30642740f594d00086a8c7e344c' '63da1a420f4714a3e7af2672d28384419cc7eedbe7bf35baebd02938fabc15bf' '0bbbfae23a917b2fce0bf8f900f60319b50769224a96314e9301a75ccd078e16' 'f574bac6d5f398e7a649fc0e1ca66ff01ad4ef34dac71258e93d8a9d9a2b3960' 'dda05c6e76f12624e418ca18a36f2e90ec1c5b1cc52fed7142fce6076ec413f3') validpgpkeys=('A93D62ECC3C8EA12DB220EC934EA76E6791485A8') # Jim Jagielski  prepare() { cd httpd-$  # set default user sed -e 's#User daemon#User http#' \ -e 's#Group daemon#Group http#' \ -i docs/conf/httpd.conf.in  cat "$/arch.layout" >> config.layout  # https://github.com/openssl/openssl/issues/2865 patch -Np1 -i ../openssl-malloc-init.patch }  build() { cd httpd-$  ./configure --sbindir=/usr/bin \ --enable-layout=Arch \ --enable-mpms-shared=all \ --enable-modules=all \ --enable-mods-shared=all \ --enable-so \ --enable-suexec \ --with-suexec-caller=http \ --with-suexec-docroot=/srv/http \ --with-suexec-logfile=/var/log/httpd/suexec.log \ --with-suexec-bin=/usr/bin/suexec \ --with-suexec-uidmin=99 --with-suexec-gidmin=99 \ --enable-ldap --enable-authnz-ldap --enable-authnz-fcgi \ --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \ --enable-ssl --with-ssl \ --enable-deflate --enable-cgi --enable-cgid \ --enable-proxy --enable-proxy-connect \ --enable-proxy-http --enable-proxy-ftp \ --enable-dbd --enable-imagemap --enable-ident --enable-cern-meta \ --enable-lua --enable-xml2enc --enable-http2 \ --with-apr=/usr/bin/apr-1-config \ --with-apr-util=/usr/bin/apu-1-config \ --with-pcre=/usr  make }  package() { cd httpd-$  make DESTDIR="$" install  install -D -m644 "$/httpd.logrotate" "$/etc/logrotate.d/httpd" install -D -m644 "$/apache.tmpfiles.conf" "$/usr/lib/tmpfiles.d/apache.conf" install -D -m644 "$/httpd.service" "$/usr/lib/systemd/system/httpd.service" install -D -m644 LICENSE "$/usr/share/licenses/$/LICENSE"  # symlinks for /etc/httpd # do we really need this symlink? ln -fs /usr/lib/httpd/modules "$/etc/httpd/modules"  # set sane defaults sed -e 's#/usr/lib/httpd/modules/#modules/#' \ -e 's|#\(LoadModule negotiation_module \)|\1|' \ -e 's|#\(LoadModule include_module \)|\1|' \ -e 's|#\(LoadModule userdir_module \)|\1|' \ -e 's|#\(LoadModule slotmem_shm_module \)|\1|' \ -e 's|#\(Include conf/extra/httpd-multilang-errordoc.conf\)|\1|' \ -e 's|#\(Include conf/extra/httpd-autoindex.conf\)|\1|' \ -e 's|#\(Include conf/extra/httpd-languages.conf\)|\1|' \ -e 's|#\(Include conf/extra/httpd-userdir.conf\)|\1|' \ -e 's|#\(Include conf/extra/httpd-default.conf\)|\1|' \ -e 's|#\(Include conf/extra/httpd-mpm.conf\)|\1|' \ -i "$/etc/httpd/conf/httpd.conf"  # cleanup rm -r "$/usr/share/httpd/manual" rm -r "$/etc/httpd/conf/original" rm -r "$/srv/" rm -r "$/run" } 

prepare()

prepare()Часть весьма интересно, как мы видим, что происходит ...

Замена пользователя

Сначала мы меняем пользователя по умолчанию следующим образом ...

# set default user sed -e 's#User daemon#User http#' \ -e 's#Group daemon#Group http#' \ -i docs/conf/httpd.conf.in 

На самом деле, как мы видим в официальном репозитории apache, группа и пользователь по умолчанию являются следующими, что показывает нам первое различие между Arch Linux и другим дистрибутивом.

# User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User daemon Group daemon 

Добавление пользовательского макета арки

Прежде чем мы продолжим со следующим, позвольте мне поговорить о разметке Apache. Apache по умолчанию включает в себя свой собственный макет, но также и некоторый макет в соответствии с различными дистрибутивами. Именно поэтому он так сильно отличается от раздачи другому. Действительно, Apache использует файл config.layout для того, чтобы разрешить пользовательский каталог и структуру «архитектуры» в соответствии с дистрибутивом.

Другими словами, процитировать Apache wiki :

Многие сторонние дистрибьюторы изменяют макет в соответствии с местными правилами.

По умолчанию config.layoutможно найти здесь . Действительно, как вы можете видеть, макет Arch не входит в config.layoutфайл по умолчанию, поэтому у нас есть строка:

cat "$/arch.layout" >> config.layout 
Давайте сравним макет Debian / Ubuntu с макетом Arch

Итак, вот макет Debian по умолчанию (в то время, когда я пишу это)

<Layout Debian> prefix: exec_prefix: $/usr bindir: $/bin sbindir: $/sbin libdir: $/lib libexecdir: $/lib/apache2/modules mandir: $/share/man sysconfdir: $/etc/apache2 datadir: $/share/apache2 iconsdir: $/icons htdocsdir: $/usr/share/apache2/default-site/htdocs manualdir: $/manual cgidir: $/usr/lib/cgi-bin includedir: $/include/apache2 localstatedir: $/var/lock/apache2 runtimedir: $/var/run/apache2 logfiledir: $/var/log/apache2 proxycachedir: $/var/cache/apache2/proxy infodir: $/share/info installbuilddir: $/usr/share/apache2/build errordir: $/error </Layout> 

А вот макет Arch, взятый из официального пакета Arch :

<Layout Arch> prefix: /etc/httpd exec_prefix: /usr bindir: /usr/bin sbindir: /usr/bin libdir: /usr/lib/httpd libexecdir: /usr/lib/httpd/modules mandir: /usr/share/man sysconfdir: /etc/httpd/conf datadir: /usr/share/httpd installbuilddir: /usr/lib/httpd/build errordir: /usr/share/httpd/error iconsdir: /usr/share/httpd/icons htdocsdir: /srv/http manualdir: /usr/share/httpd/manual cgidir: /srv/http/cgi-bin includedir: /usr/include/httpd localstatedir: /var runtimedir: /run/httpd logfiledir: /var/log/httpd proxycachedir: /var/cache/httpd </Layout> 

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

То, что мы можем увидеть здесь, это то, что все по-другому. Так что это объясняет почти все о разнице между пакетом Arch и Ubuntu / Debian Apache.

build()

Я искал конфигурацию по умолчанию для Debian / Ubuntu, но ничего не нашел, поэтому, если вы знаете, пожалуйста, не стесняйтесь добавить ее и / или оставить комментарий к этой части / ответу.

Другая важная вещь - это то, как Apache создается и настраивается, и это может отличаться от дистрибутива к другому.

Arch Linux решил настроить его следующим образом, который, я думаю, должен отличаться от Debian. Вы можете найти больше о настройке аргументов здесь

./configure --sbindir=/usr/bin \ --enable-layout=Arch \ --enable-mpms-shared=all \ --enable-modules=all \ --enable-mods-shared=all \ --enable-so \ --enable-suexec \ --with-suexec-caller=http \ --with-suexec-docroot=/srv/http \ --with-suexec-logfile=/var/log/httpd/suexec.log \ --with-suexec-bin=/usr/bin/suexec \ --with-suexec-uidmin=99 --with-suexec-gidmin=99 \ --enable-ldap --enable-authnz-ldap --enable-authnz-fcgi \ --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \ --enable-ssl --with-ssl \ --enable-deflate --enable-cgi --enable-cgid \ --enable-proxy --enable-proxy-connect \ --enable-proxy-http --enable-proxy-ftp \ --enable-dbd --enable-imagemap --enable-ident --enable-cern-meta \ --enable-lua --enable-xml2enc --enable-http2 \ --with-apr=/usr/bin/apr-1-config \ --with-apr-util=/usr/bin/apu-1-config \ --with-pcre=/usr 
0
Per

Я никогда не использовал Arch Linux, но ваш вопрос меня заинтриговал.

Прочитав документы для AL и, в частности, их менеджера пакетов pacman, у меня сложилось впечатление, что у них есть довольно строгие правила относительно того, как все должно быть сделано, в соответствии с их идеей «Keep It Simple», как видно на их первой странице., Например, посмотрите на их стандарты упаковки ; Впервые я увидел такой стандарт для любой системы Linux. Я хотел бы, чтобы другие дистрибутивы имели их (или сделали их более очевидными).

Что касается получения Apache2 со вкусом Ubuntu на AL, я бы сказал «нет». Если у них есть хорошо функционирующая система для того, где что-то должно быть установлено и т. Д., Я последую их рекомендациям и вместо этого научусь использовать систему как есть. Если вы столкнетесь с проблемами и попросите помощи, скорее всего, они просто попросят вас установить стандартные пакеты.

Правила Арки сводятся к «Не делай слишком много»; они далеко не такие строгие и обширные, как Ubuntu и [Debian's] (http://www.debian.org/doc/manuals/maint-guide/). Но, аналогично, в Debian / Ubuntu есть довольно обширный набор помощников Apache, в то время как Arch придерживается неизменного макета апстрима для / etc / httpd. grawity 6 лет назад 0
Согласитесь, я бы также поспорил, что вы получите «стандартный» apache / httpd на arch. wp78de 6 лет назад 0

Похожие вопросы