- Запуск, останов и перезапуск Команда веб-сервера Apache 2 отличается во многих дистрибутивах Linux и версиях Unix, как показано здесь (не самый актуальный список, но в любом случае). Это имеет как исторические, так и специфические причины. Помимо именования, расположения и команд управления веб-сервер Apache (2.x) практически одинаков во всех текущих версиях Linux, когда речь идет о
конфигурации,возможностях и т. Д. - Вы можете попытаться создать сценарии оболочки, которые имитируют команды, к которым вы более привыкли. В противном случае я не думаю, что вы можете сделать очень много.
Apache отличается от Ubuntu и Arch Linux
У меня есть сервер Ubuntu и машина Arch Linux. Я довольно привык к настройке apache в Ubuntu. Это просто и эффективно. Однако после установки apache2 на моем механизме арки я заметил, что все по-другому. Демон даже не имеет того же имени. Может кто-нибудь объяснить мне:
1: Почему все так отличается
2: Как я могу получить Ubuntu Apache на Arch
3 ответа на вопрос
Другие ответы достаточно хороши о разнице между 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
Я никогда не использовал Arch Linux, но ваш вопрос меня заинтриговал.
Прочитав документы для AL и, в частности, их менеджера пакетов pacman, у меня сложилось впечатление, что у них есть довольно строгие правила относительно того, как все должно быть сделано, в соответствии с их идеей «Keep It Simple», как видно на их первой странице., Например, посмотрите на их стандарты упаковки ; Впервые я увидел такой стандарт для любой системы Linux. Я хотел бы, чтобы другие дистрибутивы имели их (или сделали их более очевидными).
Что касается получения Apache2 со вкусом Ubuntu на AL, я бы сказал «нет». Если у них есть хорошо функционирующая система для того, где что-то должно быть установлено и т. Д., Я последую их рекомендациям и вместо этого научусь использовать систему как есть. Если вы столкнетесь с проблемами и попросите помощи, скорее всего, они просто попросят вас установить стандартные пакеты.
Похожие вопросы
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
1
Обратный прокси Apache
-
3
Ubuntu Server с рабочим окружением GNOME - настройка разрешений файла конфигурации Apatche
-
-
2
Как мы должны получать факсы с сервера?
-
8
Как я могу дать права на запись в папку всем пользователям Linux?
-
1
Журнал ошибок Apache2
-
3
Как я могу автоматически сгенерировать файл Xorg.config?
-
1
ArchLinux в VirtualBox дает сбой (хост Ubuntu)
-
2
Mac OS X bash: удалите все apache и PHP вхождения
-
1
Синхронизация двух (ВМ) систем Linux